From 030830f86dca97d004d6f6a8cf50237c55a3d714 Mon Sep 17 00:00:00 2001 From: Dhruvkumar-Microsoft Date: Fri, 5 Dec 2025 17:01:22 +0530 Subject: [PATCH 1/4] updated the Deployment Guide --- docs/DeploymentGuide.md | 677 +++++++++------------ docs/LocalDevelopmentSetup.md | 0 docs/images/Deployment_success_message.png | Bin 0 -> 74238 bytes 3 files changed, 291 insertions(+), 386 deletions(-) create mode 100644 docs/LocalDevelopmentSetup.md create mode 100644 docs/images/Deployment_success_message.png diff --git a/docs/DeploymentGuide.md b/docs/DeploymentGuide.md index f51fe9fd2..85b3d27ef 100644 --- a/docs/DeploymentGuide.md +++ b/docs/DeploymentGuide.md @@ -1,108 +1,125 @@ # Deployment Guide -## **Pre-requisites** +## Overview -To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups, resources, app registrations, and assign roles at the resource group level**. This should include Contributor role at the subscription level and Role Based Access Control role on the subscription and/or resource group level. Follow the steps in [Azure Account Set Up](../docs/AzureAccountSetUp.md). +This guide walks you through deploying the Multi Agent Custom Automation Engine Solution Accelerator to Azure. The deployment process takes approximately 10-15 minutes for the default Development/Testing configuration and includes both infrastructure provisioning and application setup. -> **Note:** When you deploy this solution, you will automatically be granted access to interact with the Cosmos DB database that stores your application data. Specifically, you'll have permissions to: -> - Read database information and settings -> - Create, modify, and delete data storage containers (think of these as folders for organizing your data) -> - Add, view, update, and remove individual data records within those containers +🆘 **Need Help?** If you encounter any issues during deployment, check our [Troubleshooting Guide](./TroubleShootingSteps.md) for solutions to common problems. -Check the [Azure Products by Region](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/?products=all®ions=all) page and select a **region** where the following services are available: +## Step 1: Prerequisites & Setup -- [Azure AI Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/) -- [Azure Container Apps](https://learn.microsoft.com/en-us/azure/container-apps/) -- [Azure Container Registry](https://learn.microsoft.com/en-us/azure/container-registry/) -- [Azure Cosmos DB](https://learn.microsoft.com/en-us/azure/cosmos-db/) -- [Azure Key Vault](https://learn.microsoft.com/en-us/azure/key-vault/) -- [Azure AI Search](https://learn.microsoft.com/en-us/azure/search/) -- [GPT Model Capacity](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models) +### 1.1 Azure Account Requirements -Here are some example regions where the services are available: East US, East US2, Japan East, UK South, Sweden Central. +Ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the following permissions: -### **Important Note for PowerShell Users** +| **Required Permission/Role** | **Scope** | **Purpose** | +|------------------------------|-----------|-------------| +| **Contributor** | Subscription level | Create and manage Azure resources | +| **User Access Administrator** | Subscription level | Manage user access and role assignments | +| **Role Based Access Control** | Subscription/Resource Group level | Configure RBAC permissions | +| **App Registration Creation** | Azure Active Directory | Create and configure authentication | -If you encounter issues running PowerShell scripts due to the policy of not being digitally signed, you can temporarily adjust the `ExecutionPolicy` by running the following command in an elevated PowerShell session: +**🔍 How to Check Your Permissions:** -```powershell -Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -``` +1. Go to [Azure Portal](https://portal.azure.com/) +2. Navigate to **Subscriptions** (search for "subscriptions" in the top search bar) +3. Click on your target subscription +4. In the left menu, click **Access control (IAM)** +5. Scroll down to see the table with your assigned roles - you should see: + - **Contributor** + - **User Access Administrator** + - **Role Based Access Control Administrator** (or similar RBAC role) -This will allow the scripts to run for the current session without permanently changing your system's policy. +**For App Registration permissions:** +1. Go to **Microsoft Entra ID** → **Manage** → **App registrations** +2. Try clicking **New registration** +3. If you can access this page, you have the required permissions +4. Cancel without creating an app registration -### **Azure Developer CLI (azd) Requirement** +📖 **Detailed Setup:** Follow [Azure Account Set Up](./AzureAccountSetUp.md) for complete configuration. -Ensure that you are using the latest version of the [Azure Developer CLI](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/overview). -The `azd` version must be **1.18.0 or higher**. +### 1.2 Check Service Availability & Quota -Upgrade commands by OS: +⚠️ **CRITICAL:** Before proceeding, ensure your chosen region has all required services available: -* **Windows (using winget):** +**Required Azure Services:** +- [Azure AI Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/) +- [Azure OpenAI Service](https://learn.microsoft.com/en-us/azure/ai-services/openai/) +- [Azure AI Search](https://learn.microsoft.com/en-us/azure/search/) +- [Azure App Service](https://learn.microsoft.com/en-us/azure/app-service/) +- [Azure Container Apps](https://learn.microsoft.com/en-us/azure/container-apps/) +- [Azure Container Registry](https://learn.microsoft.com/en-us/azure/container-registry/) +- [Azure Cosmos DB](https://learn.microsoft.com/en-us/azure/cosmos-db/) +- [Azure Key Vault](https://learn.microsoft.com/en-us/azure/key-vault/) +- [Azure Blob Storage](https://learn.microsoft.com/en-us/azure/storage/blobs/) +- [GPT Model Capacity](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models) - ```bash - winget install microsoft.azd - ``` +**Recommended Regions:** East US, East US2, Australia East, Japan East, UK South, France Central -* **Linux (using apt):** +🔍 **Check Availability:** Use [Azure Products by Region](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/) to verify service availability. - ```bash - curl -fsSL https://aka.ms/install-azd.sh | bash - ``` +### 1.3 Quota Check (Optional) -* **macOS (using Homebrew):** +💡 **RECOMMENDED:** Check your Azure OpenAI quota availability before deployment for optimal planning. - ```bash - brew update && brew tap azure/azd && brew install azd - ``` +📖 **Follow:** [Quota Check Instructions](./quota_check.md) to ensure sufficient capacity. -## Deployment Options & Steps + -### Deployment Steps +> **Note:** When you run `azd up`, the deployment will automatically show you regions with available quota, so this pre-check is optional but helpful for planning purposes. You can customize these settings later in [Step 3.3: Advanced Configuration](#33-advanced-configuration-optional). -Pick from the options below to see step-by-step instructions for GitHub Codespaces, VS Code Dev Containers, Local Environments, and Bicep deployments. +📖 **Adjust Quota:** Follow [Azure AI Model Quota Settings](./AzureGPTQuotaSettings.md) if needed. -| [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) | [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) | [![Open in Visual Studio Code Web](https://img.shields.io/static/v1?style=for-the-badge&label=Visual%20Studio%20Code%20(Web)&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvTXVsdGktQWdlbnQtQ3VzdG9tLUF1dG9tYXRpb24tRW5naW5lLVNvbHV0aW9uLUFjY2VsZXJhdG9yL3JlZnMvaGVhZHMvbWFpbi9pbmZyYS92c2NvZGVfd2ViIiwgImluZGV4VXJsIjogIi9pbmRleC5qc29uIiwgInZhcmlhYmxlcyI6IHsiYWdlbnRJZCI6ICIiLCAiY29ubmVjdGlvblN0cmluZyI6ICIiLCAidGhyZWFkSWQiOiAiIiwgInVzZXJNZXNzYWdlIjogIiIsICJwbGF5Z3JvdW5kTmFtZSI6ICIiLCAibG9jYXRpb24iOiAiIiwgInN1YnNjcmlwdGlvbklkIjogIiIsICJyZXNvdXJjZUlkIjogIiIsICJwcm9qZWN0UmVzb3VyY2VJZCI6ICIiLCAiZW5kcG9pbnQiOiAiIn0sICJjb2RlUm91dGUiOiBbImFpLXByb2plY3RzLXNkayIsICJweXRob24iLCAiZGVmYXVsdC1henVyZS1hdXRoIiwgImVuZHBvaW50Il19) | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +## Step 2: Choose Your Deployment Environment -
- Deploy in GitHub Codespaces +Select one of the following options to deploy the Multi Agent Custom Automation Engine Solution Accelerator: -### GitHub Codespaces +### Environment Comparison -You can run this solution using GitHub Codespaces. The button will open a web-based VS Code instance in your browser: +| **Option** | **Best For** | **Prerequisites** | **Setup Time** | +|------------|--------------|-------------------|----------------| +| **GitHub Codespaces** | Quick deployment, no local setup required | GitHub account | ~3-5 minutes | +| **VS Code Dev Containers** | Fast deployment with local tools | Docker Desktop, VS Code | ~5-10 minutes | +| **VS Code Web** | Quick deployment, no local setup required | Azure account | ~2-4 minutes | +| **Local Environment** | Enterprise environments, full control | All tools individually | ~15-30 minutes | -1. Open the solution accelerator (this may take several minutes): +**💡 Recommendation:** For fastest deployment, start with **GitHub Codespaces** - no local installation required. - [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) +--- -2. Accept the default values on the create Codespaces page. -3. Open a terminal window if it is not already open. -4. Continue with the [deployment options](#deployment-options). +
+Option A: GitHub Codespaces (Easiest) -
+[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) -
- Deploy in VS Code Dev Containers +1. Click the badge above (may take several minutes to load) +2. Accept default values on the Codespaces creation page +3. Wait for the environment to initialize (includes all deployment tools) +4. Proceed to [Step 3: Configure Deployment Settings](#step-3-configure-deployment-settings) -### VS Code Dev Containers +
-You can run this solution in VS Code Dev Containers, which will open the project in your local VS Code using the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers): +
+Option B: VS Code Dev Containers -1. Start Docker Desktop (install it if not already installed). -2. Open the project: +[![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) - [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) +**Prerequisites:** +- [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed and running +- [VS Code](https://code.visualstudio.com/) with [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -3. In the VS Code window that opens, once the project files show up (this may take several minutes), open a terminal window. -4. Continue with the [deployment options](#deployment-options). +**Steps:** +1. Start Docker Desktop +2. Click the badge above to open in Dev Containers +3. Wait for the container to build and start (includes all deployment tools) +4. Proceed to [Step 3: Configure Deployment Settings](#step-3-configure-deployment-settings)
- Deploy in VS Code Web - -### VS Code Web +Option C: Visual Studio Code Web [![Open in Visual Studio Code Web](https://img.shields.io/static/v1?style=for-the-badge&label=Visual%20Studio%20Code%20(Web)&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvTXVsdGktQWdlbnQtQ3VzdG9tLUF1dG9tYXRpb24tRW5naW5lLVNvbHV0aW9uLUFjY2VsZXJhdG9yL3JlZnMvaGVhZHMvbWFpbi9pbmZyYS92c2NvZGVfd2ViIiwgImluZGV4VXJsIjogIi9pbmRleC5qc29uIiwgInZhcmlhYmxlcyI6IHsiYWdlbnRJZCI6ICIiLCAiY29ubmVjdGlvblN0cmluZyI6ICIiLCAidGhyZWFkSWQiOiAiIiwgInVzZXJNZXNzYWdlIjogIiIsICJwbGF5Z3JvdW5kTmFtZSI6ICIiLCAibG9jYXRpb24iOiAiIiwgInN1YnNjcmlwdGlvbklkIjogIiIsICJyZXNvdXJjZUlkIjogIiIsICJwcm9qZWN0UmVzb3VyY2VJZCI6ICIiLCAiZW5kcG9pbnQiOiAiIn0sICJjb2RlUm91dGUiOiBbImFpLXByb2plY3RzLXNkayIsICJweXRob24iLCAiZGVmYXVsdC1henVyZS1hdXRoIiwgImVuZHBvaW50Il19) @@ -110,59 +127,60 @@ You can run this solution in VS Code Dev Containers, which will open the project 2. Sign in with your Azure account when prompted 3. Select the subscription where you want to deploy the solution 4. Wait for the environment to initialize (includes all deployment tools) -5. Once the solution opens, the **AI Foundry terminal** will automatically start running the following command to install the required dependencies: +5. When prompted in the VS Code Web terminal, choose one of the available options shown below: - ```shell - sh install.sh - ``` - During this process, you’ll be prompted with the message: - ``` - What would you like to do with these files? - - Overwrite with versions from template - - Keep my existing files unchanged - ``` - Choose “**Overwrite with versions from template**” and provide a unique environment name when prompted. -6. Continue with the [deployment options](#deployment-options). + ![VS Code Initial Prompt](./images/vscodeweb_intialize.png) +6. Proceed to [Step 3: Configure Deployment Settings](#step-3-configure-deployment-settings)
- Deploy in your local Environment - -### Local Environment +Option D: Local Environment -If you're not using one of the above options for opening the project, then you'll need to: +**Required Tools:** +- [PowerShell 7.0+](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell) +- [Azure Developer CLI (azd) 1.18.0+](https://aka.ms/install-azd) +- [Python 3.9+](https://www.python.org/downloads/) +- [Docker Desktop](https://www.docker.com/products/docker-desktop/) +- [Git](https://git-scm.com/downloads) -1. Make sure the following tools are installed: - - - [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.5) (v7.0+) - available for Windows, macOS, and Linux. - - [Azure Developer CLI (azd)](https://aka.ms/install-azd) (v1.18.0+) - version - - [Python 3.9+](https://www.python.org/downloads/) - - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - - [Git](https://git-scm.com/downloads) - -2. Clone the repository or download the project code via command-line: +**Setup Steps:** +1. Install all required deployment tools listed above +2. Clone the repository: ```shell azd init -t microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/ ``` - > **⚠️ Warning:** The `azd init` command will download and initialize the project template. If you run this command in a directory that already contains project files, it may override your existing changes. Only run this command once when setting up the project for the first time. If you need to update an existing project, consider using `git pull` or manually downloading updates instead. -3. Open the project folder in your terminal or editor. -4. Continue with the [deployment options](#deployment-options). +3. Open the project folder in your terminal +4. Proceed to [Step 3: Configure Deployment Settings](#step-3-configure-deployment-settings) + +**PowerShell Users:** If you encounter script execution issues, run: +```powershell +Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass +```
-### Deployment Options +## Step 3: Configure Deployment Settings + +Review the configuration options below. You can customize any settings that meet your needs, or leave them as defaults to proceed with a standard deployment. -The [`infra`](../infra) folder of the Multi Agent Solution Accelerator contains the [`main.bicep`](../infra/main.bicep) Bicep script, which defines all Azure infrastructure components for this solution. +### 3.1 Choose Deployment Type (Optional) -By default, the `azd up` command uses the [`main.parameters.json`](../infra/main.parameters.json) file to deploy the solution. This file is pre-configured for a **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration. +| **Aspect** | **Development/Testing (Default)** | **Production** | +|------------|-----------------------------------|----------------| +| **Configuration File** | `main.parameters.json` (sandbox) | Copy `main.waf.parameters.json` to `main.parameters.json` | +| **Security Controls** | Minimal (for rapid iteration) | Enhanced (production best practices) | +| **Cost** | Lower costs | Cost optimized | +| **Use Case** | POCs, development, testing | Production workloads | +| **Framework** | Basic configuration | [Well-Architected Framework](https://learn.microsoft.com/en-us/azure/well-architected/) | +| **Features** | Core functionality | Reliability, security, operational excellence | -For **production deployments**, the repository also provides [`main.waf.parameters.json`](../infra/main.waf.parameters.json), which applies a [Well-Architected Framework (WAF) aligned](https://learn.microsoft.com/en-us/azure/well-architected/) configuration. This option enables additional Azure best practices for reliability, security, cost optimization, operational excellence, and performance efficiency, such as: +**To use production configuration:** - **Prerequisite** — Enable the Microsoft.Compute/EncryptionAtHost feature for every subscription (and region, if required) where you plan to deploy VMs or VM scale sets with `encryptionAtHost: true`. Repeat the registration steps below for each target subscription (and for each region when applicable). This step is required for **WAF-aligned** (production) deployments. +**Prerequisite** — Enable the Microsoft.Compute/EncryptionAtHost feature for every subscription (and region, if required) where you plan to deploy VMs or VM scale sets with `encryptionAtHost: true`. Repeat the registration steps below for each target subscription (and for each region when applicable). This step is required for **WAF-aligned** (production) deployments. Steps to enable the feature: 1. Set the target subscription: @@ -179,52 +197,41 @@ For **production deployments**, the repository also provides [`main.waf.paramete Reference: Azure Host Encryption — https://learn.microsoft.com/azure/virtual-machines/disks-enable-host-based-encryption-portal?tabs=azure-cli - - Enhanced network security (e.g., Network protection with private endpoints) - - Stricter access controls and managed identities - - Logging, monitoring, and diagnostics enabled by default - - Resource tagging and cost management recommendations +Copy the contents from the production configuration file to your main parameters file: -**How to choose your deployment configuration:** +1. Navigate to the `infra` folder in your project +2. Open `main.waf.parameters.json` in a text editor (like Notepad, VS Code, etc.) +3. Select all content (Ctrl+A) and copy it (Ctrl+C) +4. Open `main.parameters.json` in the same text editor +5. Select all existing content (Ctrl+A) and paste the copied content (Ctrl+V) +6. Save the file (Ctrl+S) -* Use the default `main.parameters.json` file for a **sandbox/dev environment** -* For a **WAF-aligned, production-ready deployment**, copy the contents of `main.waf.parameters.json` into `main.parameters.json` before running `azd up` +### 3.2 Set VM Credentials (Optional - Production Deployment Only) ---- - -### VM Credentials Configuration +> **Note:** This section only applies if you selected **Production** deployment type in section 3.1. VMs are not deployed in the default Development/Testing configuration. -By default, the solution sets the VM administrator username and password from environment variables. -If you do not configure these values, a randomly generated GUID will be used for both the username and password. +By default, random GUIDs are generated for VM credentials. To set custom credentials: -To set your own VM credentials before deployment, use: - -```sh +```shell azd env set AZURE_ENV_VM_ADMIN_USERNAME azd env set AZURE_ENV_VM_ADMIN_PASSWORD ``` -> [!TIP] -> Always review and adjust parameter values (such as region, capacity, security settings and log analytics workspace configuration) to match your organization’s requirements before deploying. For production, ensure you have sufficient quota and follow the principle of least privilege for all identities and role assignments. - - -> [!IMPORTANT] -> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates. - - -Consider the following settings during your deployment to modify specific settings: +### 3.3 Advanced Configuration (Optional)
- Configurable Deployment Settings +Configurable Parameters -When you start the deployment, most parameters will have **default values**, but you can update the following settings [here](../docs/CustomizingAzdParameters.md): +You can customize various deployment settings before running `azd up`, including Azure regions, AI model configurations (deployment type, version, capacity), container registry settings, and resource names. +📖 **Complete Guide:** See [Parameter Customization Guide](../docs/CustomizingAzdParameters.md) for the full list of available parameters and their usage.
[Optional] Quota Recommendations -By default, the **GPT model capacity** in deployment is set to **140k tokens**. +By default, the **GPT model capacity** in deployment is set to **150k tokens**. To adjust quota settings, follow these [steps](./AzureGPTQuotaSettings.md). @@ -233,73 +240,85 @@ To adjust quota settings, follow these [steps](./AzureGPTQuotaSettings.md).
+Reuse Existing Resources - Reusing an Existing Log Analytics Workspace +To optimize costs and integrate with your existing Azure infrastructure, you can configure the solution to reuse compatible resources already deployed in your subscription. - Guide to get your [Existing Workspace ID](/docs/re-use-log-analytics.md) +**Supported Resources for Reuse:** -
+- **Log Analytics Workspace:** Integrate with your existing monitoring infrastructure by reusing an established Log Analytics workspace for centralized logging and monitoring. [Configuration Guide](./re-use-log-analytics.md) -
+- **Azure AI Foundry Project:** Leverage your existing AI Foundry project and deployed models to avoid duplication and reduce provisioning time. [Configuration Guide](./re-use-foundry-project.md) - Reusing an Existing Azure AI Foundry Project +**Key Benefits:** +- **Cost Optimization:** Eliminate duplicate resource charges +- **Operational Consistency:** Maintain unified monitoring and AI infrastructure +- **Faster Deployment:** Skip resource creation for existing compatible services +- **Simplified Management:** Reduce the number of resources to manage and monitor - Guide to get your [Existing Project ID](/docs/re-use-foundry-project.md) +**Important Considerations:** +- Ensure existing resources meet the solution's requirements and are in compatible regions +- Review access permissions and configurations before reusing resources +- Consider the impact on existing workloads when sharing resources
-### Deploying with AZD - -Once you've opened the project in [Codespaces](#github-codespaces), [Dev Containers](#vs-code-dev-containers), or [locally](#local-environment), you can deploy it to Azure by following these steps: +## Step 4: Deploy the Solution -#### Important: Environment Management for Redeployments +💡 **Before You Start:** If you encounter any issues during deployment, check our [Troubleshooting Guide](./TroubleShootingSteps.md) for common solutions. -> **⚠️ Critical:** If you're redeploying or have deployed this solution before, you **must** create a fresh environment to avoid conflicts and deployment failures. +### 4.1 Authenticate with Azure -**Choose one of the following before deployment:** +```shell +azd auth login +``` -**Option A: Create a completely new environment (Recommended)** +**For specific tenants:** ```shell -azd env new +azd auth login --tenant-id ``` -**Option B: Reinitialize in a new directory** +> **Finding Tenant ID:** + > 1. Open the [Azure Portal](https://portal.azure.com/). + > 2. Navigate to **Microsoft Entra ID** from the left-hand menu. + > 3. Under the **Overview** section, locate the **Tenant ID** field. Copy the value displayed. + +### 4.2 Start Deployment + ```shell -# Navigate to a new directory -cd ../my-new-deployment -azd init -t microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/ +azd up ``` -> **💡 Why is this needed?** Azure resources maintain state information tied to your environment. Reusing an old environment can cause naming conflicts, permission issues, and deployment failures. +**During deployment, you'll be prompted for:** +1. **Environment name** (e.g., "macae1") - Must be 3-16 characters long, alphanumeric only +2. **Azure subscription** selection +3. **Azure AI Foundry deployment region** - Select a region with available model quota for AI operations +4. **Primary location** - Select the region where your infrastructure resources will be deployed +5. **Resource group** selection (create new or use existing) -#### Deploy the solution -1. Login to Azure: +**Expected Duration:** 9-10 minutes for default configuration - ```shell - azd auth login - ``` +- **Upon successful completion**, you will see a success message indicating that all resources have been deployed, along with the application URL and next steps for uploading team configurations and sample data. - #### To authenticate with Azure Developer CLI (`azd`), use the following command with your **Tenant ID**: +![Deployment Success message](./images/Deployment_success_message.png) - ```sh - azd auth login --tenant-id - ``` +**⚠️ Deployment Issues:** If you encounter errors or timeouts, try a different region as there may be capacity constraints. For detailed error solutions, see our [Troubleshooting Guide](./TroubleShootingSteps.md). -2. Provision and deploy all the resources: +### 4.3 Get Application URL - ```shell - azd up - ``` - > **Note:** This solution accelerator requires **Azure Developer CLI (azd) version 1.18.0 or higher**. Please ensure you have the latest version installed before proceeding with deployment. [Download azd here](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd). +After successful deployment: +1. Open [Azure Portal](https://portal.azure.com/) +2. Navigate to your resource group +3. Find the Fronted App Service +4. Copy the **Default domain** -3. Provide an `azd` environment name (e.g., "macaeapp"). -4. Select a subscription from your Azure account and choose a location that has quota for all the resources. +⚠️ **Important:** Complete [Post-Deployment Steps](#step-5-post-deployment-configuration) before accessing the application. - - This deployment will take _4-6 minutes_ to provision the resources in your account and set up the solution with sample data. - - If you encounter an error or timeout during deployment, changing the location may help, as there could be availability constraints for the resources. - - **Upon successful completion**, you will see a success message indicating that all resources have been deployed, along with the application URL and next steps for uploading team configurations and sample data. +## Step 5: Post-Deployment Configuration -5. Upload Team Configurations using command printed in the terminal. The command will look like one of the following. Run the appropriate command for your shell from the project root: +### 5.1 Run Post Deployment Script + +1. Upload Team Configurations using command printed in the terminal. The command will look like one of the following. Run the appropriate command for your shell from the project root: - **For Bash (Linux/macOS/WSL):** ```bash @@ -311,7 +330,7 @@ azd init -t microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/ infra\scripts\Upload-Team-Config.ps1 ``` -6. Index Sample Data into Search Service using command printed in the terminal. The command will look like one of the following. Run the appropriate command for your shell from the project root: +2. Index Sample Data into Search Service using command printed in the terminal. The command will look like one of the following. Run the appropriate command for your shell from the project root: - **For Bash (Linux/macOS/WSL):** ```bash @@ -323,7 +342,7 @@ azd init -t microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/ infra\scripts\Process-Sample-Data.ps1 ``` -7. **[Alternative]** To upload team configurations and index sample data in one step, run the appropriate command for your shell from the project root: +3. **[Alternative]** To upload team configurations and index sample data in one step, run the appropriate command for your shell from the project root: - **For Bash (Linux/macOS/WSL):** ```bash @@ -335,280 +354,166 @@ azd init -t microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/ infra\scripts\Team-Config-And-Data.ps1 ``` -8. **[Optional]** Set up authentication for your web application by following the steps in [Set Up Authentication in Azure App Service](../docs/azure_app_service_auth_setup.md). - -9. **Access your application:** Open the [Azure Portal](https://portal.azure.com/), go to your resource group, find the App Service that runs the frontend application, and get the application URL from the **Default domain** field. - -### 🛠️ Troubleshooting - If you encounter any issues during the deployment process, please refer [troubleshooting](../docs/TroubleShootingSteps.md) document for detailed steps and solutions. - - ## Next Steps -Now that you've completed your deployment, you can start using the solution. -To help you get started, here are some [Sample Questions](./SampleQuestions.md) you can follow to try it out. +### 5.2 Configure Authentication (Optional) -## Clean Up Resources -If you are done trying out the application, you can delete all resources by running: +1. Follow [App Authentication Configuration](./azure_app_service_auth_setup.md) +2. Wait up to 10 minutes for authentication changes to take effect -```shell -azd down -``` -> **Note:** If you deployed with `enableRedundancy=true` and Log Analytics workspace replication is enabled, you must first disable replication before running `azd down` else resource group delete will fail. Follow the steps in [Handling Log Analytics Workspace Deletion with Replication Enabled](./LogAnalyticsReplicationDisable.md), wait until replication returns `false`, then run `azd down`. +### 5.2 Verify Deployment -# Local setup +1. Access your application using the URL from Step 4.3 +2. Confirm the application loads successfully + -> **Note for macOS Developers**: If you are using macOS on Apple Silicon (ARM64) the DevContainer will **not** work. This is due to a limitation with the Azure Functions Core Tools (see [here](https://github.com/Azure/azure-functions-core-tools/issues/3112)). +### 5.3 Test the Application -The easiest way to run this accelerator is in a VS Code Dev Containers, which will open the project in your local VS Code using the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers): +Follow the detailed to test the Multi agent functionality: -1. Start Docker Desktop (install it if not already installed) -1. Open the project: - [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) +📖 **Detailed Instructions:** See the complete [Sample Workflow](./SampleQuestions.md) guide for step-by-step testing procedures. -1. In the VS Code window that opens, once the project files show up (this may take several minutes), open a terminal window -## Detailed Development Container setup instructions +## Step 6: Clean Up (Optional) -The solution contains a [development container](https://code.visualstudio.com/docs/remote/containers) with all the required tooling to develop and deploy the accelerator. To deploy the Multi-Agent solutions accelerator using the provided development container you will also need: - -- [Visual Studio Code](https://code.visualstudio.com) -- [Remote containers extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) - -If you are running this on Windows, we recommend you clone this repository in [WSL](https://code.visualstudio.com/docs/remote/wsl) - -```cmd -git clone https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator -``` - -Open the cloned repository in Visual Studio Code and connect to the development container. - -```cmd -code . +### Remove All Resources +```shell +azd down ``` +> **Note:** If you deployed with `enableRedundancy=true` and Log Analytics workspace replication is enabled, you must first disable replication before running `azd down` else resource group delete will fail. Follow the steps in [Handling Log Analytics Workspace Deletion with Replication Enabled](./LogAnalyticsReplicationDisable.md), wait until replication returns `false`, then run `azd down`. -!!! tip -Visual Studio Code should recognize the available development container and ask you to open the folder using it. For additional details on connecting to remote containers, please see the [Open an existing folder in a container](https://code.visualstudio.com/docs/remote/containers#_quick-start-open-an-existing-folder-in-a-container) quickstart. - -When you start the development container for the first time, the container will be built. This usually takes a few minutes. **Please use the development container for all further steps.** - -The files for the dev container are located in `/.devcontainer/` folder. - -## Local deployment and debugging: - -1. **Clone the repository.** - -2. **Log into the Azure CLI:** - - - Check your login status using: - ```bash - az account show - ``` - - If not logged in, use: - ```bash - az login - ``` - - To specify a tenant, use: - ```bash - az login --tenant - ``` - -3. **Create a Resource Group:** - - - You can create it either through the Azure Portal or the Azure CLI: - ```bash - az group create --name --location EastUS2 - ``` - -4. **Deploy the Bicep template:** - - - You can use the Bicep extension for VSCode (Right-click the `.bicep` file, then select "Show deployment plan") or use the Azure CLI: - ```bash - az deployment group create -g -f infra/main.bicep --query 'properties.outputs' - ``` - - **Note**: You will be prompted for a `principalId`, which is the ObjectID of your user in Entra ID. To find it, use the Azure Portal or run: +### Manual Cleanup (if needed) +If deployment fails or you need to clean up manually: +- Follow [Delete Resource Group Guide](./DeleteResourceGroup.md) - ```bash - az ad signed-in-user show --query id -o tsv - ``` +## Managing Multiple Environments - You will also be prompted for locations for Cosmos and OpenAI services. This is to allow separate regions where there may be service quota restrictions. +### Recover from Failed Deployment - - **Additional Notes**: +If your deployment failed or encountered errors, here are the steps to recover: - **Role Assignments in Bicep Deployment:** +
+Recover from Failed Deployment - The **main.bicep** deployment includes the assignment of the appropriate roles to AOAI and Cosmos services. If you want to modify an existing implementation—for example, to use resources deployed as part of the simple deployment for local debugging—you will need to add your own credentials to access the Cosmos and AOAI services. You can add these permissions using the following commands: +**If your deployment failed or encountered errors:** - ```bash - az cosmosdb sql role assignment create --resource-group --account-name --role-definition-name "Cosmos DB Built-in Data Contributor" --principal-id --scope /subscriptions//resourceGroups//providers/Microsoft.DocumentDB/databaseAccounts/ - ``` +1. **Try a different region:** Create a new environment and select a different Azure region during deployment +2. **Clean up and retry:** Use `azd down` to remove failed resources, then `azd up` to redeploy +3. **Check troubleshooting:** Review [Troubleshooting Guide](./TroubleShootingSteps.md) for specific error solutions +4. **Fresh start:** Create a completely new environment with a different name - ```bash - az role assignment create --assignee --role "Azure AI User" --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ - ``` +**Example Recovery Workflow:** +```shell +# Remove failed deployment (optional) +azd down - **Using a Different Database in Cosmos:** +# Create new environment (3-16 chars, alphanumeric only) +azd env new macaeretry - You can set the solution up to use a different database in Cosmos. For example, you can name it something like macae-dev. To do this: +# Deploy with different settings/region +azd up +``` - 1. Change the environment variable **COSMOSDB_DATABASE** to the new database name. - 2. You will need to create the database in the Cosmos DB account. You can do this from the Data Explorer pane in the portal, click on the drop down labeled "_+ New Container_" and provide all the necessary details. +
-5. **Create a `.env` file:** +### Creating a New Environment - - Navigate to the `src\backend` folder and create a `.env` file based on the provided `.env.sample` file. - - Update the `.env` file with the required values from your Azure resource group in Azure Portal App Service environment variables. - - Alternatively, if resources were - provisioned using `azd provision` or `azd up`, a `.env` file is automatically generated in the `.azure//.env` - file. You can copy the contents of this file into your backend `.env` file. +If you need to deploy to a different region, test different configurations, or create additional environments: - _**Note**: To get your `` run `azd env list` to see which env is default._ +
+Create a New Environment -6. **Fill in the `.env` file:** +**Create Environment Explicitly:** +```shell +# Create a new named environment (3-16 characters, alphanumeric only) +azd env new - - Use the output from the deployment or check the Azure Portal under "Deployments" in the resource group. - - Make sure to set APP_ENV to "**dev**" in `.env` file. - - For local development, make sure to include below env variables in the `.env` - - `BACKEND_API_URL=http://localhost:8000` - - `FRONTEND_SITE_NAME=http://127.0.0.1:3000` - - `MCP_SERVER_ENDPOINT=http://localhost:9000/mcp`. +# Select the new environment +azd env select -7. **(Optional) Set up a virtual environment:** +# Deploy to the new environment +azd up +``` - - If you are using `venv`, create and activate your virtual environment for both the frontend and backend folders. +**Example:** +```shell +# Create a new environment for production (valid: 3-16 chars) +azd env new macaeprod -8. **Install requirements - Backend:** +# Switch to the new environment +azd env select macaeprod - - To install the requirement for backend - - Open a terminal in the `src/backend` folder and run: - ```bash - pip install uv - uv sync - ``` - -9. **Build the frontend (important):** +# Deploy with fresh settings +azd up +``` - - To install the requirement for frontend - - Open a terminal in the `src/frontend` folder and run: - ```bash - pip install -r requirements.txt - ``` +> **Environment Name Requirements:** +> - **Length:** 3-16 characters +> - **Characters:** Alphanumeric only (letters and numbers) +> - **Valid examples:** `macae`, `test123`, `myappdev`, `prod2025` +> - **Invalid examples:** `co` (too short), `my-very-long-environment-name` (too long), `test_env` (underscore not allowed) - - Before running the frontend server, you must build the frontend to generate the necessary `build/assets` directory. +
- From the `src/frontend` directory, run: +
+Switch Between Environments - ```bash - npm install - npm run build - ``` +**List Available Environments:** +```shell +azd env list +``` -10. **Install requirements - MCP server:** +**Switch to Different Environment:** +```shell +azd env select +``` - - To install the requirement for mcp server - - Open a terminal in the `src/mcp_server` folder and run: - ```bash - pip install uv - uv sync - ``` +**View Current Environment:** +```shell +azd env get-values +``` -11. **Run the application:** +
-- From the `src/backend` directory activate the virtual environment created through step 8 and Run: +### Best Practices for Multiple Environments -```bash -python app_kernel.py -``` +- **Use descriptive names:** `macaedev`, `macaeprod`, `macaetest` (remember: 3-16 chars, alphanumeric only) +- **Different regions:** Deploy to multiple regions for testing quota availability +- **Separate configurations:** Each environment can have different parameter settings +- **Clean up unused environments:** Use `azd down` to remove environments you no longer need -- In a new terminal from the src/frontend directory -```bash - python frontend_server.py -``` +## Need Help? -or Run +- 🐛 **Issues:** Check [Troubleshooting Guide](./TroubleShootingSteps.md) +- 💬 **Support:** Review [Support Guidelines](../SUPPORT.md) +- 🔧 **Development:** See [Contributing Guide](../CONTRIBUTING.md) - ```bash - npm run dev - ``` +--- -- From the `src/mcp_server` directory activate the virtual environment created through step 10 and Run: -```bash -python mcp_server.py --transport streamable-http --host 0.0.0.0 --port 9000 -``` +## Advanced: Deploy Local Changes -11. Open a browser and navigate to `http://localhost:3000` -12. To see swagger API documentation, you can navigate to `http://localhost:8000/docs` +If you've made local modifications to the code and want to deploy them to Azure, follow these steps to swap the configuration files: -## Deploy Your local changes -To Deploy your local changes rename the below files. - 1. Rename `azure.yaml` to `azure_custom2.yaml` and `azure_custom.yaml` to `azure.yaml`. - 2. Go to `infra` directory - - Rename `main.bicep` to `main_custom2.bicep` and `main_custom.bicep` to `main.bicep`. -Continue with the [deploying steps](#deploying-with-azd). +> **Note:** To set up and run the application locally for development, see the [Local Development Setup Guide](./LocalDevelopmentSetup.md). +### Step 1: Rename Azure Configuration Files -## Debugging the solution locally +**In the root directory:** +1. Rename `azure.yaml` to `azure_custom2.yaml` +2. Rename `azure_custom.yaml` to `azure.yaml` -You can debug the API backend running locally with VSCode using the following launch.json entry: +### Step 2: Rename Infrastructure Files -``` - { - "name": "Debug Backend (FastAPI)", - "type": "debugpy", - "request": "launch", - "program": "${workspaceFolder}/src/backend/app_kernel.py", - "cwd": "${workspaceFolder}/src/backend", - "console": "integratedTerminal", - "justMyCode": false, - "python": "${workspaceFolder}/src/backend/.venv/Scripts/python.exe", - "env": { - "PYTHONPATH": "${workspaceFolder}/src/backend", - "UVICORN_LOG_LEVEL": "debug" - }, - "args": [], - "serverReadyAction": { - "pattern": "Uvicorn running on (https?://[^\\s]+)", - "uriFormat": "%s", - "action": "openExternally" - } - } -``` +**In the `infra` directory:** +1. Rename `main.bicep` to `main_custom2.bicep` +2. Rename `main_custom.bicep` to `main.bicep` -To debug the python server in the frontend directory (frontend_server.py) and related, add the following launch.json entry: +### Step 3: Deploy Changes -``` - { - "name": "Python Debugger: Frontend", - "type": "debugpy", - "request": "launch", - "cwd": "${workspaceFolder}/src/frontend", - "module": "uvicorn", - "args": ["frontend_server:app", "--port", "3000", "--reload"], - "jinja": true - } +Run the deployment command: +```shell +azd up ``` -To debug the MCP server by adding the following launch.json entry: - -``` - { - "name": "Debug MCP Server", - "type": "debugpy", - "request": "launch", - "program": "${workspaceFolder}/src/mcp_server/mcp_server.py", - "cwd": "${workspaceFolder}/src/mcp_server", - "console": "integratedTerminal", - "justMyCode": false, - "python": "${workspaceFolder}/src/mcp_server/.venv/Scripts/python.exe", - "env": { - "PYTHONPATH": "${workspaceFolder}/src/mcp_server" - }, - "args": [ - "--transport", "streamable-http", - "--host", "0.0.0.0", - "--port", "9000" - ] - } -``` +> **Note:** These custom files are configured to deploy your local code changes instead of pulling from the GitHub repository. \ No newline at end of file diff --git a/docs/LocalDevelopmentSetup.md b/docs/LocalDevelopmentSetup.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/images/Deployment_success_message.png b/docs/images/Deployment_success_message.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8f9d948c97124b91314acdfde6ee823aa77af2 GIT binary patch literal 74238 zcmce8cT`hb_bpbg1-Uj55KsXT5Rk4^6&2~7NR5hs^bQh8P`QdymEMc=me6~#0n$4G z0tBTeK%|5~Lde_a-tT_zy}#Z+zwt7L!{l&s%HC_uHRoJA=e?ee8q0Cc<4jCUEb0&M z889&&@nK>*=<>%=u;m=VEDZd2z|%nOE)%-<;xhPf*zS(@9VVu-$P;@{j)2d{+#Z^G zGBL3UK>rS?8}R>TVq)Z|-@9Yn`Wh>dLl+#4w}Uljprg|ABCG7E}9WN&ozfT9P&jY|Ifqx zx6dBDdcf8r5zp({(cR0RsMK-$ZDU$wyW%DPlJSb|2}exgZnv3ZaQMYrgI0!yeBkP! z*KN0yo%#n&i0>S7%yR{KX$H0K|Nbe%^Mv(xv43`RL+xy{^0+Y=p)HD;UtsvmLnP&* zeSCwC+CH9(Iyzieo_6ypu_LQoPWoCd>Cf>(5u^2G8mBxRl`3y`)n7H0pp$C!S5Cu9 zI7`UdIEH&bESM=$~^k{gu%67Lh8youk7| zGq8&YoS(@5{o`6{fnxRp97o4={!sh2NV$1&A?v>8fD(-`Jb*lYB2q7i9CLjg=|%Wq z^+xTUkmBGc>d;6;djZCKVFy-Nbju~cbmwQ-NUqBO+w8(itz_Bo(+x~aFY2AXc-Fh# z6(2#a=koadJ`&3*#kBNGY>0ub(~aLMFdT1FtNb0gb>F&u_ zmj8MChs0r@1OL3g^!?BO(VZ{*G^Bq1&xA7l#d#3iH}qQCILgAAEtvM=E)k2tQprT} z_p`ds`!nveIawOm+UB~Sm48+Gkxy+xL_{PU_s_KrH~IT&CraK|S66T2Z;6eMcidd) zkw;Q1C64JdA;<;@ME&+EF7NBtyVf2*>VAJc;k}#_FDxlJm@pSlr6TBbQXqCQJ`5P-bLWpAdPYVu5*;!1_43YRrFZ&N7>yDI-&lB+EmRo0ecns`mzDN@e~Zdi<3$>& z2A>+i1kxSpo9PT`4+rOv4ZJ$#)pf*=G9nGf}u~gR16WwDgWxKA4L^kd3_5}*d z$QTDPvyR%OBd;D!kcp3p$$o!UkT6zeOYdOFD2r0Q%1S{CwNosrZi{zx4crTem&k-Q7bXB24bzzu%B2FDEU%w6#10ZLqLN zk=RXXn2k`_T2x_}g1eWv`X$?{3DIF&QFS3hYL zXOC}2npHW(7PL1bX+|(u9@yNp*{jet_3d!O6dEMdtZmCM7Te`g!zJgNpQhw5EF`3E zYHF&Xt1EZaUtL!hW?~W-6%{pHVW(^D(Vw!Ja{-z)_t`c-=c1w_Lo2Ja?Uix9TY&=I z-Q7;rvR%_n{z!DiV4f~-PpSf}tgLL!xvHwltO-$t#k_9bP#>&z#%(PmyVf(BSF3U7 z*xB>IB%9>vq;7QL29*^fzj%j<#$s*24+zA@JV`;|s&!8h|GxY#`UM|@ci?;0P%roi5V34VfAaG55 ze5$G2tBzV8;55m~^esah8=GCl+;-kT3n)}vTwE%I486U*%^G}4Mlo=4KP`C0qw7|< zaEp13hY#HrlO?R*mY0`rjheeIkK3ikrVM?HijJ;w#>u7+{amY^J!Od`kE}@|5IaAE zWn3n2Hm$dDt#CNdyZU$cE_oaB#c z*3{M}7nSrRNbu#S9}8d95M8N}+NLn|>T)+pfBwd*QXDE)|6|cE&$Fbe&)ZH@4NIx} zMe=iT6gqmOOvi#YRp*%(CuZrO~R@_LgV6XapDv{i)K&stDfnC6O z_mi=3%*2El7*kl3)Fo-3l}D>%WvU`D^e{7TKn6f_`_334!a!EAhNh-~Iy*d|>^fU$ zwJRPCiUGy3sxp#QdFM8Ojx|=CkdP4PO}C6sSy^OI0g75>-skG17J{rODlF_oYSm2n zB)>hyO)ypoKE-WdVPTPH>DCNFo0`tpesxuL%g;Pe*PiHcZzzjei=-)1^)2TF_)r zLLng`g9#GWUcbH{JI}^en33_BUJuep-`F@dP8>eHqUd|I8O;I1?fzs9%m>)*ml_l* z-uwu}rqv=bh*jAQeyEwS_4zDLgM1O5)u-e z($7Dj$VG7b-HrLquC5_adb3aSJy>eM)6ud{V;OHwu-9)cE-p6Yl>)k^4ep7GXVBp# z7Ig-Getu8|Lf0*Drrz>=kdu?Mw(K}n?`?=gB0~*5pqN>oZP$!~s!?HO<*?=3Kn4xJ z#>xg}#qjRk*MRISqF8hR5)YI<`L+dSZOXB*XXZ-~If!@fHaHXKjmIy2R>m@;1$7Zh zz7v)9<&UllU%U1^ZghMHfpJ_$?o{JkhCs0f6ete{M~+M>t3_Naupi2;qdlqWk5i%$ z39ib|bMTSx-w!nUZF=qPxMNV?pO!6w@1&MTZc76?z``wW1ZoDAO2j0SZ$Sah8@*`# zcTfu^!Ea|p9J#ZfhUl$BdP8_e}GoI#Bz5D1OR_*HyM zOHZ{A$c|Gqt+4@;1k<0_(=-nSfD%syk#P+a3+wg>jtc60hzME_RF!0;58zg3ky9+a#yb0m9pzK($We$#jAW>om0W5_^MVy#^9g< zWvO31`f7n)Um60C6?wW{PsA|5f$W?dAqfe6kV=L5`8TfC6o8mdy7A<7^WKIga-%~K z6wFyOlr=yzP8o+7oixP)ByGEH2-8e;00=8|{rXDrQSXt&_@^(xQK2EzPPsXdFlS^Dfg2U8U;H=PeS z&GXif^Hy1=!XhGM5RE!fTeG~3v02kEi@M2#mC?3 z(YJBRYNASvz0Dr9wJt!pAsMVi7Q5Ap%<+5^?7QOIxY>a$HSgauceK+K>w0FBZ@Pa1 z?6tr6Bp84~TK(#~=3~uGfHQ+D9t6qUSREf5yZk9s%)woF${1!TkleF?m3N1b2c*Ak zcfwD~REFi3bU+GP+uG^_$8M(AP6q>8v*OYKAOyzPr^hBI z!J4P>=AK|U3UhNGh_~#OW4C*f<>W+E?W8^C9zxs-j9veak9^@B%HdpcI^W*13_(Tp z3H)mJsK4Dj=NlT(3DOD-|Lv85LgS*O@Jc0|JXPr^Q*T^$HorDVRaT{~4Yz-ki!R5qy=oKTN?!9YTdK^*%nr7@aQ5;vzf)CVj2l>JSD z>cvteOZ^GMLLA%h{q<{WpGMN`eZ#<=0URkI;liw~&|zxsW-L*4vKcek7#0IaLYQu9aQDo^0{R9n*u24)GzvINF&O)radFD> zkQ#uqQSj*yL8Z?Q&HEkix0ve5)99?N*4)nYd3&Gz}-+7T;96vBz;~yaDdx)^5?XyZTAH_fL$Ng z%}IP)I2ZZ%H`aztjls{a4v_)-9Zy{|6T5T{N%F@V0v?sT={IZb4h$+NE%VN#{Cy zHmkO_RyO!4g^1Oak&%IvX}vEA4N4bsd)%(g$pui=!F@VS=Gl)AY$}%`L3{&Lado$B z+jc`9kV0jy4&_CHB8D$s0eLnE0!7tgm&`TR_{w|DKpf<4JK7jV(t(nFJ?Zoo>P<%;hMpuJ5eR_B`ODZU9OMX{??H z^m;EN{9*i=vuDq9ap9aoupk{uEE{};Zr!RIzlH-CzngM!Dk)NB{}JGwuHNTLyC5GKlWg)SP(1)As*l3miG)ZwvJpIeT!NF{GQz0}05qaQc#p;wVexx&2 zL}0N#-}%T%oQRZ^p@Q$45m5MpLqp!6wkrW*0O@VOq{NbYa$N&vxz_f8oHqbU8@r@| zwJQafL;M-cYXV3uP`x}kd3nS{yR>yqZw@Z5A}-fPeQ;;B;ArGFF4t>7xQggq%m)={ zDv&`(fO26TFo__RK*jI~yG8%?p3O3+aY;+m?tEMPbKAZ&B>>|iN|ec=Uv*HCfzAMg zuS1-TY`EtdhgmR)T?(DK1nNEFYV8Y+T`_asWGc`kIX*Sn{T zuP!}G`(lah8Sb^wgQd!p(g5T?0y(wzQK|VPun8cp0K|_Mz!eI6=WUb(hn!0akN=8< z()O4&BzA5aaw$>P$E+ilr~OIJ+ebFRbWc<{#)BMKj9o~2;9yZSH(X$d0CDIIf@#X5 zOVq6Kg?loeUvJg-@Am*$dDVZE+^;M^X9Mjper^jzr!Hp(^LW(!Tv>6#h$jOzR?pa{ zk)cz7?NKS37KcA6VT(?F$sVn&QF6gmYeUElK!I+Htq64-4}S9PZ5{1T-BqR0Q7xde zitz4J8DcS(zEj>-eAgy8FS`>I+ ze*6h|2^KX2c#lSK6y#=|o#V(FocO=Rm47st1$pV@46-4fV`H%$^MMkTdhe!DpKE4rv zleYG0kr1!~mL$`BPfAcHr5|#Dpp3V3!=4{j@>==;`Fun`->jAw8vu|BU%#$(`t<3x zY_|LN?p?cn{rVE+M=cP=(nzWoq-u$qCF83%8QvkE(d(M3zym;08t^i-!CxHTclIeQ z7+}18Qq8>#O&e4%!N6UH45g8|j%aQ8A8E7~OPRq*C5y}D{uCF$HSA|Tzlv%fHlAe{ ziZ{&Du?Gx=3Xoq!9f}F<_!5zg8tu#uKrqM&QqO7qs;oi^3OFJ=4hSRYu-DMa0B(V3yvo5*bXRaKpj0}tonwsy<#wnDzg}hHp6@ps zE;q?12@*AV>N4=}5IQi-Jb09T}&7__<{Sn}KPY6I$5%MJP8TX3GO3yL2%SdJR&5;vkA7+*kpP>}2f7=^R9tbC*D|0- z@doO_@3|x)_r0CqJ(0!x^0t-VF6$ea`p}_r3-dS6UV`V#VF44e5>mXL3*VjYgdv}31GEwbp zULoD5_Ta%=g$Mm?FgFU&>Q-MYVS3OTOUZl@b(11vfJ9crmFgT{(saoC_a8?bWUgkO z_-$c`tx7{LCN(VH&HH18vqidc>%iFg?=Jwe9R_>|!}HzhDFfRmD^A4~t)+)bD0o|xm#+K6JTv$YSr=RWGyqgQC z=AZp6%Vzafme?KZNTu8?wMaw`hw1e=*_IUFd;Z16#lvXJ25CSnWod_DyR5)i?e5kB z7HMOv_5H^Y+zJb6^1x5Z1(d6PXeP^W57)PKG z05QinF9rb;xHO=~>&@&7h`s>XbA;n2X|DzW#YJn;E+R6^Hk!cTb zX@_2PyQsCVpCl+#COsj?4h!Z~xRw}5T)hX$g&I5xM^yd2Jd|f_XgEZuN4D8ViXQX1 zv;Y|E5Rjd~OnDA?Rqt?&2DXgLb$i(Kq7uRg-2C>fi65=_$Fi^UvPLg&kp(7r_bo6b zyTD!nnr5PL{E=E!J7wBmw>^><3xFTl;?lph(IwvC`gWnOjEa-{f^$V}Cdu9GXXGRIV#cS83ffmkT>-q&7mUThL9%b5t!tTHp=v zH|@W?KEkPlsPtKzEC6tKCEqa|0i_-&G!TL4n5~$WYhGsovS5OKsM*m7BQn-t-F}Lq z%!Az0&r!hkam%?_Bx?qyid%e{V(cxd)B~f8oX*(G(`5FZ-?MTkdlVBB^GwS@-@qX1 zI-6!cN!<-NB}$v!Qiz2_yT;y+?7!=B8wF=+wB02fe!m)c zUVRh}Y|o5^iu`WFVO4*;W?wMEwWyC&Jh2JtuU)c4enY_SM#hnkU??kiTg97qo(k~u z*Tz4;={EBc1dj}G)_}QPr?vp~4uJEf2V6a{9oahyu^QlSR-ZDpy=;_n)BUby-1Pye zKE*5n%{TzDZ$dCF`(|V^IV3Dh`fAlRNl63n0WvJ})$;T%#Ac6WD6j=Dk4qG^TgGLW=)IL`A$-tNn|69oADI$PJ@=9SlwwiRxV zEN09#%| zr&1eV4q*T&Gns{j!Wf#s3aG%KG{>|)b&u>;dht8s)2B~fpaj;dB(v}+K5C(kU?%Ta zU?Vp~kD&Ts5H$m|q9H&J)+^&N+BK=^goUAihPtO1D_(26rMGb6+<6g4Av!5u-?E{NS4 z#J-YWT6%A{cTd2g0)E{g8r%^TXj%*qq<-_RCE+A+7Xbf2T^|K;Fl7(i5r_yj9Xt!@ zxO~7)X|7h{FPEBlII1p!M+rDXCIx78FVS05Q?tr*Q3o=H@Qi&*Q?DwpuQoO}la<<| z9SO0Ex4f!SSylG*z)^B>){d)-pdf0ftLszNri={?K6Q3#gmWvHz^wdiDi9FxG@)9Z zUGZ~>VK5=UE>i9z&Bw#hz{vI`Fs%c9EbTOQ18Ou=>N(n=p`0S2U|@iZKueqE4*Hsq z$0RH&Is&?m&&nPd>FLdQvrhmrlXFpub2-w>)#}y@|PddwaHW)DND^ zQJP|P_kxbH4B}i{N`Ora(RpZwnj-uF5+P`-HQ~A{c^1waAZ~i77FmFVLhVE9KqP8z zL>agul}}rbV~CyIG=EJx3N$t=h|jB5Pj`O*Oafk_GH@Pkk!2}z&L6YOtlJ@b zZ?-)WR^u`S4MEMgyUzAfp3SeOVLT!-G}LjFq6@+na=yUP%vRI;&co8vfdK`Yk2@icbnRVGFzDmOfT4lbem{%c zBt%sy`xbIU=Vea^$8=_eBs*k-a@X5WVCS!xO-1JkX>|v3h3gGsHb{LchCvkvr`Ltr zc@S1T`Ffc9rrT}v8kg9V^bSZYKoJSdImq+|9iPJ2uV0IigI@AeeDfkC-GAK^5D-|7 z)>U4oY7sC{LJw++vuNPlmO%lB)+g-k1<*kUN#?5mI53z&jhxa%SB-8fXaJe;^+Ci% zdr~)8F9f~ZwxLP|I#3y)u;+jt$Z&$w#DAJ`4}m}Oq9UhA5%la-6B84mE(yTC@Q%fj z2sFvF6~DOxg!p+2ia>(*uL(+TszR05vVnEEZYaC>C{Q0b#p=zE#H5vLz{VfemYd3k zhIB|*#TYc3=PWdGfXGj z`DX>lVKr^-@M4o9$h10r`iYjT0B92c_8mXs;2pW$y1NV%GO#ltJtfgm$)kk0238ha z(^RXS@CA(*_^JZf9Uw>L&r=(q3N8Vc$ryP0UOh6{YoOkP{)}UFcT$&4yk#zkCCD)X zzCP67uk_orr7!CSO4_a({AVf1OIwIr17I}(EwKS4Ws1FDzRm;P=Z{BH?B{-bqym)f z>!Kxk{RQlBDC;ltN>2hF40fpP!uqM^!SAc>MBZ9+g>KTI7ZA})>v^)-1)@ysITgm|MKcNYQKop+@vgW?LZELBY5Zp>$w#eWaUbi3$}6(8kEMV5a;5_}~1 z=={HzBgyF=V)ClxGbM4zU1p+Vt!yU28Y!^A>HoM|CZ@X`VEM?uBLY6M{Qp?-^#5K< z^=`^Vu=K<~_sf*|_J1#ry72GvD5gK3{=4Le>Gr$J|K0iW|M1Sop!H-;<>iC5-2b_p z{yPySDZ?*=8P6xLtIO{#m9%M>AZDxLIm-UM;6;O$?`gR_PlccbiO}m0rT=@n+rVP`o)~0rtNXb9#&=SAuo96*%-8<&I%OmR){^te%xm zXCF8R_`MgCy6Ro2qi+{)-_gZY<(}1^6%R(z!erEjiNyZVF{d3bpb zSR2X^Gh-3!WUP|%b>+Mi8d~4MU(IZ*UW+oPm=_PHWL?}J+fS(GiTP!4l^9puxlqAl zh3)E_UrOsjaCio@5xyw45Q~?)3@a|Vt%!EISI@`CA0B(Ft&tj?#SX{kpZ5$CYHqSD z*OgT-6dq8+g%`YP5NID!X}oS-~`gzN;dl)<_c$KCZ-Ijo0L~mY>$3X?Y~ztlj|4rie6R3 zY)(qrg!5(}4$ZOmw@?YMB?uyxUVT2qRu;`W7%HxmZ_h^+>b1s3cx#Y`m6IYt&wuvSaB=kb^YY*!#O=aq-|M*hJ*a}N5=mU_^vL)%vyL= z>^{sdps!bpTNt-CCBKx|bi(a$rL!>7wPf2^JuYUQPz*-~U3o_z-$i%Tq@pu&A4Mu) zm@(~5eHT1^{O-`Y-@F`9OT{0}J!RB_nk7dY->MgAO#q91`(Fe0K0%|90@rw0Tb_yw z3zxTSxNTN)!Pv(_Lqb-L6k%#WYY4ypTjajzf^(m>*;>Q)r%zY>2h8iXiEm|eU6&pZ|LTcePaA{Ir|H4ocVS<%Kn8Y zhR#;MSv>;s@5@Cfu3H&XfW-clm(7ONo{I?ak`U#_-=G%BHl4FZ=d`%17d%Kh# z3-0j?0Y1TaG^6io9ca(c)PF^ftdSoKwQ#O%C9Wc9goAi8&bHn&y+p;TOvPz39wWc{ zvi%$8+<545czGWYk4Mo72mST+GwG4OvVGXVv5{@RBF3)~9y5_>_~PnM*vkF;N47_> zk)?1(7fcbIb(hv4uJpWR!n-LEEydu?rB*Oas3v0rF10V{ww#?I+b;Zs;nr(<<@J?z zMktA5m=5Aty0vHgw@AkyTi?dnt4$tYzd3R2t!ZivCyq<*;M5XdB+bX>WLuO^A7gSBb9ob&AC zfeTsJos~_HP7I*XR(LUzx%5aReGRh$U$t^&@TyL;qCCs!f_;IH@pUv28d!m11NKC2 zPw}d_GCEq@kicsI<^xaa>}j^~rt#|AyuhEW@l872(EMFK4`dU8U%jE|qG#P(t7feV zc_;T8O|PDJht*|civzXNca&I2l0CK0K3oSGE{;_#>5fy``YJf#T=D$-yo$cactB{? zO&5Z`U33=PMcettV&=SXy_VWs=eWNzleT9z%_QtH)O6I#pU;FDQ|n-;&@*p!h7M`k z%GiXa77G+v42dPnn*TZ~BrlC+ozmDGub9EXmvW@^rFG2+QW^!vsy&+U#sYtcVM?k}{7Aof;?x_lU13%Jc%t8)EF0ZD3#XHOLK zO|YfGJajZBzjIJGp3&#ox%@J-L3hs~AvZwqfzl^SIPL5CDZU4IbzZcw2%RCkLk=vq z3REfct3}05o8y;G|129}(7j_0a1bkBIE0*;wKV^9K3&oHM4b5V-anW=`w>=JXw=I- zGXhB{{BfIHGk#-x3NHO&RJG!IShdNmHH(z0l|F>~{F$D_mDxk-LIs5QOX|UuByDRm z$Lgh~RW+OFXE@479>>+UTvg&r^g+%7`~^$=Mhew7N)VrQKCz(up}g5f^~I`7t-YQ4 z3-4|gIMj@)j7uwRbdVd21w!BI?5kH4(A>dliy$53YZNn{Zq2K)E@EUT$~F{^1csb{Hdn_-*7VxYYY_cr-e-#1BAj%!an zvFs;S^6SN9QSSTRFXsN@vQoyX0^GtqzD{EsX&R3Fnw|3-$0?Q-TG7E~*-1!h(Wb@T z5*ofd5+$r|Ff!U6yFaT|De!rdjh%h5HUjnYxnql4bwzDvJn_sC1H1j>l`5OT>Da~& zYbh*gC$K4T-WRtH6D(wIp(;nu%Xo4pE6MJ9vK$c>(`My#O&R^la+NL|^uGDKR%+dj z;oIBPYk>*7-RFPYTGO-4pi}W`;RAlZTh}$pQ6)XP0cbC~{qBb5!OOnr3O;3JtI?1v^C}*Bz#j8j!Xu|r(Cv(Rb2Z28zwX#4 zt*aDOuFuDs`DiMrY#n~wb+(2Wyu3`!A7np282pH9PosYwbqLFpckpQ`T7bNME+x>nW;Aa2rt-`BmSJuK=Wzb6+c}m) zTbY$Bbi2x>?farfvwJO-oCd6G@WpRh{0+@Jb)@I%Q$Fp?{bP^n){H+U%HCxg$)8JX zAU9CDCjD4rhY{gyJ{7A&G_beev`V&hRCX41iM21kveKj~>YR;!%<_h;eN``@)+NH8 zs1D8kevX=JIq+}|JnqVJzJqhb>oI`zOX?1_kYSx?f*D2fx2tp{60<0T~SVUbR_Eth}&YN9hjAC zRr;QeuQI}*yiI27LpWS6U*={ub>E zr>#<zywP#a*W>ultH{81 z1whnG^M6a=VtTo$n|EvlQBgp6TsEqLN_GkSg|z-ut=Obj!?oXRG3&M*j|6mLch8SIAeA{)Fjs*&utP z+(QIoMnAHJDl~d!`FX*#IC*SkYe89U>5}Z_@w$0uIw7&7&>-clj=vt4Tr-*-CN_i| zGKb%ou^3fd5vY0I(aBD(hfQ;E63Sr9k}NAC>g|<%_@C%tjV-Mq-_!PZL27E|shY!j zR&pwY;_B@W*`f$cob`%%}A*}~&aQBTh%A=MR0CmYoYg7~>7OY9UMa5Obl zX~~*O4{s*B#`Z{*UzIWR6mt(a5X$}H{lea!2TRnmB5zBsSE)6s>55Nk8|tM#^9&wr zTrjt(#;=nQQaxI@V<9u6L4ink>0vjgFO6@_YW*f6dELVb$a64=(;Xc0;W$Xl>V8g> zf<0cmDSg<-$vIsvx_e8X?@Wq{Y@_qFAXd~Oi;2Psx0Y&E>e6cNQR>A%9keggl zUS>2Ce^(XuQzX;elDEznZnU)10j8O~5&MG;(?e;f{A3d9UZ0ahz#oz~xAvtFb8EcB ztBd6akJ)?9SifKlpScj7HSk`qv9En zCf(~{3->$D{QjWgdaPF_tZCfn>E!V12@3B}kBV8g%3jqYTEs-mjcdlRsa;Ly0OXs- z5GOYs!q4*HO2Q&m#98mPb;)$~n3IQA_Ug5(U5@=vQ*X7z)ZHANj4t$PDH%0kJ|@I7 z#NWiTw%l{-P+p$H2Y!~M1^WDNopwo{xXgHIZCDRHpK?kgge#Ln1)dY$n|M&_!FTm) zB*MSMkvnKRwdT}3OzCiq%89Kc*JK7gLI^dI*in7f=uSR!1rpwW_~+OhAwU2noyWi`>ubz5OmvviwlrCI#p>K71}6#Myd zh1jIWLtiMUoMiSRWAV?(qit}cX8cJa`nk24Ncq0BkrZ><;DQ?K@`1k0dMnPYDtALc ziHuoYc_yY*6OeG#?eA-N2S$UU&gC5*s^Gy7uOVgC*>WsABPGhLo0=Y`UyS|RRFJi8 zOCQ^R%~m305`LW%(W5);MS3SH@1+$LL1=0S2;gv2-h0G-cgT>cUfv;*@#9u`1w3SJ zUBcXh+TR?NZ5@2_=huldP4q3kddfDh2wg3-vN~I%{N#v?XBb>UF(n9*pe(9=EXs)) zKNQX5Sdx>6!8Yf{M|**VBT?6naX!xvj=5E^p)Z4~>we~!4Ae}u;wN6+!57*s$8~UFt9~%;BV56HazG#pbxm7rGVZ&#$ASo=#6GlSOr_}Fxr_i+?O;ETsLEq@`s?sZ^N2M)et#6VAjrAE`;iSx~bq=I$;WCrMQ{2QW+ex+yw#)X8$4QK?B?}yCHC~zTq!F zMsiv{PgHSm^Wa$?$CXoD+lkwpQVN#)-)}3qz2E9M%j`vww=N7C5mwiyF5D!o#;Zu& znCa_GI}>e-pev!i80FNuMvTTu_h@lk>L^S)Zq3QWw3zp}d>`KONj9$$Pz7AXAqj6+%*qf&FP#$r_Zjqq;ya=mM-hSHoh|L+8v z34sh;E$VRwiJ8%@)?iZ+)-O=AvtDM`#n*{KUk5R$W)~yvnth zx6797mT15%f8}-AAwfr--q0l3hX&g3_o=!3^F`0nwFfV0n^$Yq+{}w9#9o*xpSxv~ z)23cMCG1nO>NBotwrdfwmW)cA%*(32*J{psi!k`BJ}2JQu7QWzDvzqKNxe2g>#Z7% z66_m@ij8J5+|V%c=q`IOG0!@c*M*Q7`BKiIijyIH)AB<~7~4H?Kjskt7WZ(a%{O=L z&iR`>??^3JOD?Tye{ZHnyMWl0oRVy#)VtsLnUssz;uGCi&-tx}S@Y3>c^4Z7j2jnd z=!I)+ruSP%UiVm_WugKoe4XO!JaxmA zVC#pKWEH!uzNQEnAMtc9jEeJqbzjZ}vB0MpCOu(8nb>V&TUFceRotm@{#Ig$Ai{q8 zO_W&Ja8@AaCu1r9BuW zCO*>!+T524>hC3|NiG}(Xnj@|ta10ZnZIQb{Ji(LbBcr!ZM23Qx@Tjyu@R)PPhB+lIwROu^T}$d8bXo1cH!%LB zviIWSWLK>`F*A3^okXrSSR3-}!WgJi2ae-mmPDIIQ>^%i3!xr0Z$4}{UNfqn7T|`*sc& z*w$DfpJh&P48`(?`#;Utu-%q+aoHg2Dt!aae)hqs~^98&ph7K?6X2&Q!O$hI6;bT*u1R14Pt+WV)mT!!8=j^}~g2Wnn z@DxE~kfu9{#_=$UG)|dxcv7khgM_UZ%&K~@2rgr172#xlTyx~!Nw6QzjF@1E=_u(f z@D-+~j= zW7}OfcQObU?$d(Ft@2C8Ozm}UbIzjqMHN=8keS>UFqhgl;If}l(&mqI3cPz_ztou7 z(SpmttMo+)+Z4HQb8Yk0MoVL}45q@WtSrjGs0x>WZI$U6D3FCm?)_Ba-glwYL!gEQ74(o(3#}e30;F&pO&ewZywRYG`4T$7UlMa73OxW`-iS5-WZ5HB(lK}mbmz92Y+i~+a5HsTz~Fm8w(eGxOhJ5EYej1)}n;0p7} z%~+Ltj)eb-`<5A{Dv$6g+INGsANCfo#~ljZ`o4f6S5*zv<>t23JiSt)%DU<%BKz#kWU^axMz1{Nayho? zC2Q=v#j|m&87VC^$5MBVgPyH>{>AbV9ol@DsrU5ayQy*(`=nTBt;0+in}n}?K7D-u zm@oGI^KTV2d?kQuK5WXIkY%)Zu`|E9K%3aA!I>a$8h_Gz`VMXE@<9nEvpaC;C-pOv zPrtA2qNO6oj`Y5lK+M#^3v+BF1k`(z;}q{mAH5yAq{%ds@&r5*;?g~dr|e7JE>bo914*cH4|%)|cs0E0{aeU=21m-`d24x z>4ODeYiickS>VU?5-QNQz$@bj_!0eaR#q7J`3LPZ4-eWp7Vf+B&eHcW)}^K)r~#cJ z_TTp5Z#ejw3d~JTQPBc?>C3Sd6BCpALv@F}|9y&r8?>IEp@0at#3bj{z5YM{0={6y zI4V=>c<<%Ek7C$cJU+*nI`ZE}Ux2A5MZm=B{;}iGmAm07Ij(NzB`*k{W zD-mHX4QccXTp+C7e0+XSGQ(z z-;&*0>z^s-e)(DKrKi}QuWtdaH0^jO(N^m<|CD#oQ#nz+Ez7pQwlxgq98a8U=$Kuf zFmBV*vE9(%99I1qH(frNTJWPN{Qchpm(le10u8Y8OWK8$vQ~emOy$C}u}7G;B+Q6j zsebh&QPM#rG#mOns*x$eDFm- zbgjk|TcpWf6scq!4edbM9j>i9uO1R0YB=CNZN6F^?XVM&N3fy>b2j{f~K4D&lhbtUP4%3e74hIlo2EQGGf*u8Znd+FNF* zH<8#ve%!3IV?4cW=2r1EZ;N~r!_yrnH@suslIH9cyLf7%OAT*WVOS-F-yEBHdKEMD zPCsP7XC!3!PU?bdN7%76Kv-0`yo#(-t>n}4()^sBs zCN3st|HyMSrW^~JyrZUmJe2EFSEP$!4O~EGo;%@67o*30k;QXywIp9iWuw=h?Tsly z*kfy+u%E0T|3cpLgtzV6bTY2gp@EbCz7Dnd%29+O-sX#O#O<|3UWD^0UfHii*C|Ca zeKwNzf%gp$2R5_9&HEyBCVI`BSnaYJt;G#%gpfJ23dzjg=EHaWRC~tr@v^Z+s0EJ^ z9ZU2?fnWLPg(0QH4q_$E&=jog50ASO(k%B^-}%3zB318U#2A^gO13okE6OdlK1Wc* z!Xxhuop7pk52jm?t7T`>l=IfN#Nck&R~KrtlxvBTh)Ka(Np54fnonoFLnvpB88?kb zUhg#cHTaK-gQoF2f5_K8FgYrZ80xuoM(6E-D=gAzSR2+csA5nayWBm6Df;;#>A~}A z88e*)g4WdsD@lcTwKcu&ztS8gcawBfN?Ys&524rkyP@>`63^mJBH;Ld5`5%&x_qY3$99) zZpEUN!7sZU@9vOLg=_3)Hs*C2-mVu6dt&8=6AIyQa{o`WrQiU`XjsS#Y92whICk?S zG%~l@KfklgQiXS=(dv8mvP`1R$=*;8(bgYcN{fnE?pDPpypD)6^6vatGgF)W=)Ps@ z74_q!)%^ap5|Ydj7{5LKvW#LWdg@Ej%O+YPVa@OU=xo&Wj*$AgUFnAqDN4@^K&z1 z*@dd{kjBjAiDQAk1Vg60g0EnnBa-yL4*}3vHo1>DDan$oqB>3XMO7udTm zHTTg#quk^FFH*8OYG(PZq)I~- zh@sa&D4|ISq4&_61ym4_-g{4g(0fsk79iBni-HhH=m^p|QQvR*&H3ZZyfdfFocq7b zB$?;AckjJ-uf2A6!lN3+q1TdEE*DuNNf(tF#{x8UEp3;aari#%hNWSMWdYuzvru!S zK}iU9Se+qijp0G(&m-`FKJ`TL+K3jlgyD*jophP;c^>^U96Ockcct!3StV^N_2h^1 zZuxc0V*96_*r_K}!prN|lO*7hd&7*cP3Ft(+e&XJ?`H;CtL=tYG>55!epHp^lS}P( zl573kaGzDBn?!0Tq1>q=Wza3d+rgeHIP z4RhCoR?|9s&BW>JA*$RBz8DXp_p(eJa~ZOnZY!L=D9Tm zECJz!Q??yS(o=LGl^>c({@}Yk^4#x+r%%WA{R9sXc?e@J_-y#OPY1OLa&7+&MJM;mfLXDW)a=Dw{7(!- z`?Y?C5T(fH!PecdP}~Q{^O+UNMTa%|#_ahplA7eL&ck#sq9P(sW&IUk2ji;v(jFv3 z?z^kS3-9NpsXYDbG-Q8DD$%8v~X`+5F6cf!6-))&pz;GVs7Hefluuq1_WIew*q>p0vWG z32QFA$X2vV!5mz^>Y34c0ZCZE2B#$^%MOX@e`?aELC$p(j8X!ge-i=T3D;f18R`Bi zQzXT4sQO`D*PJtpTMO!*pqkX8&omL|b8gCJ$YHi#s!wE}0KQTXR@O2M$QtX?WZ)|Q=`jIE5{6#mDtN+;w9Qipc}zPI z0hY>R=Nch|1}tcKr{!^WD;;hBBTrejRLN_$P`&=1SX2+(dSTFcIiqXa{S{@5&+VUg)bs&X0R+a18BckVHn0%u&uS zB>inkb%i44m5DQK%*CY;!yTY94viEBY=AK@6;dxh+hV=3-avp`6R(+-W@f?{2*4?r zTeh)ugCgpS^#_+It9?+_sPx0Zz3=rE2KFfv$+WM=QJxp_wXc_A@}3$cJBVYl617Xg zpoWJsvc>N&9+vhjnTa{)SjW$?0Wjq~)lX}YvvhW z>&&yDUgn9nqG#m4Q!6VToES6axn@?)vHnb`Wpw}OwsA(T3_5(zBFrdN5?cQ_QhPSn zms1VY;o7bAZ96bJ#+U23VnueygK2J{qNKwHl^E-A9ek0%e2A~b!!vOmYG)#+1Kzm; zxF`n3E1X+~FHvrh!G9@f3{P0DHth%P+%i6sgKc_ik_YYG$QhHka)aUx#30u5+cV%- zWr_0|{?6}ngStW8oavAXRq~i8=Y;9cg&Qc}e8a3#PrO^(Cd<}6kuMDzxZxE!(V!Yb zn00k-;6})GhCUVg)92*xZhfFR*oH_?oNopSE7?u9j9S`v+xSE49*!Ali`Ew`WL{+; zs?g0M>9;R@1|NtXelzA|sV!_5dO^{V7dl`xrZuV)9eXeDTK6651Nr5RThCI*9`E~6 z_u1>E%3k~HRSG^AD4!{axXvKD^-x5CqHGGw*uMF&R7pAFdcduXy`ST3ScbT~j4+#J z1ywm=i#TpeKUIXjiS|p;WV{OlxNSgaZdEzvXWcIkYrI>!A!xa!g_)A7$jP~-o$oZG zJ@?}Wm?6vtX6>Qm(+8F1RF;;oF}#Gc**ss+dmCjCaHxgzoqmT-HEr^`6JoOC2sA)L z{gyvHJjl@gIuuUnY3>Xx(u?q0*2Y*$xHm;H*`(c>;p`x*RcyllqK})<{C?)EwCVe| z_uK|Nkks?enf$&Vfwk`v+|Np3l>EcJdz9zMRP06@y}j#nhAay}IeKtDtEY*S)1j!_ zd-#hv0p!(~S)?^%lGv>}RpGrUdg!>rW>HSnSLmI$r1gkEKQFaDN| z2qP+g_Dub3}g*tZ{2Ne|&^1oOxG)`9f&r5SWL#`M+3-t73OKQT4Pa>AsF zANkMeq3tyYID-v4*!lRI{F0XHMFx4-(^=(}V{{s|_@e?{IL!efzxqZCaszrEgz zlM9cPy(K#j=Mw#;Xg&|?HO{Ck%LcqY(QwT#*;V_@uM<8#jPid>2!l=2G~b-06=np) z?(_Lb2#*RD%_tw5w6T3vP?9Jn#VPf!7?1W#YIH21twfz}g<*((xEnQ^V0>G?Me+Cj zV{yqdh?8*9`k3$~*0HYljhW;gy?#d%CiQZo;+cxXX8lx(d;@;VTcMEb4&n=vcbYkA zpYG#st>#z9T&ipcwndc)s1R3hkL9Pry`i%%I@wrA zIB3ls{pAq@Z~vnvV%Hy3kbOJVt_F^`$AV^o`179}mYmP$h*3@J(ag=d_}<#MtiR0? z89w}uC(*4x4AZBKP}}DE$Qe}3$KD%Y=1>4WnyCKb07BRV_HLdZ;LklU1SU3lbioME z?)jxp`GF!7?IV?<9_Hc~gxUUlFZjSB;$PAA4T150LnXYC|3)9){=Y~= zJ}dFD*i#yyx1PoKA~YG#o{N^T^7#NwMgI$xAR-7oguAEBL;*ZA`U`VrbPZfKtg)l| zH;C|PERBdj{FV`MxwQT_4utdnT9#bX*Q08>+xTy!+%;DA#`ljTznubK(!jnr zl=5=uxmI-NzO1pPt4hB=h2GL#mb35T>j4MKnWs7emU66ssvwInHgy3O&&Okbtl1?T z>OWmdB~f_*Nco`#G>=@%-=o^n2p*ymE@HE>TUgy-JhG1EG!WC<>B2pXchs6Lae%q- z$@g}7(0IuxPaSb$Y%)e6CfR2p_Hhk|!j>`O9izfq818{a0mB`Ho;HSMzy#J$d8?|X z@nv?`AK)J`r798CQYn9eif|H@#$HfN&9xe0FVV;j|Cqq&K3fXQc>o)Jj z5Xujno{u!wK)mej_Kpu+H%BV>;!~qbR*5txs{w4ITh!OPBCL{{;e~lc7F9tLkN5As zNdM8edg}l4BF3t8{JS)8I~xjSw+2Kn2U_Ge<}{7ZrEws zs_apG;=^R*|6^;blInYYO^~%%bL0|gZ-^TISWIFRPEnb&B>ZS!Wv$L5CE%&X<&w4JM4uU77VuO&=y~%c!c}Z%X~*pF8Sd+BY{0F-|nz9?%2ju*BQ#%@$U} zqxc!bR3)%*isw=bW}{nUuV=|Qi_2BQ^zr>9XpKG0<`HA6h+l@AtQ0pg@9TFR;Z8}e z--_&E_?T)^eQoJMx34$Bm}kadeZCb&fIwkT4$D^8+4(7LQ{$|faF}h4JBOV`%uy$| zsMB7;VZv&Og8s$PdJ6}an-q!VO4GRyCuY05{n7Cpa>qkEKoazT3 zR&B3hgH2hd`jMy^Nr*b3h??4A2v0K5hGADvE=+4y4{c73tMe$}N3w|b;Tsg}xl~=Q zeeepPLY6-=Q-$3YwcgvBv_|R4xmN5}b=zy3zG5~rZ>{WRw>`kCW78&`?THrZa3ol!Xr*>&{1Xv0+O?T3el z*9?hgN{e?G%=-&d@df+dK>N_4O6V<(7KoeWZyH1Ka-?l!8X*j>hbE-(+{i}zqJNdn4vQ=dXFWa~q zCIt!T9R|UZMZ^bz$LUcVZC`it@HzCE_P>rDKO01-SL0o@TN#tn3#xwtr**C4!)FEJyCbQzV7eRYl_w?VO$LQQ)q2VNTxlZ?-vs+ovN9t`US#m>!t23_Eo? z-{52(%9fXJ+g{=ztbRkr?+=@?#@6=ZV&MvB+gDE8;83dv?sd?Nf`TqpiIO`sP+^|B z3K(*nw_nTj1M|}aflexZ)4~Q?o%n`rK+6imqo&z_V65Yr%Y$F)7Z>H}-0NNsz;B=ybDx!$Ap`*EP6@ zK}cU!4ctD$&+yKK_iiNYpjq62>t=jxd_I(pp}Wr2^_5DxEj8`LQ%_QkfRZ;1L-)Gm z7b%H$%c_)`$W`^(QQ$Fx6m`Tbp5#5qGzW!*xmCsSdnJo(M(eg3hI@%$$r`4fNEY;q zl!Sc3q_Wty*_A{_=i1T|k$WQ|#KpyoTv7}axj$I}=dOZ2HG(;s?V(6oZozb#V+!Zj zCL+fF91Y}+($8h1_ThrU@aHL;{Zm;vm39E%U=WPQ$=%8^)&E)qk;5!x>twWaP=es) z8VSueO!18zKa$obvI)nzvrebKt8`EYv2yZ4K%Ie(BAdD+Iw$GOSC>-9bJbHCl#qL5 zx~szI>3XL!LYL9InxInsc0(bZj_XRG95!xS8P3yj;(6P_k5a1c>`kVjJpoO&Q?|t= z24n$a<}OLH&M_X|1pm^#6m*~gw)7+Kh89MWhpoVxQ*w@COhrXi-}B%a`6sJV*SF{^ zdM#!o_T*mP?vY~q>zZomOSftI_iFXR-NJRVy;(I))(zfybwHN;C5;H3MAjukp98Jh zc(U1q|EIpYFXlx#0$v22maAb^bnRCBdGP*R{J*2F&*HxkvcyIBREng1j5SW8Ag3!T z9eL2@dA2M~;{BR!AO*QTaqCr@79|tva+hOF4EH(T3yG{2BH2Xmi0WZR3xq&DI5PRe z`$%6RbwM`LhCEeY3kqntbS!Pggbdq2Ij3o8^XS4+D^Ym_R~_YgF@~(uc$n zqCQPW`5bJ(F@qI4pD;#8jSVR&tx7?&x_Om1Qx~u2;n7BkV$MII{R}J&fev3zC}lqVT5%f=^a)qZjH7WL(;9k1WC@^PdT8tTJa1Oo14)^aCz-F-BkMGlsoc~)v{oGzxlDA_lmuUNQ*&z; zd$h3tx!`zE4dWoc*Sti?lwr!#XO(*T$mtg9cVH~hpGcH8o03rwWn=T<`z1gm+cj*O zP`!5#iX3eB;aVsuq#neU6vxITv?}?qVnH620xPL4$(e>`Z-6rq*24s5hOi5AFw1{uvn-L((}w@3!j0EUv^A z08s(cuq&~|jg;yW5mRWl|E$ZiP!0*V7O5%U5yS!5Wz8C@pvTQ{(kk|R4pZ!Om3eW3 zHQ!MB8YcP|t$U4sRdyN%O1G$EZTBUP1prX5N?frwEMR_0SM&_ynlG3WFV(yBklf(z z;LN(Q<78Z6nvdY}W?7#ovfQRESKV-0$NhXvemj!KW&(H@@8HSK@rEz**GA2Bxs-hG za3u7T2)F&R@hv7)Nq!k!+@}88RHH25x0&&9`%9nDJC;=5GfpYRl8`ZY{c@6nYe#PF zyTDL-U)n3e_-3+%GQA*Zy+C^c#8-w-(yWuVmviRsH}zD=B4@5^)4LVanjt$Cr@xim ziPNlzjL}gU-}Hb1xYqoYbwj9t1mR1a9o2IGxbejEw9=LMJOM|SxqPs zU>jpnizWYoL7p-5Ur(B_62@_bKtoio>q%CXdHM>B2V|PIkDr|j^wy%8SeVs-luDk`aQ`TumBh@BU4 zuowNUYM0<4f;o*zPvZ5JK+Pa)o^c&Q7}$8-yTnk&OeZ#%)jmYVKO%ee_Y)8qPfyCp zvcji|j`kAmcbhB{SJ=25^GC1^KdHc3{-Jgn@2I)O& zH=rRI24XJ2VIB(vK3HFJG&aW;9`a{RMc+nAs1 zO>j9t^LJplvME$xg)7c_`rym^Z^|ikdVK=y9O5$5Nn`mAlVCO^3pfsu^*Jf5Y$dJc zdS-xG#Z591fb*J~<>pYV5RlAm53IGiBMQL2-2rBS|%HfLt>CKpkQ@gx8P|Z6sm`ArOC$%{<*sRRqUz?#h6M z4kTrd-?nU=RXVXQq`FrYk=rGsR8vzr>5mS{BuAB zyn5z=wOw@g<$=>zmP?Ha`v2(-i#k~4Sh^qYwp%0TPuDx?$&*}4YR2rR!kpZ*Wj9p4LV#VIQcv{0A28mm>*i|T%Qgs6 z>_T)02SSe8-h3n$j%7sj33)kwKoB*j*fza`dcwk^ENZoZ&Emfz`V`db=TT6`U1|~$ zs!2=y&-RL)n7kjimUQv{!dw|KLeMXEj@uj^1;p4qvMaSgNHbMx+?SiXXKRubfIz}0 z>jz@}j;mp`A~yT40bOZdmK14MN_jjo%uq1jUJRd}>kiwpMs$O)&_HeaZ@A9)jlR#B zFGJ9+%;J2X)aC<|a`PJM2V~zB(`^szs3?i&!LONmnM!PzYK6g?{0XxYM;=`D>V^{(W>N+1;{zv+0gno*3x5R5!0R17MNzaHxcqC=q%FR zWa)IhKx7Ni)J_g*$tqSXxO52EC}Jq{uBVGU&C7Ml4xfNN5oI9z-gF z?@V#Ao@8^L5f(NcBw*Pg)VQFl3#!c^T-oqqaW7*Z+Y2rk=(u6Z&Gk=Wfu#x1NbIF3 z0hR&`$kVA&u}p}khihoD7@*?u^##57|AG@>g+4#_V+F-MME=Gv%w(}zf=tcv75-62SIQSPB(s5BNEvxsHS2Sn8Y+`cAo)&y1Y4=|nArthFJ z19~fykGKc;iQa%c4H4|inP^?Q{t>*A&d5A}@(;6%r9ND&sA!9-&Cm$f&M8in_}q20OF*Y|UlaehEm#@)%KSgBE`bxkLmn z#bk@MZd#!C2j(KWf~PPoQ8n`emtyT0>HZz9ddjsMo8zJ{R=<9+M2PDZrY!A91XjO8 zM0OJE?$Trqi!{Q={cZhe+dd9L5T}O4VF|k0m2xOr!KAwkOnl%tj*I9i;%Jaj=2ZG6 z@RAN&@6U}7m9U0FN}QPDn2$!TrIasHIGO0%vBf?OO^ z+_&b%36n2IP?i1w?8PtFOhk%G`js&s8kvj;1^6CFEeCoV=n+L!6?gx~tETe=^D03X zN(S7mA9>3*@~#y(CmQXFqqv77DbOeR!Q(?eksCxjIPQl{aidyl8jj}-qZntl==}+u$qrh>vJ*n_-QkEQWyo2h8zov_~;$ zw~>(3_&lHKTw4_kH|^Nfur1@-ZVO|P#3(+bAj4CcjqSiT>P zbG!-ivnl+au+F#Dvs3AAYgBmfar$LTVUb}(2k^+($}?qTgvM4U84St^)r6-l!>5p7 z-NyhKaB`mr;!#jdC9ICogFHU4vR8tNQXIbksRjGcMXdccZo!x=)oY&4jn(hkJD3@A z-RGF$%eU~MsuAWO`CMICd`TgTU;2|airh`+lb&(h+jGa0DBk0RU&3zR-#zrXpq~5r zgLiPQ4iLEh{MU_7*f|`mwW@VX$pPqmuZhV`O)UgK|n? zaq&*fZ9)goP<^!UmjiY>gci-^dd&$`P|cWT%XA;gQLI~&cj&EnR{&u7o>VD}QD9y? zU8a*?pdv@=8x!fNouvF?n(VU@tOd@8i*LRNs!9eYhOK?_>_(!J^2Hw_iJ5_T>=@et z@xRx(p;irnGEcQ(PXB>MVDNuIBbG<^`5bZZu}+DBfh0tKh~}E`#1+hPC#0@?k|H>w zwkS%lEnIeAQj`Z617@`ssCL=V`{f=^W@iPzfO{V5%s=zy#Z|fv{LTVYE<(Y;?-21u z+55Q3A8-nTHl6I8S#D^*NkN1kOT6>=qDkZhl@o8Q-&S2`1AxrKJREM2xqqAm z8;ri6^KH^y;ApDRLr9jEcag%wx3XpAW8&T9?kw@nEW3OkxqVdWPXsVJ(l_rQ8-0Fq z7NKh~j=8r4h5dtBSnb;HZ9(r5adNmlF*fwxSKjy6P*l}5uFeZPn_kZy$(-JzPhY+D zfaKi=f##JPLXB4nlRILe(*6e69YBhZ(MX(3SfZ}U+D-Cgoc@gKJP9Yiu+G$4*|$+$YgLO_oWKCN9*BeiiVJ9 zwawH{Gy8FjNxQ#lopU4C-_)KFzkg7y@Hegsh z)qKQwt6~ksgBct9$F@-r_9hIC$X~szl3r6kwfpF1a^St+r{u0(mOlP+S3~fkwIPrcYuOl7jGgW0 zw`jYhdt!2d_+kC<$|J)kY=%b-WdtXwoTYno-I!`fIBj} zdU=IL?kUu#OoSnUGBf8RtNm;)uOMiV)jnAS6^K5(rBfmz%ls}7Yj~HKErJuX8xC&G zQVGEuk3^W5KMXR>_cf>uX&ve%M2J5uNQNY4nJp7Qb zi8jWIm+-mxiSX)-bI&DZ5D}5#FTR=#cvFR0ToU&8M1;ObwAGx4P;FFjx*qDPE3f5x zgOLnZJye_8cW<)@tRTUHyT`xB*V(9TfrknZxz)A7YhdpZmo{+)dKX0%3#G4V+Tk z-93;|WL(q`rhozhfmIidWr>OBYtQJ)cu*y~?AnT+Bi~G?s5))6-BA99n2Uj8{jiMI`7V z7O|yeWJ4M&Xf22#5Ac^ZK991KX+D>Hc|-^3XQi$N9^dv>#v%^*w=0+jGU9T)!S;ip z`H+;BXI=$`;tD3#{n*`sjUwcPO7#M#?dNz%LT0W{S)-DQ&T$TQx_q3fML-|+CFTL{ zL7_cz78P?Aslt>QUy417g&2orJEnq-o#KU_-LG^Pa`zr}Jk+>c8087v`3lxg8ZNH?9(DKQ~xu4!o+a=`vieP&A`+!}- zsSx*i={FyVCSaKuF7Jzm>`e&iQ%;vO+d4Q!0d5pL>m{^Yl`EvaUbEn#T}V zF>cvK>2K&PIH~KVh}cvx@pu z>KC+eSg!O=_5yULW&5`noC(jDsl=~P-e2K!ao{p5BWYkl^fPDa1k@|}gjZGzfA-TQ zaai();;0ZMw&wworK6`MKr|QkUeZWVg5$t=35gFUH!=Z6f#6ahWNVZVgR1SgPf2+YI) zY@%1xER2*EJT`%S0i{W+HZb|t&Edm90f*hjijR1;=y3LdPT7ig>mcvKcdI!F!s1S} z`b?v=9emp>&5)ly!>+ko@dNwvhx*Bon6!#%U7Xu2XeCx-+#lEr>XZ`o0(;7_D2 z@#cRKA!b?~2adkQp781W8@DuePD9rivwK#H3WhwBSX6V@cg$~+p%NFHR9h^ncWRbW z_9m%2GJ^L^QY!b{`rCF@fWDcLW=#T7HJtB zZ({kitdF(rObL3uL)VW*q2}U4Tuq}XIc%L+jkF&<0tkPo(W%PL1M+$EP?h_5Z-p2hQ6Et9x)17a7PIL@f$7x5wh)%&5pTu-&NHU9FtE`6h41u=V?DBNBxW-^V-%VV62 zOS_8-oLi!#pvvBMQ8uRtJ5_LoBW-n)TeL40_{@Z47*?;0#5dV~U}Je$=U1+`+A&)U zQL_3A`(&vzNL$pYl6qb~G(S{>@+Flj6A1!L8xLBzlq>ZJ+ZoSGO&SeQKB%EThTu{# z^?wcF9UXo($6M3&uNk^&cmDTFqU?p1efEu;fGutb4|QB>U3r5sAMA&xzO<@|s1+|)!U-QETd^DveoU~sPc24LmYa@jniWi9=qx@hGbR=3{W`y4! z1>n6ZbAq;p3or^zyEFcso`~Hn;qwFS$F7clt`L_DVkZ`@wv7e5I4jg)VF_#3nCFAK z=R01;Y^oMNr%Hdegu_>YDWiQO`141}x*BezR;ug_I%xOTbj4jdGHJtnLq82L&`Egbd_-4is_CNtHJf~72?! zwptBJ@c5l5?lvb6>kSX6W$8Qu%DD;&*fiI1!gA9M!N70h3{7exb>@dQF>g%i;AgGBc=sE*ZZg9S#7tt z=3jLyxs`2O1LB*xn2PfLqcEmD9>te_ zGky{sQOtj&efRF)T6Ac>s~?S^;c(lao|MPLPtYwc#PL2gaJE9L!m>60Jx6aKUNs$K#7XGButR4E z$tU#FVI5zLDz$aRE>{LLLki6T+5nk-`+R`!)900~F6kNp29|33+YBMFd1TTDW-6+s z$r0~e)v0+%{%ESKh_$C0bDLjTqhDNZwtuRfz7;Zic3;9ea$vpT0XKncV$H)M(gNiX zKZQ7+b4DId^hxiUy!5UdZUe`|Q@a<~2-yS2j=AJweKvmk0@zmQ;$({L5}XBqZwjl2 zW?OUx^hpa;?EFZS*t3f)VY(QVMD==72cB_us-4z8@l%jg08S9STtG>_yN!Zf93eY_5*EilLkBe*+;3ptpBucdds)49Yk~17NIkvQRf+TS^L^-W$NO61lLm0(P?)h zi{r-aJqgBx_ZD04Cz7eA>^PWkQW(2*h|I<*#P08*(qJeRD-QgSVODar&TUymVV#uC zbl9scFJr=2V=6+=3a=j4Hq*dcFmarPd8st$Ixv3Sv9`c&td6pUTVJ|Mm_)waqBTEB zvJy(Wf)+9ymNhCe$Q-RB5`T}<3nF-(9inS^A;S~APYb+198TTbPaC1U7M-`9u>h)5 z8_X)yStRysY&{a%eV^xwckM3C5N9}*5UI+ca-CDf!%Jbwxm4nd68oo95%Y%XPr-L~ zi6h7UX|Dj9BvK(@rr&1eG6y8RN1Jcpl0G3EZTwX3H$)>ST- zYCoj7&*#^98+>6Aim2or{V-sL&<6c@?>WD1vn|%i0s+@;uqyhj^y?3pBJ)@b*#heT z3&kqwQ_auWX(UYB>@X1$Yus<3{reey9z{kx_R2MJVj6SZ5AK_+aQVKd_P`5*n+{Up z$r>fzKv)WiR4aSmpwlN-w0MO75wVcw*DN9ywW&1+koP?Db66P!S`EtBaW53$71N;x zYe|(%G8UoC9Y%ExQOiGS?UZ9Sz){7ghKaNagp}gz>}~joW|63Yylu%9$t&LMUP2pt z8AfxC>~6EAmEK*lXO1xadE}(|Fla6jv2P4|Icx^qn>5ifX;5)3-Wll~OqpIvql52a z2X#?4Kr`3_2K-iqa+sQ0Op8?rBEebbOC)S~SDG%{aR+I#Q_mxhuSTxT9W>X0_1TrF6-iP1a_MrPVrNpWm|_$+j7*#2@o2bR zCpp4!EsfXYmnPOx@)5Cwb8V^rXKP7#+2~rcKGxuSnyIPRvj`uIuu|?~`cboR^LDF4 zSRxc{Y#B3pc}i0`jF!7Eo~Eg8x(l*NYpJu zWX{i259*i|@o%wV<8)P3Kw~fT-ws`PQj5FhwS!9qxtwDhPiQtb>;S<;^E#jq%2qO$ z^L7FE!2OuVVz!Q|Oa)t3k1UoRXV6+Q@)E~$TbJi3*1HiIDUsDd1i~^(h1Cop7o%Gi z8?}Nq)m}2bKH)RR^`P6D$Vs_Y8nvqkN_)bBbvDbFm}n3?s=(_zMXQ6XVxkO5*bco+ zu6Z*2x%BRG-dHCsI$vT9(zEWF**I9E=+YTf;Q6d%uMpK?1Dx%zHFYY-;& zMp4u|G%-c8!FYU5FQiV)!ns8QHJjtx$#p#Kz*-WZxznfDBe3b$^>O6ed{~^W*={I* zKJ=V1RhgW1VB(gen9GY8O6nmYm;3wQiU*E`QI=7qZS9sUV1H}1Pb|Xgp6jB`h26ei z18W3v5p^Cf3hVq>(}4G>l8FqOC<`VhM%|5Qyi)k~$ADwFgT{4F?~4|%@LvmZRG)pw zteKXhbVRyWzwr~{&0@x09?kG57oppmUMZ?1B$IW7_P=WM0LbR{L~F6O-sVN-fHBq^c3@T-a|;qk6(|&Z84;H!uP>cuZ+t z{p+w_y3+KRgS(4gqM~BaY;#|(qpM&4XU9a*#+P>&pt+Sl4pzkk-DYiEqi%&b(ux*W z5%+9P7JImJxjW*6)K#yUy5d$1(1_5!w|Ddtg0nfl)z;){k#1uatVNq=iO7XRWAXH)NhnSi{Uxjb&@;c7GzJ zqA)w5PUs&@ARd+-;UPfobC{kj#E&WV~{5n0M z`QUW&H`7;`s_e4^+- zlTIzN=xZ2w5W`(85J2P#ZGTt*=OLhe!baFAj2GzuYGi_FYqImDhX!wL9s8R5ZiqZy3h``g1or8^znRAQg0-@ZRj(D6N~LsUAspH3uC93XZIp2t$1 zoj7#bq(-g%D9vx^*I%Eevl5?zFcuPjFgSk2+Hun|v{AN2Ypz-z{LA}ehU$R!>1$V> zkLA_q6t7ebN6+~ZCD3HeU>$w^%t;u65kB{9V74Mznx++uAKOi};^Ds*9V(qu{|>cF z(Y!Z_>h-lL3prL#Lrp?Odqz$>Sq-6n`=;2|eZKBY>&Q}U^R7&-2>NBfzG?a{$D4(X zk`Uh-{Zk{jHciin-OR68LbG=bk7g{iw^z?0$F(UI=5r=pYmHiS=<8}bvz?K7yRaL! zh*Go5rpHRu_@|Vxt_&J!9dq2@;9gJAA0wbyEJ=xN5XwOCne)79SVSMc7-8f{e{Z)A zOxgiAUy*PUM!gx_{k?&gUbYX1#o`kuN9)BO5ofeJJkAKlY?RLEo_$Y@q^Qy$r^+n$ zghtv$jD8A$pahu`RrwdR`-yh3HGx}q136=bEJqBt3?o9r26gucbSWf)8_shDv2B6! zFiu3v?!?wy4l463SAV{$0CRL4?*E&pv2_nC)70tmk(B6usYjIq3s?;LNk&&E!VLkqrTsnu4ssOnZ(ggca_x?{n8wT|%` zyvMP4a>F;cfGO&Mi3ujZ#3^<`VjKAgzS(c}q3D)DMa#}aiG94AqLx0}pb`7a!IM~w z*v#`Kz?MA^HzJDr{?FzT8G7_2xSuqCdT`U85oJ zN37d4#Lg_wt{(?go;@+b&a~>D0g&sAfCzYerDKph*xl(<1e4UCZ`#oOr{w98<-aST z{=d{`r-Wj7fzG)-Pj0+%zFYkW}+;IIpObT9te4f%U)v1)-qY03Tly>sHR zx2(RM`Ae;2i{k{@Cyvqx^a7a;82F3d3&TL=xh%z**IXHc-mo`(Y04_X{c__#g_BF( z6m6^9e>QECc4^HrNoKBDFOP|nyRfn{X7~BtP2%`f;`#u0CC)i=CXVV96fOrH8%x?QEmN>k!e|f|8{7$dC zq=N5kjejLU+%3^j2vxa>_bK7<4+dC{oH_pbCZns|>CVM553!8g^fOsElKf>FR={VG z?&I_I)MsmNOI=jjdAqzBXA2W>SZkIpVJigwG)_9awWWZQ?TGQ4PLJYj;ywiR?0LO3Y~nmJsHgB?mdY!S^Rt0Y9h{w36;q^9+wgofzWAD{Opki;Ii@ z_(54Q;bqo&Q3a;h5aPb0!__!yh1_h!ch2v)cCL)^aSfE$biH^AOv^k(p_F2i~28>pa zsi4R~Rp~b8R80UGlxv0L4Rs0B56Ze65^D&loqIn6*7*M87In$o;zh&joX?-1T{I^_ zNoWg<*Dd^xZmz&%%p`p=&U{$i%9iR+&CT~LuT`w|{i7dZp%sI#k4f8VwjW=FcQdE z@5{)gHZyNpk?(K zsO?^uE!^31n_v*)yF&fcONCA2v$(H7gL^+AcK~>hgEJ7Z_vk78p@)&FAA`Ena+90a#dp~YPJ%F2U9+#t z5BnPkY7H)n52eFjFK&wwN>=Kk#!8kNTF&{{%Wn98H|K+m1MQnU4W;=UdWd%8p!mw` z@boe@wv{rglj$3EWS_Kqhm&BJmK$ zcHf;0VB1y;EWDVO#BEeRel24QxbykPbM)2GUvDvt(c;mw*QrCUJse?AtQ7EilKeP8 zK-y0x#GH;eyoPUiZin8mH}ihwPCsbJiY6IvvBLNRl6`Smm> zn#t&yhQ{qENB%JHGXBwjJ}UMZqzujuYituMyLvk|>cnNW%E_4}IC8UseJqW?$tVG% zFA`S8?`Y|oQ>H2m_OtWdHP%s+>ouJfqZJ%XdM9T21wyUv@yd^nm8A1KU0si-towwU z%ZzG?_hgS8Cha=Mv^9NV|GM$>ZXM!~`W3Ks0UkdsA@RL4|(DwYd7&HXN4_>A9luS2m0 zGF9eyfP1>R(_G%*{ECmuMW3Ybror}8*7E>&_5NIr%5-MS;fV+2^v6RN)z$DB@l{gT z0cCru%u`L*Sfat~prYRm#%YnL(!f04)`w zZL3yQ&6;z}QKPC9WqD1RwQ$^g9m}$e_qA)T$}>UB&gA(t*aJLEKfo62-8V!Zz7eN%D5jW|mMhk8>SY3k~-*2LEH-C6e3p@a;I{9(@S zyE)`Ou~P>*Oq|h)cb9Ym><}gWMP2=ylbj50-;knhXjLBH+~6S0^r+_EsDFesAYRj% zaO*?;sE>l6t-Zx)m(94U}D_l3$)ToBhFx1?OICU zNLA2CR5>N*t%ge)ojdf8kz!MZa8&1S9=%dQ^T2KBNR>z27>h-fz*LBF zmD86u!poS6M%{dq+jEz?&^x6cJkW5>auT))>0y*{%Nq2frlpC3p z&__0Q6@4A^MVIY2Pdlv`R}IyjFPfY=wO;qo;Es;ZN7y4bhN(??Vxs@6-9ln01)Na3 z1(_$DS>}M^il5421blSu{Ps4XaUicT_VZ0y1l#BiyoxVx3i z^ldS_qGd|&2J0x=N}#M`{IE?d8;*eJHz^}h(DjG8w0*BvRfifRY9O8&?vsqja|e;H zJc-bOPMcR-jgmwo*`xmW8wkhQZt2syI?K-&){`Go#C`CB$lp=-(j|bMF^5cyI=`_K zAO_^>@4hy8y|I|3r4~%u#8RZ#p%>f0m|R%ismo?pA8Is)rwT1dD_5hRCk}^B5*(9z z7>_2fMl?uTTB^$ufQU+A2;vbcTJ{|m22)*u)CZ~6t{gQ-^<0qtwUmsb9g-WO5}kp? zVc|N$?el?TrkRYUJIEQpwi;XIAU+G4RbKQ5>o}}^+3B=t5BVNG=Y$2!n<9ZPki;RU znzowyvs0q3^#N$`>(srs!%`GSPCqz}R3bDxJ5{oerRY z8i!>2Q95Nr88{dKE}t9N4xqBl&)uT2h|zhH1q`57KM@uA*$P_m5y^rh7M|6LYgj4* z@2Voj8QHb z5NP#;^!X~9lrZIT*$M;1rc5Jg<1sB8?C3%M+abOndY-JMxs+fjV$6+Hxo>%I&&EW$xC;<1!QetJ>dbO&b=ggm9l ztMZD{4o8{fnmRBvXY3gOZ1rN503DL*+KiEn*#qJQs8%LOFO580wRzmmZ$gE}%lm>Z z1dVl2Bh`{Xn2s>>&hjt=JQ@7sY#{Qp=lVk)(~7F*&=6EFTDlN`!t4i?g^+3Mzs>`^ zjy#@oMOAHfR`5cm3uVSe&rp=K74x7)I&&`p`q^kJy1&*bc&!}`u^FV2HgdXktFJn52(?vwr` zEc0V$QeT071O!XPBNR9~ZWP>G9>vm@EpFd zxZ23PtZkwKs+tlemqr9`OTz>4~HK9a>B8`aBi}IWHsczhf|1)^;3H7FCK=STsZuW1o+@PuI zWR*=(>v0$es-hliEIT-SwM?wPE;-3rcdF%UDe!t3==xyn+fstlhx8p{fvtGGs&F7| z@^vGi4jl0vDQRWw3ek}DUj8uXOvyuO8vjpV2~b>}t0OePeE~_(>nzi3=Z}>Ra%R-2 zn;m1p-2Pa_-drk^(T43c7;ycQV=yV0z{$EgWkvUQ$=%CeXsOhnvF+lUj|yykRIdw{ zTH+JVfg#X|5Rpqk!<KbO zaRxUm?C(&YGc@Zi>zB?OQgQy%YP7WY;T-FDP5*j_JlNGrO!VD9zWkrddjqw9zoAF` zs9>F-CLCpCl!fno`E$=ux$RGLe}L$3TMy%A+5gu!p`qO*gwB5g!|$6IMqvC$LEJJy zI)6q7@)}E$+gY|kts1>K8L79`e|VQ+t1HpntoiS<^H$y)5YIK76k|0ItjCAMq@>EM z<-|gt#iqo3R39xHe9HnZF@7EFR;q0^Mg8|*9NNTQ2InjH2RuBoe0bZ6G~PeoFDPYh zDa$IQb#<3iWFR;39mE`A9nBs~7;BF=`nwgYwrq2c&i8Zr7UE6ffN=!caeiDwAS$ zkAJuZ_}os?L4WpNNKAzwvoS9PQdX#rb<~02Z#uzCjqeNIc>J*)Gb^ZoYhjD8yz$2; zWN%aXA}wLXMwgX19X>-X+=BRAWqD0Bs5;Cm+m{uQN|2CH?WNXFEDr&{S3Tw8<>&d^ zRHL!sbrsix6572|K5Lyj6ml87VfEd97mIz&5KU7Y7*I(YNy60b17;AD9=RdLM);Oz zLA)OdZ<6tDE@wZ6D!--oenoq1A6C<#{1Xa4ngvY?UG1q*+?Ffe?^Uf9 z8$QamZb=Jhqf&;dJx&o^VmM#UK}c@+_YKZ#?LE|1%mDXOu;6LDk`ZoyUB}`6Wr;d% zHoX7R?g#A!!%zk~2GhL56Twvqv1I?wyUQL`Wg=0oWNwZlB*43=ME9RX{EN=G!TDp5 zvA^nnU^Lxd-5Q8yiKHkz7LkvLrt656)AmHMzX%PtrK2%_VIM`X{`^CztpY>qh_vLd zaDsJ8<~$SK&gy7go8@K(Y8%agoC%i22Ro!4Za7UD;o}k#hQBgG{}&!XGT)6!i)_BM zod&GLnfePw|5O`ZI<@6!MnyWzrmi3@M_!k}0dwSAZYDIgdYZatKZ`hN&5Y}WK~vl` zejp$PQjqr@3;wCl{$G_pgF_TtE~9PdM7ju))IMl51jVJ!rAtlPtPG^ccPxCVKxkfx zscMTw6B=uE*0r=4vZFy|)cZ-1oLUQ#i|ZUZfZC6cMyZsQFZ3;)^hZJTF-!bpMOT8eY(lTCr+yywhSNJPGApyHL~8VN*#6KkeS z4jc&JbgOQ&5-ZQ_;fMAOhhcS&OP~9 zIQ6X-Weug+fM2vbH=AWjJpKK>Oe-Pre0UaczGR$c@}-b{WU5b;4VplnGKaD8!5bc_ zg_ta{?9Mmov)3Dlpy$s$j)CwuTP_&04jJCObxibW#_&cSSl&R7h)_8TbDG7}}cH!AJd&%h$brZI8m(82X z4SwN2hep7m)sOX23w09X6G7^buE2>_>yVG`sgpmfVqv+Jd)U13N<*|4F&6%$OynO* zf$z%mx(Z1^5aHM7Q6h*1_#76e=z zf}7dA4k|8Z)p-E6Xj|}Vdz9MGgjRg$bE}RGU+cb{^by6x$9Dm>B94oYg$j77d9CY zS*gmpbE?CR$F;F(~ zDk(U2lTU`p2L*5Bn|a~kCc7cjjIkcKvd3o;Dtbh+^|_bR?vVY99nQvor0C+6s|Igb ziiDhBl9=5O0CEl2@jhG&oF}g-omTs;g;QN05)=SZ%hbjqIQk=${!)t3f4p37O zKg}YRh~n&Npw)SE=�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 literal 0 HcmV?d00001 From fec323993016314172a81fae48695dbfb7298346 Mon Sep 17 00:00:00 2001 From: Dhruvkumar-Microsoft Date: Fri, 5 Dec 2025 17:03:24 +0530 Subject: [PATCH 2/4] updated the image --- docs/images/vscodeweb_intialize.png | Bin 0 -> 35612 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/vscodeweb_intialize.png diff --git a/docs/images/vscodeweb_intialize.png b/docs/images/vscodeweb_intialize.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef8ce8174399d32bdaf028eb9a2c84a06b30f3b GIT binary patch literal 35612 zcmeFZg;QKX^EOJ*7$iWDph1EJcXtn#KoZ<71ZRN-7AHXPAi-gANeHfsEKbnHb#YmA z2`sL6$@~85`~HCYRoz?no+=9V>^U>jJw4q|Khs0_I}IiL#}tn-Ffi~{l;yQBFtC|1 zFdk$)#6{oP!RW6=|9Sw>Qj*0e8>ZSuf55hpQJ2BMsEmDbZH9yX{K#2Z4}gI|`uhIo zfr=L6Ukr?hN)>sT51z*RH@OXw3|hD%!dZQ<*u!5}eX(UIam%gecx_Bs0|jP*~iv#myO4T*{bjK{-$ z=n+{9)AOFTR)`~9E7k~F8Q8ix{rP*AtO^VH>VE|51;x-k43)- zk(R%|x;R)_!}IeQcg-7RySlsM5)?S{q?En&)@$VB&u6qUoRF2A|XF?#e0n&QNIFi z!Iq)IzjxLn&^_ew_T^Hn^cZ{y#iuMpzv=xy5`smjVjlPlY`k-fY6>P&QBgr_C^$Zd z_+PtYT=DVoxct(D(TfzLFUZJ>vcDQu{*R=735kjPruc{)qKt2mkql^6q6hJS%^)tY zaQW*$L5_cQb;+Ygn<}z{)0!i4PACv$DJ1y{w{N{h#LL)qH%!`}+E(y3HuJRD|$k z(H}L6_`Z}|l7!>@k9_jo-Q7I)GZm81%W5esVk0A?DFv)yAr?Z~^1{@o4x(89hGHrG zRV*y1=}bWwj9-|S*9rODhMvd&X!+Z-%t!yU!D|Y40zb4m4+5Dh7md#%jLAM_W@b() z5GH^B-d17Oi5B3dRf;~?2wwa?FLw#tR~QxbbeI00(GU{8%*S}r|v#@eTJVneNpW}&A7 z*V=e*@ziPU^N#nq#G#tT&4D7@%(I^$v=A zUfma8T6% z`iw2SA9T{u$ZahR*qD$0fP~Io%CJiLZWg;UylY53^71^|vb%)&5B!|hDn6XeD(^Pv zZxma5QSc=4QN;#1aWV4ruLMvvKe&bjiZRP3oW{_*N{DwkeGui7qmzEtC z``;rBd<>M+N;P}pviykR*QI0-3?C1M{|zSja)2F7DHNu3+uPerx_+QwQbGBDWJw^kHf9!|q)>j6#R!1Cj95 zzjfk+p{n(-Ivrvw-t1O1vOBjtse_+c!@a2kG2EHk1h7nxR+UV{Y6cAwvB z*1KyMl(*Nls>-pSNl*KsmpB!FX&%_;@H9Qc{;kc?VBge7NsXhq`64<*`QLoVK4JBP zxtoET$a+=1t5aL1L8I;rm)qUziG9Qkg)-D5%3XblKXcP<9NSME*z6u{2B-4N7?;=9 zKC@yrsf53n*pFRl>+;+z<#lp|EWFBGudSUI?z2o{M{duYLPvHcp1-RHkJVm@WGXHqo1Jd2rWmw^_x#YcZ~(G1d09 zG1jx3OGYir7F(y(OL&_&Wh>b(0o(03HCe=+Cxp^pe8I^}-2tDqexcJGT3{S`kSgEb z{Yn2f8)k__cS$6x+8g$syYl1Zm~FUlbEw?>o!ahS%2dBFf%YG5HxkztnhVrYz#p@w zNSbqrMhlL4$$&mpkXSjU5A@9R8cs_oqd4Hc9$AkkV~UyLGmf1m2}(G#Gwo2%*{gI> zPffroT0+9I16y3l(DqrlEDya1D)*t>rh5s?C?U??yjd1vprzWh)D~^LV^9uw6+gD} z3znt~-5(Axxm3hL_%0sQEo~nIGZ=Fnn-coA)icCj?0IZIIfar%r-Pk$CVspTbd+9* z_O`Q-;P1IuJZ?{KhXF6&(Tur=tdf7WY1hg=e%KBDZ zT6iVK+}gU{b!S1!U>ZB=fl@s<*ZrK4=1ENpM&aGLqShBF>)xhrs-OEb;*I7RH;)er z+0sc?^@khc@c@OU|l) zL%SSe$u)g3#ryVul?N>*-nWan-h#CFnNI#e^Fy?S)=+Odg&79zwas_eZ~165`tEYd zmUij(w1*E-l#o-uEd5Sq$EUbwLDmuCBDa*#I@ycV48an)*tXrOWPU4Ul+O6=ks%+| z&fUBy_bQ8%@5tN!=<%i#kCfXrN|nZQo0wbLfrzYTgTVpXn$sD|PCK46c#`Z8bB}Z^ zHTW1FY4MH{z_IN!q~qS!VAmMBI6RPWZSzn9`x?3gI_>uVFy4i|S(?VTHB6f~9p)AN z^D1R0%Ud_C2X@0l{B6)TBJ+O?LMpY{^HIXMCaSgeS6#Uapy960O#^DF9O3;)A0a zT#V;i7E9aQbDQSIbjLq(VSl+SFxBcy;kt=N3Ams1C`o-6rfJktc0tYP5qu7?{QD(tn~-1L8EIQ^wd+fp2vPk8v`_Uk8klo+C88zov(s!3KUy4 zng;r;7efn2b`sA&i}ndFiNYNQ&uveyN|#RcI8`Ay+?UqZ@Q;2%Z3`5a@10%4c$9i? zBsMmJr=xf;viqKXICW~o23$HUt&w;lW7-P~O9O&1!CrMCHX#c=K+;i7yTlp_L^qla@l5wLn804Dq+~E3n(7l3!K#<5sOmP z@2`2Vr33dXR->jVu6N`p{4ETLHpmjgIj?tVfzSyZw>_bL?I2doK~K4LQDD8idRF_L&j}FQ`P!q|9W80WJlKjiXNUKd{F|TY659VQ7-Te`5p)cnna!F-r7C9oalYwDy>Lwb$$2e zbxVCCx$JYlHK{~YEgtPPbJ4ahX5a14*sS`NWB%sO-ahIcXLbhvoISg5(@cle7J9Y^ zo$QMe{a~&_?(MAZcb?A@LZ_WsW_A_iYAj|CO6dMBW!}4&oY1AK(_0pn?Cj;U31=M5 zsPMC> zC3gM((mdm!c)ODb7z3+TOG9f%?291 zY7O;qAc}k!sz+6DzCiJ(HDpK#F>={%Alb>$Q5(ErCGg!>DBbDQ$nkjaFYVZh_0#=_ z{4$6id1olsqg4@^P2Ho>{i~bDZu2HQbbr=!kdGu=5{^R!GtdTIAeRGIkPm&1!;CxA zCzs^-jkejkRjvi3GkgfpsazKnzIf||B2e3mE9kM4U^sHa6p#LKobf1s`r792byRxi zPsdInSqC+R0kS==1=x0m$O9&v%s~dqP3|0P=pDJ$*}LR|q(@Rtps%lQCcYtu#c}I7 zDkpvf3g3?M`61s3vS&V}wckahtf0H&VeY*X$n5#`cT;yWf*h9d@c{*+B*N~j@pY7t z;c=HI@0URibBU$KeL_IG*+j4D&M9gWPrb)$x7zb)6^T-Hdm?x|P^*HuWc3Lm& z&J&ig_v!Z9Z^>KT)854KDO=z0A!n0?s1QLfDv971HF%;8jWs0ygn1lyfs8$*xX=*Z zv>Bi6tC`0_>k^3D5Bbv(@#Apwca|{&l~ICI+Vg95S)`DAYT)AcFu-vqu;f2sgjDFu zL^0=Xhi-CQoQ#D+1Zqo=wFCr3wRbdukHK>GXYCF5L5aB>c#nhx$jSLnZD&d<*s zZRO454jN?x0PP$zN2ZvQchUo^YtboohK7c1C;y=fK`$~MX1BCtswQ)eE-oT3!f_rw zdc?@YL_|xgsij4P=1H@b6msc4!AR=S^e6-ZQC3syT5=?7y|e=)oeqlK1;} z^g-)Y47wRToo;?$=Kyu7va<5lVTqfMPctUP7<2H6p$kAX6V1j(t*=||zWK+6g=69{ z2Mi>00aiLfQb0SDDrllJ%QSR+yKCF+=ac5+{tZ``l@1(HQPI+0xCQ6uo?2R3$|@?A zW%mn;Fzx~WdN47X*rg`pG_2sHaa~*XlO{s-eRDvtc+7%U;p#x&)Ee9-4OlI3iJ(5<7Q6!EBt#s(|u;tn1TkI+Bdfc6QppeQq~5w-Gqp-iTeNqOPuvZPPtx<%@&EsXoo-Q7+L9wrgbfGbfxYm?=Fc{UklL#)S1%17+cxyRpl2=Be7?shN%;`>f>PylreQ z_JuY=^$RqRrl%*BD@4eHKuws$zWl{ZifUddWA**4{ueI0X>^6(hc-46p_N%BQy*mv zTYdBbA8D(q4zvwRxC}TG1q_!%tIEPNI))OHldBs?Ah~yg!vpOPzGwB;82q-w%PT4M z&&xP+1%tB@DVa5dycoUrJZpY=sG75EV0f#YlT+`8s~#E1&8H!KN)I+Jx_eQ4miC7u zqenh0@@GQ1fsP87TiN-OU*g7I;{eW@+ty*o)Y1^Kvd{Jbd7b}jR-g^m^Se$jMyRJk z&FTZ;cY483vPr*upnp_rmL^Vop|Vt|D96?aT(p>N)vs^SIUD|7qg?SPw;;8%_jpi zWgg%>Q?OC)owVqUN9wftp3v;lpuui-Ku}Qhhht&j&&-;8y~<60f2d(;WAiLt(S7d< z*>qs;m)n&XX7fG$@d-1~wGE=>U7*u@8ENQCt2(B6$F)Yk_j66_(5~i2sLg9`s~r9d`yhax>POb;(TBO{^Mi! zV%R6Mec`xxq4bV01fK|VboWmC9Q5)<%z6dGK`_9Fe)fFVbJ787=`M6>0eY36S2Tmh1~zL z6wQ5ds70!tuAG$mQb!v<%;W}#tK}@(L{!`s@W=Ha!ywX$=4oKv)!qChKjkeL=A)%z zXh@}}r#ID|gHnsJ&3uls&cM544wpuN?`T^M4mnhy2H!dl{Xb`FZzgd1RO=-2`d7ht z982;p+jd{H_>HCi(f0T6KP{XTmy`m#D2C*>9$`dAc2HATP5Cb+ut-Z_18EesDqUE^ zP=0-Rz|9m1YD4~yKPqh(c0cG3Zy28q!OOEI-+ii}I~NK)5 zwg9Z?9>``pqYSL)7O%?j=8<=v&Mi*7571tn{sUrui&rVCYw29drL;Nq{KN8Y`R_-a zywGEgtcG#dDDB=j;F2t+dJDJf99ts0tC0Q!t-k)ISn5_1-dwFd-&K++_y&O*hOjc& zlh#h>N|V+W{rtH9bXcHyJyouM)cp=rP}6EKF?umj&di>M1^jUb2<5B!WehdJtLL1o zyVqaX#b?uG#i_nI@u?B|8$h6ANBl9&#A>YyZ-{3Zr`frIfb9DZp;&QX$Jx|jK;t5+ zx+;o-tl>+)=Vv)uuvg50&09$1Wkk#MYCGm*Km9H-0nS&EaIt8^{6Q|Om97t;f9CFm z6f9mReH{H7obghVdme7s-&rs?>=N)Rrjv^um2af)M!xG7CE;);tCRb>_IYK1p+K^x z5%(Qfc5EZIjJzs5gFhT0ok6y0{SS11Gil(tW%AWDib-Df>z59=o zx-&d%e-v;ZA?de+(c#9?s+$-Xm*9Atme!f63GKLiiNpxG&~KG4U!}YfPGA;w{zz@1 z-6n+D+#A~cta7Kj-m82{jB)i(B&`eXtJfjFd=swTrnX-eA>zjM+o$NEm6R(klK}Hw z26p2!QCeTDnombs8!s`mw4w|LvoeB%nKYU!BKDP{+%c5u%FUe$o@n*D{+i9zO_3tR z$ z!quNrq_Q*}Gxgt(S1zBEm?g?RrLwqpNT&3FUTV44E2J0^5mCd=PiLniD{1wtp)NP) z$(GLkAiP=qQSAJLJ9$>NLSyx}#*!A=fm4N!YqdqB8WvO>A7~#*`iWW{b(Z>jkvaWH zm*DFkVC4cUIWdesQO$ZKRS;TbGkpS^$2GJO_Gsg^`FfFm7U+KPAfa!_6=Pcsy`YSv z!AhtocReo*?U!Oi%i;ooVo~Q?UQL>d9{4&Y)CTGmpV2$IvAWKf*>(d4hG{3_OTP9c zx-oIWv{$U*3D;y{n;0-hDH-CDb$D&)(NX=(iR&Y_P27W46TsjlQ?$1}!+CDJ^l%3J zg)Gh9fkAOci==$mjqA6Ne{Oe^)3CRkg&YOA3#ha7_ zrJ!$QZ_?U$V#KDe)0UFpDx~jpDq(j3)@OWNTqHYE^nbn)q(G8%vRY%WUAB)U+0ZoG zNmGhYT~=p$#0*kO#|r!PO2rk+_(pCYq%?i89@L31q)Ucx8y=3uKheE{%{g)kkMz09 z0X6grFy8u?)iOR+-;Ki;KOU#AYt@!fZ;3p1@q%A$ak2W_@r6_h`37+i&en66KO21! z=XxJj!sFQ_g%2lnOb$<`O(-o=3rytsh0RWB{`&5A$GJZ{{GvdOq}x^hQGPU|y14QX z!-6(z@IEkG7(5cr#YzF`NNxxGLUMDRM~!l_u;lfm%_JH$q%t4nnD4$Z7M}$qhabn? z=G6fZiwYVulSql-47_5*U#(qXuY=h48cQQ{kA=rx?n)^!HHLVdbM5#x-Cd#ME>!cW zI~GaCH%(1!ecQV;0?6$W>?X|n>#y2)EUw=c7pr(I=eC4mZ0T)roqHV@Q;ETvQU?aY z(_twiu#Hz}7f!^Xl%u_uA!v(KY;&A%3`u8A6-wf>f>o6jRZ^*Q8cKUF`fMUz0xSkS zefV~1hdL$P6@>{tOg_+q>uJ4RiOMQm{gr>@^W=MXO)XoBw}A7>Z}Db7yw@mKhy)JO zp(!n|8$7;U!@0xkA8i4I%E1V8EVv+gnmzO1rl(QQO>{ zmq-FAir+`_PwA_4hx6575Ga{^u}%!BbXuyRKsXK85Ye;>ICF_MO@}F`S9&CiusX9o z!`s0jR1~>Kon2M;yT14k9X(4+%aNIx&qnZHXmp$uNyep57O6gM4En8k5I)Ly>qs~J zVe8ykC^<{gMupmo^;vS&Zfkf=);Z2Ihlf*6m_4M9)_{N>h?43(F0dK2;&JC_no`@Q zYj`J@3M#xyyhudqcXc^ZI_8$V&UEvsQ>9BEK*X(G)d!{Z&l%aJ5U~@t&NsLVi1~>` zv)iQ=QtZULk|UDC7VE`8o4l>Aw%p!ma5imBxmfWyw%{zm^-MVX9>rdkHoQc%-`O_j zFno(yYig{Ki~@Yw@m|zTIPg{fO-m+VHK5nJu;=^XzX;~yOqZ7lY$VrevQXI$cXXCS ze9si0nH8!xMTBY6*c;KJJ=wC)n0LzbBVdH%hIuvBUgAAKS5AC-&G45cqKEj7Z3w*| zKrdFx@bsBx*0;`&-793lcuW|>_9nxp7Vi8PHH`*4zl59J*_d~HwK0jK8@Xi1AhGTS z&$JPID{`tvIAW1Wu6xZ+vQ3K?on!PKS$|;wX<7&KjVa;@FXQPMS)*=^h$LhIh}3%t ziLL(X$@7(PH>n&46c6VeknNUmRn=|c<7k~1$TRR!l+KDH$FJ<+1B|B6CFQG`(Xnn$ z&Ci%t_U4t+XO4Fs4cJ`ILL}wk9{n0AWQj>{-o)rlhv^aAgHIlN<&z8yVgFn4`*MhG zqTK(0#j{!SM34p?l4JzUkk#7wM8on}khpMWa&of!0)^P#p>RtM^V?WbWl@s>X`FM9 zyHPC+7Z9Bw@3XwP9GgGxuSX2TI+9aTK0i{EU%C#t$RC%t8qsl67QWB;G@msd{2^iG z;P`zI82-FFnwmgbCjs+c*$OW|eq$E#XJmKS@wgMe`FFT73jYM|m z86jDVM6E$*8OolvultDay&H7o_F$^^ULJa#R=Q~bCVEJaQ|bEh;ZauyS*kq>bMLEOcx(g%X@o6DC{sL5pN9*Gu$V$ zlhHYvx3}njYMt(-;l&8ut04G=PI2ev=FU&&om?7ymMEq8MW_hSIbT^%nj7GCCYwf4 z!ml#O=MYkr8-6+kPc$d3J%fnwpoKbHqC*e$ypy!3i>aj*wF>CjguIQT z4sr)0>blznN1m%UZ;C6fsTQVC>Lz!a?QB}}B!t^Sd1Mt12yHkIQ#22deYJ6W3LC4~ z6O4egl+QrMvXqVduRu-Xs$g>s4~o?K@|}~Wx9GXRO$s7j`P-QD{60(ci#ngM!pUukS^>A*ro- zFw$1Cv|m$p+Caw@3+J&Fj&7#6$aC< z1qYjNyvKaVESIF;FVO}(d#jxViV&IA$c~=7QDC1145wL+L`<9rP3+G#O77`tb=}Sh zwyB(E6tR5tK@&ENOkMX?j{^|yDXag+SSpeyb<|dq`TQu>8Mmap%EE8#2TSEv{{I%Zf?vb49@%JScJSB|rAnV5eMlvp)IlMX zE%6Ib1LZQ}xt~A)i2a51q2!xQORRTIQs9f=^ZY7b-;^V&D}RAV9*oJWKPI~7>h~TA zORYUza)(2BMQ_PD!@XRv`tRuWx-~_t$6T772*m28=FPB=_vU!p+2rra1AyGi3>dzC z@w~v0PgP<_HIqwc3V*d2$Hdo&~((@Pp8223Bb~ z?)YBe3D<9*X^vE9?{=u8ast;B#9YK{BUEfhK3$ZChpHzXn#kMA0m0UEY*NO%N4{l(st-xt^3JQ-R$8Byhhs^BPy$}zlg?4 z+e(lpOV**LieevNc@gf(s2B+uuE(bOP%=W0BEswV0Qm}b)n7#+lvfx zZjB6n?Z&2WLDx8YWrB`lE{kn$XGWJYSlB|#2 zn+lUczbxKNBRpLL4^xAbRK3nh8+rL+MOK<`hBat>PGRR>@xe&w(x-u(cyo=0@wwSD zrGsAc<9JYNBJPOVNvpe}$cz2Lxoa$k$)=lu8QiOld63`!jvY;wm?L~_ZP2=(epkIE zv!G$d$6AM@LnqWqoxxdvAm%f`A$SwaYflF;ZdV)-r%P)L*=ZO&bDRnUQxh&theOz z!iPrwa*JiZcjYiPdN1IK#MCGT~I0a>d z9={#kFTWEpjg*Bj*vCDyj|#sVC8KM0eaDp+gB)HD^3p(EzYOq3fFRY+RM0AeG`$`* z9J(c1<3Tja!9WziVIHC9i>g~4tV@e1J56CPZb)|%>Ti=(Sh3)=rLmJQS#D;{4U7MS z3nb0r{Fumw-)ed%c>dOmKVSk{6{=zSUPf=B*_QDi4uk z3mObXGC)FVY&AIDYv$&qB8Msi(EIP$&K;l?v4(rW?o6hSVy)x2AR$3S@v`Z8QROja z7)rhN%mUSz@+0Z(9rtYaq=gZMbe^dse6OeX3PzkW#uQ#Brq7o-rv?T-n1r2_YMwd| zQy278she~}qK$A2_*mmnzYb_KMIa_yt4mVfLw=f&S@;v`uk>k(DK@RLZ z5bhD5F9uRWj!RdS=cS|ejrkkA13n!-ax#Pf*P%=&VWqQKQCSP94+vInbcz~j6M2N=Z9Cp(lHAKS`naT-)g-8s~4amctiWv6O0be4U0r1j9eJmP>L7F{@*b z@wzThej~p^SaVrzQj%X>3(F`aK27l}v$^?WW^|w3Vxdcs5BUl_X~n>4o%wqs#(kvk z^T7F*sUocRO4VZ?j>?YUXyWmHR1{ZV@iiji@o6bImN5PE=EOmro)l5MF3Xbgdb^d; z2$q;_=jM(D@Ptj_#ekVrYZIMRsF<<4P>sn30Z>&6g=?*+lqA2O0b{HM4~Mj({Xvv| zs*%~8VOJ0TJbEN@$w9uX2A!TZ6M;L->ET2{__CclA z+cV`U!7Mk1gEx1%@TA!jI};Kb+B3daADR4)zFx@k;_6xF{5uFD+!3KoJ-VU3VjGej zXwI|}i)7*6w!S8%_dphx66T%$=y&0Dq&)a<4nJg*q3Z({~pAA0%b*5E#4-cp(MQ?`Zj@t&02S!*>IvvIEr#}gHBM) zJWSGLYa{h`TpUm8-kT5Z;R^Rs<;7y^ou-4?XnARi@?Ji^(SdtQ2Eqeka|-0$B;Xs$Dr)G2 zH*W6S*n3G{i+^1OUa?7N_Vo_F$!Tu>8se2YGPSuq`dn|6D-6eLI$Z)ovgk->sul*? z%rqT58GPw*kP-XgB1x(~K^u84zvwfS?%rSyEBD+%M|B~-$xA{?0+$hLp8mnL#Q@^+ z8F3*w&T3bWtYU!y>!;OI2RXUmes-NtCO6jAO){YA9|Y-_&9BKSp=GFFkunq znc3Hq9YwB9T*gRj1!pS202PpSL}+dF=G@vIr|9S5Dq626g$Qp)#XKtnQf>m5P0NPD zf{7#l{Nl%yKubi((SEFWjli_450G$Nj(o|H*&$Z8co%WXZYDG87&9$+B>=gHdbI~4 zguxak+MIO3@pSvAWWRQVI@*Th{~f^iU%TdMkhk=f$C!2ddfoZ_%X=~r zG`-t4Dt za!36bj2*52WO#88XuK?x)eJbUbcU6}?veTB1VFZ{U*ct9A5RYzlt&bNojRScf;3-% zD>qbYe)}_`-CCM*Q|o|kg{Y2WXF%2Awc(SxAD)OE;p66iqy>*G`q0O(Jh02u0-xs~ z`@szANJme~KVGEK0;|ZwNk$@2fzgeb#kj5;mA0xfP*+jVmZnH=dkMH2qA_;hr&`Kg zWJ9}29{Kxb0I+K3Q2e|(S&xY;U5j;rGtX1QKd}s{-q+6ApxMq`HvS2b; zpv%g?#o#I|00$Dvn4yO3jJKI zgNG5SAE@kY+CT5kweP=O6hd=i%G2(Igy=%2%d!~-h3?m{XEXXBv-neQH5Yn^wiY^q5} zjq~|gk)4@0<@@Nky1etUFNOQEZy=G~o>^=NV*Ppc&KA=F1OE|~#1|t<&>mHNd!3W3 zRl1%}YF=-XNvFl6=|K5Y{L$93XLTs^iVY#H4+O3S=wf9>e#mNRB&1JG;MP48Ws;Tr z#G&?(f213KTSu%2e)3@MAx?%whu;u?$WhQ4cGgB3EEMMMT%_lVy-){C1` zK~i(l7_C;TU9+by%213r_qQiJiSL66`4=)*^`;49s}_RlU4G6&rofpsai892bnRdC zt;610#%^SUD|o~huw0R<_R5yozs%#9-XyjBEJq=acxO70bXnhX^qWW`)Ly zbKz=>eETZf9!~C3JbFI8T~SsU(Rl_Dgv=;#{+%6Vl(fS@;8TllS1;GOBCl!XLLYN$mOhYs(`9v#!)jVnrKFM(58e;>?oOWj}Na)|k+~ zgI+E*h?s|ogTb>r=mYZzRj(e{O4V@(o2dBuBUP_dES3#kLXZNpkIyF>SbU~+o>=t& z?ZEDWGBEb=5Ogj!lsuFdsw#A_Z^*Dz)XvvDNE^ zz6?16?rm)}gfu&uRcJGl{m>tW%;>!kb|}WgUlaA4=td$S4ejwBCLuuG$$kgU1Mbqb zz}<>W-zVWBFC5PLk@J#}@?a2$J9GR+Er4Bi&aoH~0;_2Km=NV)2|Fwl@H512_%P24 zuoAlhv6{#>Bptto<`_>i6ioY~+~vq%dc%2nSMz$d#jdJ|=}e|O|2UQ7E;m;s>9y@@6n6|dm3wiAp^$9I z+|TtqgOJs8tB4}cFe4o*;QJj(Zb2y4-ouhx#h+B{<}0oGp)@$m<_hl3Cb16#7D$qX zTgR_9GDuC?FV$zI-7#TUpctl+r*Ll8F0SJ!PB^uIVbVtq1ELaK*COC|C%tL17Dpjy za5E3aAr*(p@>h4?XPfZFaAIfc`s#|_vX^mjA_dX$A^TB>+s4VMh+NOeyAb~kq+nLs zq)Z{~(5=v&d$&aJlmzcC{$W3_QcphrtKXR){Y>tZ<;Vg$3;_XDx&k| zWlN=eU%aJ}w2Q%m{P}ZISlO?P^=%C$Hzkm>Meh_IS!C^gzQMq8#;d6pqj1=&%APS1 zyTIHj>=Xx+xKli>MAj`_%_Dh3tI?+%(oyj}J&E7h6M& zrz6jdc0361n@3RS()28{(=xF*G>?_4&B-SpbX_mCLXx?%FaZo0Z5X?Bm})=V;0HNhc*M`OHA*&>0yyHP8Ay95-yuldl%KE$7=W4yU&$gps$b-
  • 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 u%K5_p`C{4E@BbG%UGs1N literal 0 HcmV?d00001 From 86236a8ed074ce0b83c2a19d4d632e5fba86b863 Mon Sep 17 00:00:00 2001 From: Dhruvkumar-Microsoft Date: Mon, 8 Dec 2025 18:34:44 +0530 Subject: [PATCH 3/4] added the local deployment guide --- docs/LocalDevelopmentSetup.md | 565 +++++++++++++++++++ docs/images/Environment_varibles_example.png | Bin 0 -> 129824 bytes src/backend/.env.sample | 33 +- 3 files changed, 577 insertions(+), 21 deletions(-) create mode 100644 docs/images/Environment_varibles_example.png diff --git a/docs/LocalDevelopmentSetup.md b/docs/LocalDevelopmentSetup.md index e69de29bb..637daed97 100644 --- a/docs/LocalDevelopmentSetup.md +++ b/docs/LocalDevelopmentSetup.md @@ -0,0 +1,565 @@ +# Local Development Setup Guide + +This guide provides comprehensive instructions for setting up the Multi Agent Custom Automation Engine Solution Accelerator for local development across Windows and Linux platforms. + +## Important Setup Notes + +### Multi-Service Architecture + +This application consists of **three separate services** that run independently: + +1. **Backend** - Backend APIs related to orchestration and Teams +2. **Frontend** - React-based user interface +3. **MCP Server** - MCP server to tools call + +> **⚠️ Critical: Each service must run in its own terminal/console window** +> +> - **Do NOT close terminals** while services are running +> - Open **3 separate terminal windows** for local development +> - Each service will occupy its terminal and show live logs +> +> **Terminal Organization:** +> - **Terminal 1**: Backend - HTTP server on port 8000 +> - **Terminal 2**: Frontend - Development server on port 3000 +> - **Terminal 3**: MCP server - HTTP streamable server on port 9000 + +### Path Conventions + +**All paths in this guide are relative to the repository root directory:** + +```bash +Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/ ← Repository root (start here) +├── src/ +│ ├── backend/ ← cd src/backend +│ │ ├── .venv/ ← Virtual environment +│ │ └── .env ← Backend config file +│ │ └── app_kernel.py ← Backend Entry Point +│ ├── frontend/ ← cd src/frontend +│ │ ├── node_modules/ ← npm dependencies +│ │ ├── .venv/ ← Virtual environment +│ │ ├── frontend_server.py ← Fronted entry point +│ ├── mcp_server/ ← cd src/mcp_server +│ │ ├── .venv/ ← Virtual environment +│ │ └── mcp_server.py ← MCP server Entry Point +└── docs/ ← Documentation (you are here) +``` + +**Before starting any step, ensure you are in the repository root directory:** + +```bash +# Verify you're in the correct location +pwd # Linux/macOS - should show: .../Multi-Agent-Custom-Automation-Engine-Solution-Accelerator +Get-Location # Windows PowerShell - should show: ...\Multi-Agent-Custom-Automation-Engine-Solution-Accelerator + +# If not, navigate to repository root +cd path/to/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator +``` + +### Configuration Files + +This project uses Backend `.env` file in Backend directory with different configuration requirements: + +- **Backend**: `src/backend/.env` + + + +## Step 1: Prerequisites - Install Required Tools + +### Windows Development + +#### Option 1: Native Windows (PowerShell) + +```powershell +# Install Python 3.12+ and Git +winget install Python.Python.3.12 +winget install Git.Git + +# Install Node.js for frontend +winget install OpenJS.NodeJS.LTS + +# Install uv package manager +py -3.12 -m pip install uv +``` + +**Note**: On Windows, use `py -3.12 -m uv` instead of `uv` for all commands to ensure you're using Python 3.12. + +#### Option 2: Windows with WSL2 (Recommended) + +```bash +# Install WSL2 first (run in PowerShell as Administrator): +# wsl --install -d Ubuntu + +# Then in WSL2 Ubuntu terminal: +sudo apt update && sudo apt install python3.12 python3.12-venv git curl nodejs npm -y + +# Install uv +curl -LsSf https://astral.sh/uv/install.sh | sh +source ~/.bashrc +``` + +### Linux Development + +#### Ubuntu/Debian + +```bash +# Install prerequisites +sudo apt update && sudo apt install python3.12 python3.12-venv git curl nodejs npm -y + +# Install uv package manager +curl -LsSf https://astral.sh/uv/install.sh | sh +source ~/.bashrc +``` + +#### RHEL/CentOS/Fedora + +```bash +# Install prerequisites +sudo dnf install python3.12 python3.12-devel git curl gcc nodejs npm -y + +# Install uv +curl -LsSf https://astral.sh/uv/install.sh | sh +source ~/.bashrc +``` + +### Clone the Repository + +```bash +git clone https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator.git +cd Multi-Agent-Custom-Automation-Engine-Solution-Accelerator +``` + +## Step 2: Development Tools Setup + +### Visual Studio Code (Recommended) + +#### Required Extensions + +Create `.vscode/extensions.json` in the workspace root and copy the following JSON: + +```json +{ + "recommendations": [ + "ms-python.python", + "ms-python.pylint", + "ms-python.black-formatter", + "ms-python.isort", + "ms-vscode-remote.remote-wsl", + "ms-vscode-remote.remote-containers", + "redhat.vscode-yaml", + "ms-vscode.azure-account", + "ms-python.mypy-type-checker" + ] +} +``` + +VS Code will prompt you to install these recommended extensions when you open the workspace. + +#### Settings Configuration + +Create `.vscode/settings.json` and copy the following JSON: + +```json +{ + "python.defaultInterpreterPath": "${workspaceFolder}/src/backend/.venv/Scripts/python.exe", + "python.terminal.activateEnvironment": true, + "python.linting.enabled": true, + "python.linting.pylintEnabled": false, + "python.linting.flake8Enabled": true, + "python.formatting.provider": "black", + "python.debugging.logLevel": "Debug", + "debug.terminal.clearBeforeReusing": true, + "debug.onTaskErrors": "showErrors", + "debug.showBreakpointsInOverviewRuler": true, + "debug.inlineValues": "on", + "files.exclude": { + "**/__pycache__": true, + "**/*.pyc": true + }, + "python.analysis.extraPaths": [ + "${workspaceFolder}/src/backend", + "${workspaceFolder}/src/mcp_server" + ], + "folders": [ + { + "name": "Backend", + "path": "./src/backend" + }, + { + "name": "MCP Server", + "path": "./src/mcp_server" + }, + { + "name": "Frontend", + "path": "./src/frontend" + } + ] +} +``` + +## Step 3: Azure Authentication Setup + +Before configuring services, authenticate with Azure: + +```bash +# Login to Azure CLI +az login + +# Set your subscription +az account set --subscription "your-subscription-id" + +# Verify authentication +az account show +``` + + +### Required Azure RBAC Permissions + +To run the application locally, your Azure account needs the following role assignments on the deployed resources: + +The **main.bicep** deployment includes the assignment of the appropriate roles to AOAI, Storage account, Search service and Cosmos services. If you want to use resource group which is not deployed by you for local debugging—you will need to add your own credentials to access the Cosmos Storage account, Search service and AOAI services. You can add these permissions using the following commands: + +#### Get Principal Id +```bash + az ad signed-in-user show --query id -o tsv +``` + +#### Cosmos DB Access +```bash + +# Assign Cosmos DB Built-in Data Contributor role + az cosmosdb sql role assignment create --resource-group --account-name --role-definition-name "Cosmos DB Built-in Data Contributor" --principal-id --scope /subscriptions//resourceGroups//providers/Microsoft.DocumentDB/databaseAccounts/ + + +``` + +#### AI Foundry access + +```bash + az role assignment create --assignee --role "Azure AI User" --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ +``` + +```bash + az role assignment create --assignee --role " Azure AI Developer " --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ +``` + +```bash + az role assignment create --assignee --role " Cognitive Services OpenAI User " --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ +``` + +#### Search Service Access + + ```bash + az role assignment create --assignee --role "Search Index Data Contributor" --scope /subscriptions/ /resourceGroups/ /providers/Microsoft.Search/searchServices/ +``` + +#### Storage Account Access + +```bash + az role assignment create --assignee --role "Storage Blob Data Contributor" --scope /subscriptions/ /resourceGroups/ /providers/Microsoft.Storage/storageAccounts/ +``` + + +**Note**: RBAC permission changes can take 5-10 minutes to propagate. If you encounter "Forbidden" errors after assigning roles, wait a few minutes and try again. + +## Step 4: Backend Setup & Run Instructions + +> **📋 Terminal Reminder**: Open a **dedicated terminal window (Terminal 1)** for the Backend service. All commands in this section assume you start from the **repository root directory**. + +### 4.1. Navigate to Backend Directory + +```bash +cd src/backend +``` + +### 4.2. Configure Backend Environment Variables + +Create a `.env` file in the `src/backend` directory: + +```bash +# Create .env file +touch .env # Linux +# or +New-Item .env # Windows PowerShell +``` + +Add the following to the `.env` file: + +- Copy all the values from `.env.example` (CTRL + A) and (CTRL +C) +- Paste all copied value to `.env` (CTRL + V) + +Get All the values from the Backend container app from Azure portal + +- Go to your resource group +- open the backend container +- Go to Environment varibles of conrainers + +For reference, see the image below: +![Environment_varibles_example](./images/Environment_varibles_example.png) + +- Make sure to set APP_ENV to "**dev**" + - Keep Below variables as it is from `.env.example`. + - `BACKEND_API_URL=http://localhost:8000` + - `FRONTEND_SITE_NAME=http://127.0.0.1:3000` + - `MCP_SERVER_ENDPOINT=http://localhost:9000/mcp` + +### 4.3. Install Backend Dependencies + +```bash +# Create and activate virtual environment +uv venv .venv + +# Activate virtual environment +source .venv/bin/activate # Linux/WSL2 +# or +.\.venv\Scripts\Activate.ps1 # Windows PowerShell + +# Install dependencies +uv sync --python 3.12 +``` + +**Windows users**: If you encounter issues with the `uv` command not being found, use the Python Launcher instead: + +```powershell +# Create virtual environment +py -3.12 -m uv venv .venv + +# Install dependencies +py -3.12 -m uv sync +``` + +> **⚠️ Important**: Always run `uv sync` (or `py -3.12 -m uv sync` on Windows) after creating the virtual environment to install all required dependencies. Missing dependencies will cause runtime errors like `ModuleNotFoundError: No module named 'pydantic'` or DNS resolution failures. + +### 4.4. Run the Backend + +```bash +python app_kernel.py +``` + +The Backend API will start at: +- API: `http://localhost:8000` +- API Documentation: `http://localhost:8000/docs` + +## Step 5: MCP Server Setup & Run Instructions + +> **📋 Terminal Reminder**: Open a **second dedicated terminal window (Terminal 2)** for the MCP Server. Keep Terminal 1 (Backend) running. All commands assume you start from the **repository root directory**. + + +### 5.1. Navigate to MCP Server Directory + +```bash +# From repository root +cd src/mcp_server +``` + + + +### 5.2. Install MCP Server Dependencies + +```bash +# Create and activate virtual environment +uv venv .venv + +# Activate virtual environment +source .venv/bin/activate # Linux/WSL2 +# or +.\.venv\Scripts\Activate.ps1 # Windows PowerShell + +# Install dependencies +uv sync --python 3.12 +``` + +### 5.3. Run the MCP Server + +```bash + +# Run with uvicorn +python mcp_server.py --transport streamable-http --host 0.0.0.0 --port 9000 +``` + +## Step 6: Frontend (UI) Setup & Run Instructions + +> **📋 Terminal Reminder**: Open a **third dedicated terminal window (Terminal 3)** for the Frontend. Keep Terminals 1 (Backend) and 2 (MCP Server) running. All commands assume you start from the **repository root directory**. + +The UI is located under `src/frontend`. + +### 6.1. Navigate to Frontend Directory + +```bash +# From repository root +cd src/frontend +``` + + + +### 6.3. Install UI Dependencies + +```bash + +python -m venv .venv + +# Activate virtual environment +source .venv/bin/activate # Linux/WSL2 +# or +.\.venv\Scripts\Activate.ps1 # Windows PowerShell + + +pip install -r requirements.txt +``` + + +```bash +npm install +``` + +### 6.4. Build the UI + +```bash +npm run build +``` + +### 6.5. Start Development Server + +```bash +python frontend_server.py +``` + +The app will start at: + +``` +http://localhost:3000 +``` + +## Troubleshooting + +### Common Issues + +#### Python Version Issues + +```bash +# Check available Python versions +python3 --version +python3.12 --version + +# If python3.12 not found, install it: +# Ubuntu: sudo apt install python3.12 +# Windows: winget install Python.Python.3.12 +``` + +#### Virtual Environment Issues + +```bash +# Recreate virtual environment +rm -rf .venv # Linux +# or Remove-Item -Recurse .venv # Windows PowerShell + +uv venv .venv +# Activate and reinstall +source .venv/bin/activate # Linux +# or .\.venv\Scripts\Activate.ps1 # Windows +uv sync --python 3.12 +``` + +#### Permission Issues (Linux) + +```bash +# Fix ownership of files +sudo chown -R $USER:$USER . + +# Fix uv permissions +chmod +x ~/.local/bin/uv +``` + +#### Windows-Specific Issues + +```powershell +# PowerShell execution policy +Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +# Long path support (Windows 10 1607+, run as Administrator) +New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force + +# SSL certificate issues +pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org uv +``` + +### Environment Variable Issues + +```bash +# Check environment variables are loaded +env | grep AZURE # Linux +Get-ChildItem Env:AZURE* # Windows PowerShell + +# Validate .env file format +cat .env | grep -v '^#' | grep '=' # Should show key=value pairs +``` + +## Step 7: Verify All Services Are Running + +Before using the application, confirm all three services are running in separate terminals: + +### Terminal Status Checklist + +| Terminal | Service | Command | Expected Output | URL | +|----------|---------|---------|-----------------|-----| +| **Terminal 1** | Backend | `python app_kernel.py` | `INFO: Application startup complete.` | http://localhost:8000 | +| **Terminal 2** | MCP Server | `python mcp_server.py --transport streamable-http --host 0.0.0.0 --port 9000` | `INFO: Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)` | http://localhost:9000 | +| **Terminal 3** | Frontend | `python frontend_server.py` | `Local: http://localhost:3000/` | http://localhost:3000 | + +### Quick Verification + +**1. Check Backend :** +- Look at Terminal 1 output +- Should see regular messages: `INFO: Application startup complete.` +- No error messages + +**2. Check MCP Server:** +- Look at Terminal 2 output +- Should see regular polling messages: `INFO: Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)` +- No error messages + +**3. Check Frontend:** +- Open browser to http://localhost:3000 +- Should see the Application UI + + +### Common Issues + +**Service not starting?** +- Ensure you're in the correct directory +- Verify virtual environment is activated (Python services) +- Check that port is not already in use (8000 for API, 3000 for frontend, 9000 for MCP server) +- Review error messages in the terminal + +**Can't access services?** +- Verify firewall isn't blocking ports 8000 or 3000 or 9000 +- Try `http://localhost:port` instead of `http://127.0.0.1:port` +- Ensure services show "startup complete" messages + +## Step 8: Next Steps + +Once all services are running (as confirmed in Step 7), you can: + +1. **Access the Application**: Open `http://localhost:3000` in your browser to explore the frontend UI +2. **Try a Sample Workflow**: Follow [SampleWorkflow.md](SampleQuestions.md) for a guided walkthrough of the Multi agent process. +3. **Explore the Codebase**: Start with `src/app_kernel.py` to understand the code base + + +## Related Documentation + +- [Deployment Guide](DeploymentGuide.md) - Production deployment instructions + + diff --git a/docs/images/Environment_varibles_example.png b/docs/images/Environment_varibles_example.png new file mode 100644 index 0000000000000000000000000000000000000000..47e78a14ea7713746632df461b0e471e5e637342 GIT binary patch literal 129824 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 z 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 Date: Mon, 8 Dec 2025 18:36:45 +0530 Subject: [PATCH 4/4] updated the spacing --- docs/LocalDevelopmentSetup.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/LocalDevelopmentSetup.md b/docs/LocalDevelopmentSetup.md index 637daed97..60574c6f1 100644 --- a/docs/LocalDevelopmentSetup.md +++ b/docs/LocalDevelopmentSetup.md @@ -221,42 +221,39 @@ The **main.bicep** deployment includes the assignment of the appropriate roles t #### Get Principal Id ```bash - az ad signed-in-user show --query id -o tsv +az ad signed-in-user show --query id -o tsv ``` #### Cosmos DB Access ```bash - # Assign Cosmos DB Built-in Data Contributor role - az cosmosdb sql role assignment create --resource-group --account-name --role-definition-name "Cosmos DB Built-in Data Contributor" --principal-id --scope /subscriptions//resourceGroups//providers/Microsoft.DocumentDB/databaseAccounts/ - - +az cosmosdb sql role assignment create --resource-group --account-name --role-definition-name "Cosmos DB Built-in Data Contributor" --principal-id --scope /subscriptions//resourceGroups//providers/Microsoft.DocumentDB/databaseAccounts/ ``` #### AI Foundry access ```bash - az role assignment create --assignee --role "Azure AI User" --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ +az role assignment create --assignee --role "Azure AI User" --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ ``` ```bash - az role assignment create --assignee --role " Azure AI Developer " --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ +az role assignment create --assignee --role " Azure AI Developer " --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ ``` ```bash - az role assignment create --assignee --role " Cognitive Services OpenAI User " --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ +az role assignment create --assignee --role " Cognitive Services OpenAI User " --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/ ``` #### Search Service Access ```bash - az role assignment create --assignee --role "Search Index Data Contributor" --scope /subscriptions/ /resourceGroups/ /providers/Microsoft.Search/searchServices/ +az role assignment create --assignee --role "Search Index Data Contributor" --scope /subscriptions/ /resourceGroups/ /providers/Microsoft.Search/searchServices/ ``` #### Storage Account Access ```bash - az role assignment create --assignee --role "Storage Blob Data Contributor" --scope /subscriptions/ /resourceGroups/ /providers/Microsoft.Storage/storageAccounts/ +az role assignment create --assignee --role "Storage Blob Data Contributor" --scope /subscriptions/ /resourceGroups/ /providers/Microsoft.Storage/storageAccounts/ ```