diff --git a/.gemini/settings.json b/.gemini/settings.json new file mode 100644 index 000000000..ebf257e01 --- /dev/null +++ b/.gemini/settings.json @@ -0,0 +1,3 @@ +{ + "contextFileName": "AGENTS.md" +} diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 7c2ffdd95..f04f3f039 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -31,5 +31,8 @@ If applicable, add screenshots to help explain your problem. - Python version(python -V): - ADK version(pip show google-adk): + **Model Information:** + For example, which model is being used. + **Additional context** Add any other context about the problem here. diff --git a/.github/workflows/pr-commit-check.yml b/.github/workflows/pr-commit-check.yml new file mode 100644 index 000000000..ec6644311 --- /dev/null +++ b/.github/workflows/pr-commit-check.yml @@ -0,0 +1,62 @@ +# .github/workflows/pr-commit-check.yml +# This GitHub Action workflow checks if a pull request has more than one commit. +# If it does, it fails the check and instructs the user to squash their commits. + +name: 'PR Commit Check' + +# This workflow runs on pull request events. +# It's configured to run on any pull request that is opened or synchronized (new commits pushed). +on: + pull_request: + types: [opened, synchronize] + +# Defines the jobs that will run as part of the workflow. +jobs: + check-commit-count: + # The type of runner that the job will run on. 'ubuntu-latest' is a good default. + runs-on: ubuntu-latest + + # The steps that will be executed as part of the job. + steps: + # Step 1: Check out the code + # This action checks out your repository under $GITHUB_WORKSPACE, so your workflow can access it. + - name: Checkout Code + uses: actions/checkout@v4 + with: + # We need to fetch all commits to accurately count them. + # '0' means fetch all history for all branches and tags. + fetch-depth: 0 + + # Step 2: Count the commits in the pull request + # This step runs a script to get the number of commits in the PR. + - name: Count Commits + id: count_commits + # We use `git rev-list --count` to count the commits. + # ${{ github.event.pull_request.base.sha }} is the commit SHA of the base branch. + # ${{ github.event.pull_request.head.sha }} is the commit SHA of the head branch (the PR branch). + # The '..' syntax gives us the list of commits in the head branch that are not in the base branch. + # The output of the command (the count) is stored in a step output variable named 'count'. + run: | + count=$(git rev-list --count ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}) + echo "commit_count=$count" >> $GITHUB_OUTPUT + + # Step 3: Check if the commit count is greater than 1 + # This step uses the output from the previous step to decide whether to pass or fail. + - name: Check Commit Count + # This step only runs if the 'commit_count' output from the 'count_commits' step is greater than 1. + if: steps.count_commits.outputs.commit_count > 1 + # If the condition is met, the workflow will exit with a failure status. + run: | + echo "This pull request has ${{ steps.count_commits.outputs.commit_count }} commits." + echo "Please squash them into a single commit before merging." + echo "You can use git rebase -i HEAD~N" + echo "...where N is the number of commits you want to squash together. The PR check conveniently tells you this number! For example, if the check says you have 3 commits, you would run: git rebase -i HEAD~3." + echo "Because you have rewritten the commit history, you must use the --force flag to update the pull request: git push --force" + exit 1 + + # Step 4: Success message + # This step runs if the commit count is not greater than 1 (i.e., it's 1). + - name: Success + if: steps.count_commits.outputs.commit_count <= 1 + run: | + echo "This pull request has a single commit. Great job!" diff --git a/.github/workflows/python-unit-tests.yml b/.github/workflows/python-unit-tests.yml index d4af7b13a..52e61b8a3 100644 --- a/.github/workflows/python-unit-tests.yml +++ b/.github/workflows/python-unit-tests.yml @@ -36,8 +36,8 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh + - name: Install the latest version of uv + uses: astral-sh/setup-uv@v6 - name: Install dependencies run: | @@ -51,6 +51,7 @@ jobs: if [[ "${{ matrix.python-version }}" == "3.9" ]]; then pytest tests/unittests \ --ignore=tests/unittests/a2a \ + --ignore=tests/unittests/tools/mcp_tool \ --ignore=tests/unittests/artifacts/test_artifact_service.py \ --ignore=tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py else diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 2e258857f..937a3d7d2 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -40,4 +40,5 @@ jobs: ISSUE_TITLE: ${{ github.event.issue.title }} ISSUE_BODY: ${{ github.event.issue.body }} ISSUE_COUNT_TO_PROCESS: '3' # Process 3 issues at a time on schedule - run: python contributing/samples/adk_triaging_agent/main.py + PYTHONPATH: contributing/samples + run: python -m adk_triaging_agent.main diff --git a/.gitignore b/.gitignore index 6fb068d48..6f398cbf9 100644 --- a/.gitignore +++ b/.gitignore @@ -82,6 +82,7 @@ log/ .env.development.local .env.test.local .env.production.local +uv.lock # Google Cloud specific .gcloudignore diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..70ce7365f --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,114 @@ +# Gemini CLI / Gemini Code Assist Context + +This document provides context for the Gemini CLI and Gemini Code Assist to understand the project and assist with development. + +## Project Overview + +The Agent Development Kit (ADK) is an open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows. + +## ADK: Style Guides + +### Python Style Guide + +The project follows the Google Python Style Guide. Key conventions are enforced using `pylint` with the provided `pylintrc` configuration file. Here are some of the key style points: + +* **Indentation**: 2 spaces. +* **Line Length**: Maximum 80 characters. +* **Naming Conventions**: + * `function_and_variable_names`: `snake_case` + * `ClassNames`: `CamelCase` + * `CONSTANTS`: `UPPERCASE_SNAKE_CASE` +* **Docstrings**: Required for all public modules, functions, classes, and methods. +* **Imports**: Organized and sorted. +* **Error Handling**: Specific exceptions should be caught, not general ones like `Exception`. + +### Autoformat + +We have autoformat.sh to help solve import organize and formatting issues. + +```bash +# Run in open_source_workspace/ +$ ./autoformat.sh +``` + +### In ADK source + +Below styles applies to the ADK source code (under `src/` folder of the Github. +repo). + +#### Use relative imports + +```python +# DO +from ..agents.llm_agent import LlmAgent + +# DON'T +from google.adk.agents.llm_agent import LlmAgent +``` + +#### Import from module, not from `__init__.py` + +```python +# DO +from ..agents.llm_agent import LlmAgent + +# DON'T +from ..agents import LlmAgent # import from agents/__init__.py +``` + +#### Always do `from __future__ import annotations` + +```python +# DO THIS, right after the open-source header. +from __future__ import annotations +``` + +Like below: + +```python +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +# ... the rest of the file. +``` + +This allows us to forward-reference a class without quotes. + +Check out go/pep563 for details. + +### In ADK tests + +#### Use absolute imports + +In tests, we use `google.adk` same as how our users uses. + +```python +# DO +from google.adk.agents.llm_agent import LlmAgent + +# DON'T +from ..agents.llm_agent import LlmAgent +``` + +## ADK: Local testing + +### Unit tests + +Run below command: + +```bash +$ pytest tests/unittests +``` diff --git a/CHANGELOG.md b/CHANGELOG.md index 04740bb7a..b6bba2692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,84 @@ # Changelog +## [1.5.0](https://github.com/google/adk-python/compare/v1.4.2...v1.5.0) (2025-06-25) + + +### Features + +* Add a new option `eval_storage_uri` in adk web & adk eval to specify GCS bucket to store eval data ([fa025d7](https://github.com/google/adk-python/commit/fa025d755978e1506fa0da1fecc49775bebc1045)) +* Add ADK examples for litellm with add_function_to_prompt ([f33e090](https://github.com/google/adk-python/commit/f33e0903b21b752168db3006dd034d7d43f7e84d)) +* Add implementation of VertexAiMemoryBankService and support in FastAPI endpoint ([abc89d2](https://github.com/google/adk-python/commit/abc89d2c811ba00805f81b27a3a07d56bdf55a0b)) +* Add rouge_score library to ADK eval dependencies, and implement RougeEvaluator that is computes ROUGE-1 for "response_match_score" metric ([9597a44](https://github.com/google/adk-python/commit/9597a446fdec63ad9e4c2692d6966b14f80ff8e2)) +* Add usage span attributes to telemetry ([#356](https://github.com/google/adk-python/issues/356)) ([ea69c90](https://github.com/google/adk-python/commit/ea69c9093a16489afdf72657136c96f61c69cafd)) +* Add Vertex Express mode compatibility for VertexAiSessionService ([00cc8cd](https://github.com/google/adk-python/commit/00cc8cd6433fc45ecfc2dbaa04dbbc1a81213b4d)) + + +### Bug Fixes + +* Include current turn context when include_contents='none' ([9e473e0](https://github.com/google/adk-python/commit/9e473e0abdded24e710fd857782356c15d04b515)) +* Make LiteLLM streaming truly asynchronous ([bd67e84](https://github.com/google/adk-python/commit/bd67e8480f6e8b4b0f8c22b94f15a8cda1336339)) +* Make raw_auth_credential and exchanged_auth_credential optional given their default value is None ([acbdca0](https://github.com/google/adk-python/commit/acbdca0d8400e292ba5525931175e0d6feab15f1)) +* Minor typo fix in the agent instruction ([ef3c745](https://github.com/google/adk-python/commit/ef3c745d655538ebd1ed735671be615f842341a8)) +* Typo fix in sample agent instruction ([ef3c745](https://github.com/google/adk-python/commit/ef3c745d655538ebd1ed735671be615f842341a8)) +* Update contributing links ([a1e1441](https://github.com/google/adk-python/commit/a1e14411159fd9f3e114e15b39b4949d0fd6ecb1)) +* Use starred tuple unpacking on GCS artifact blob names ([3b1d9a8](https://github.com/google/adk-python/commit/3b1d9a8a3e631ca2d86d30f09640497f1728986c)) + + +### Chore + +* Do not send api request when session does not have events ([88a4402](https://github.com/google/adk-python/commit/88a4402d142672171d0a8ceae74671f47fa14289)) +* Leverage official uv action for install([09f1269](https://github.com/google/adk-python/commit/09f1269bf7fa46ab4b9324e7f92b4f70ffc923e5)) +* Update google-genai package and related deps to latest([ed7a21e](https://github.com/google/adk-python/commit/ed7a21e1890466fcdf04f7025775305dc71f603d)) +* Add credential service backed by session state([29cd183](https://github.com/google/adk-python/commit/29cd183aa1b47dc4f5d8afe22f410f8546634abc)) +* Clarify the behavior of Event.invocation_id([f033e40](https://github.com/google/adk-python/commit/f033e405c10ff8d86550d1419a9d63c0099182f9)) +* Send user message to the agent that returned a corresponding function call if user message is a function response([7c670f6](https://github.com/google/adk-python/commit/7c670f638bc17374ceb08740bdd057e55c9c2e12)) +* Add request converter to convert a2a request to ADK request([fb13963](https://github.com/google/adk-python/commit/fb13963deda0ff0650ac27771711ea0411474bf5)) +* Support allow_origins in cloud_run deployment ([2fd8feb](https://github.com/google/adk-python/commit/2fd8feb65d6ae59732fb3ec0652d5650f47132cc)) + +## [1.4.2](https://github.com/google/adk-python/compare/v1.4.1...v1.4.2) (2025-06-20) + + +### Bug Fixes + +* Add type checking to handle different response type of genai API client ([4d72d31](https://github.com/google/adk-python/commit/4d72d31b13f352245baa72b78502206dcbe25406)) + * This fixes the broken VertexAiSessionService +* Allow more credentials types for BigQuery tools ([2f716ad](https://github.com/google/adk-python/commit/2f716ada7fbcf8e03ff5ae16ce26a80ca6fd7bf6)) + +## [1.4.1](https://github.com/google/adk-python/compare/v1.3.0...v1.4.1) (2025-06-18) + + +### Features + +* Add Authenticated Tool (Experimental) ([dcea776](https://github.com/google/adk-python/commit/dcea7767c67c7edfb694304df32dca10b74c9a71)) +* Add enable_affective_dialog and proactivity to run_config and llm_request ([fe1d5aa](https://github.com/google/adk-python/commit/fe1d5aa439cc56b89d248a52556c0a9b4cbd15e4)) +* Add import session API in the fast API ([233fd20](https://github.com/google/adk-python/commit/233fd2024346abd7f89a16c444de0cf26da5c1a1)) +* Add integration tests for litellm with and without turning on add_function_to_prompt ([8e28587](https://github.com/google/adk-python/commit/8e285874da7f5188ea228eb4d7262dbb33b1ae6f)) +* Allow data_store_specs pass into ADK VAIS built-in tool ([675faef](https://github.com/google/adk-python/commit/675faefc670b5cd41991939fe0fc604df331111a)) +* Enable MCP Tool Auth (Experimental) ([157d9be](https://github.com/google/adk-python/commit/157d9be88d92f22320604832e5a334a6eb81e4af)) +* Implement GcsEvalSetResultsManager to handle storage of eval sets on GCS, and refactor eval set results manager ([0a5cf45](https://github.com/google/adk-python/commit/0a5cf45a75aca7b0322136b65ca5504a0c3c7362)) +* Re-factor some eval sets manager logic, and implement GcsEvalSetsManager to handle storage of eval sets on GCS ([1551bd4](https://github.com/google/adk-python/commit/1551bd4f4d7042fffb497d9308b05f92d45d818f)) +* Support real time input config ([d22920b](https://github.com/google/adk-python/commit/d22920bd7f827461afd649601326b0c58aea6716)) +* Support refresh access token automatically for rest_api_tool ([1779801](https://github.com/google/adk-python/commit/177980106b2f7be9a8c0a02f395ff0f85faa0c5a)) + +### Bug Fixes + +* Fix Agent generate config err ([#1305](https://github.com/google/adk-python/issues/1305)) ([badbcbd](https://github.com/google/adk-python/commit/badbcbd7a464e6b323cf3164d2bcd4e27cbc057f)) +* Fix Agent generate config error ([#1450](https://github.com/google/adk-python/issues/1450)) ([694b712](https://github.com/google/adk-python/commit/694b71256c631d44bb4c4488279ea91d82f43e26)) +* Fix liteLLM test failures ([fef8778](https://github.com/google/adk-python/commit/fef87784297b806914de307f48c51d83f977298f)) +* Fix tracing for live ([58e07ca](https://github.com/google/adk-python/commit/58e07cae83048d5213d822be5197a96be9ce2950)) +* Merge custom http options with adk specific http options in model api request ([4ccda99](https://github.com/google/adk-python/commit/4ccda99e8ec7aa715399b4b83c3f101c299a95e8)) +* Remove unnecessary double quote on Claude docstring ([bbceb4f](https://github.com/google/adk-python/commit/bbceb4f2e89f720533b99cf356c532024a120dc4)) +* Set explicit project in the BigQuery client ([6d174eb](https://github.com/google/adk-python/commit/6d174eba305a51fcf2122c0fd481378752d690ef)) +* Support streaming in litellm + adk and add corresponding integration tests ([aafa80b](https://github.com/google/adk-python/commit/aafa80bd85a49fb1c1a255ac797587cffd3fa567)) +* Support project-based gemini model path to use google_search_tool ([b2fc774](https://github.com/google/adk-python/commit/b2fc7740b363a4e33ec99c7377f396f5cee40b5a)) +* Update conversion between Celsius and Fahrenheit ([1ae176a](https://github.com/google/adk-python/commit/1ae176ad2fa2b691714ac979aec21f1cf7d35e45)) + +### Chores + +* Set `agent_engine_id` in the VertexAiSessionService constructor, also use the `agent_engine_id` field instead of overriding `app_name` in FastAPI endpoint ([fc65873](https://github.com/google/adk-python/commit/fc65873d7c31be607f6cd6690f142a031631582a)) + + + ## [1.3.0](https://github.com/google/adk-python/compare/v1.2.1...v1.3.0) (2025-06-11) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c0f3d0069..733f1143b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -49,6 +49,7 @@ This project follows ## Requirement for PRs +- Each PR should only have one commit. Please squash it if there are multiple PRs. - All PRs, other than small documentation or typo fixes, should have a Issue assoicated. If not, please create one. - Small, focused PRs. Keep changes minimalβ€”one concern per PR. - For bug fixes or features, please provide logs or screenshot after the fix is applied to help reviewers better understand the fix. @@ -147,11 +148,11 @@ For any changes that impact user-facing documentation (guides, API reference, tu pytest ./tests/unittests ``` - NOTE: for accurately repro test failure, only include `test` and `eval` as - extra dependencies. + NOTE: for accurate repro of test failure, only include `test`, `eval` and + `a2a` as extra dependencies. ```shell - uv sync --extra test --extra eval + uv sync --extra test --extra eval --extra a2a pytest ./tests/unittests ``` @@ -200,7 +201,7 @@ For any changes that impact user-facing documentation (guides, API reference, tu ## Contributing Resources -[Contributing folder](https://github.com/google/adk-python/tree/main/contributing/samples) has resources that is helpful for contributors. +[Contributing folder](https://github.com/google/adk-python/tree/main/contributing) has resources that is helpful for contributors. ## Code reviews diff --git a/README.md b/README.md index 7bd5e7401..874658d07 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ adk eval \ ## 🀝 Contributing We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our -- [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions). +- [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/). - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started. ## πŸ“„ License diff --git a/contributing/samples/a2a_auth/README.md b/contributing/samples/a2a_auth/README.md new file mode 100644 index 000000000..00382661c --- /dev/null +++ b/contributing/samples/a2a_auth/README.md @@ -0,0 +1,183 @@ +# A2A OAuth Authentication Sample Agent + +This sample demonstrates the **Agent-to-Agent (A2A)** architecture with **OAuth Authentication** workflows in the Agent Development Kit (ADK). The sample implements a multi-agent system where a remote agent can surface OAuth authentication requests to the local agent, which then guides the end user through the OAuth flow before returning the authentication credentials to the remote agent for API access. + +## Overview + +The A2A OAuth Authentication sample consists of: + +- **Root Agent** (`root_agent`): The main orchestrator that handles user requests and delegates tasks to specialized agents +- **YouTube Search Agent** (`youtube_search_agent`): A local agent that handles YouTube video searches using LangChain tools +- **BigQuery Agent** (`bigquery_agent`): A remote A2A agent that manages BigQuery operations and requires OAuth authentication for Google Cloud access + +## Architecture + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ End User │───▢│ Root Agent │───▢│ BigQuery Agent β”‚ +β”‚ (OAuth Flow) β”‚ β”‚ (Local) β”‚ β”‚ (Remote A2A) β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ (localhost:8001) β”‚ +β”‚ OAuth UI │◀───│ │◀───│ OAuth Request β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +## Key Features + +### 1. **Multi-Agent Architecture** +- Root agent coordinates between local YouTube search and remote BigQuery operations +- Demonstrates hybrid local/remote agent workflows +- Seamless task delegation based on user request types + +### 2. **OAuth Authentication Workflow** +- Remote BigQuery agent surfaces OAuth authentication requests to the root agent +- Root agent guides end users through Google OAuth flow for BigQuery access +- Secure token exchange between agents for authenticated API calls + +### 3. **Google Cloud Integration** +- BigQuery toolset with comprehensive dataset and table management capabilities +- OAuth-protected access to user's Google Cloud BigQuery resources +- Support for listing, creating, and managing datasets and tables + +### 4. **LangChain Tool Integration** +- YouTube search functionality using LangChain community tools +- Demonstrates integration of third-party tools in agent workflows + +## Setup and Usage + +### Prerequisites + +1. **Set up OAuth Credentials**: + ```bash + export OAUTH_CLIENT_ID=your_google_oauth_client_id + export OAUTH_CLIENT_SECRET=your_google_oauth_client_secret + ``` + +2. **Start the Remote BigQuery Agent server**: + ```bash + # Start the remote a2a server that serves the BigQuery agent on port 8001 + adk api_server --a2a --port 8001 contributing/samples/a2a_auth/remote_a2a + ``` + +3. **Run the Main Agent**: + ```bash + # In a separate terminal, run the adk web server + adk web contributing/samples/ + ``` + +### Example Interactions + +Once both services are running, you can interact with the root agent: + +**YouTube Search (No Authentication Required):** +``` +User: Search for 3 Taylor Swift music videos +Agent: I'll help you search for Taylor Swift music videos on YouTube. +[Agent delegates to YouTube Search Agent] +Agent: I found 3 Taylor Swift music videos: +1. "Anti-Hero" - Official Music Video +2. "Shake It Off" - Official Music Video +3. "Blank Space" - Official Music Video +``` + +**BigQuery Operations (OAuth Required):** +``` +User: List my BigQuery datasets +Agent: I'll help you access your BigQuery datasets. This requires authentication with your Google account. +[Agent delegates to BigQuery Agent] +Agent: To access your BigQuery data, please complete the OAuth authentication. +[OAuth flow initiated - user redirected to Google authentication] +User: [Completes OAuth flow in browser] +Agent: Authentication successful! Here are your BigQuery datasets: +- dataset_1: Customer Analytics +- dataset_2: Sales Data +- dataset_3: Marketing Metrics +``` + +**Dataset Management:** +``` +User: Show me details for my Customer Analytics dataset +Agent: I'll get the details for your Customer Analytics dataset. +[Using existing OAuth token] +Agent: Customer Analytics Dataset Details: +- Created: 2024-01-15 +- Location: US +- Tables: 5 +- Description: Customer behavior and analytics data +``` + +## Code Structure + +### Main Agent (`agent.py`) + +- **`youtube_search_agent`**: Local agent with LangChain YouTube search tool +- **`bigquery_agent`**: Remote A2A agent configuration for BigQuery operations +- **`root_agent`**: Main orchestrator with task delegation logic + +### Remote BigQuery Agent (`remote_a2a/bigquery_agent/`) + +- **`agent.py`**: Implementation of the BigQuery agent with OAuth toolset +- **`agent.json`**: Agent card of the A2A agent +- **`BigQueryToolset`**: OAuth-enabled tools for BigQuery dataset and table management + +## OAuth Authentication Workflow + +The OAuth authentication process follows this pattern: + +1. **Initial Request**: User requests BigQuery operation through root agent +2. **Delegation**: Root agent delegates to remote BigQuery agent +3. **Auth Check**: BigQuery agent checks for valid OAuth token +4. **Auth Request**: If no token, agent surfaces OAuth request to root agent +5. **User OAuth**: Root agent guides user through Google OAuth flow +6. **Token Exchange**: Root agent sends OAuth token to BigQuery agent +7. **API Call**: BigQuery agent uses token to make authenticated API calls +8. **Result Return**: BigQuery agent returns results through root agent to user + +## Supported BigQuery Operations + +The BigQuery agent supports the following operations: + +### Dataset Operations: +- **List Datasets**: `bigquery_datasets_list` - Get all user's datasets +- **Get Dataset**: `bigquery_datasets_get` - Get specific dataset details +- **Create Dataset**: `bigquery_datasets_insert` - Create new dataset + +### Table Operations: +- **List Tables**: `bigquery_tables_list` - Get tables in a dataset +- **Get Table**: `bigquery_tables_get` - Get specific table details +- **Create Table**: `bigquery_tables_insert` - Create new table in dataset + +## Extending the Sample + +You can extend this sample by: + +- Adding more Google Cloud services (Cloud Storage, Compute Engine, etc.) +- Implementing token refresh and expiration handling +- Adding role-based access control for different BigQuery operations +- Creating OAuth flows for other providers (Microsoft, Facebook, etc.) +- Adding audit logging for authentication events +- Implementing multi-tenant OAuth token management + +## Troubleshooting + +**Connection Issues:** +- Ensure the local ADK web server is running on port 8000 +- Ensure the remote A2A server is running on port 8001 +- Check that no firewall is blocking localhost connections +- Verify the agent.json URL matches the running A2A server + +**OAuth Issues:** +- Verify OAuth client ID and secret are correctly set in .env file +- Ensure OAuth redirect URIs are properly configured in Google Cloud Console +- Check that the OAuth scopes include BigQuery access permissions +- Verify the user has access to the BigQuery projects/datasets + +**BigQuery Access Issues:** +- Ensure the authenticated user has BigQuery permissions +- Check that the Google Cloud project has BigQuery API enabled +- Verify dataset and table names are correct and accessible +- Check for quota limits on BigQuery API calls + +**Agent Communication Issues:** +- Check the logs for both the local ADK web server and remote A2A server +- Verify OAuth tokens are properly passed between agents +- Ensure agent instructions are clear about authentication requirements diff --git a/contributing/samples/bigquery_agent/__init__.py b/contributing/samples/a2a_auth/__init__.py similarity index 100% rename from contributing/samples/bigquery_agent/__init__.py rename to contributing/samples/a2a_auth/__init__.py diff --git a/contributing/samples/a2a_auth/agent.py b/contributing/samples/a2a_auth/agent.py new file mode 100644 index 000000000..f914d0c0a --- /dev/null +++ b/contributing/samples/a2a_auth/agent.py @@ -0,0 +1,62 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from google.adk.agents import Agent +from google.adk.agents.remote_a2a_agent import RemoteA2aAgent +from google.adk.tools.langchain_tool import LangchainTool +from langchain_community.tools import YouTubeSearchTool + +# Instantiate the tool +langchain_yt_tool = YouTubeSearchTool() + +# Wrap the tool in the LangchainTool class from ADK +adk_yt_tool = LangchainTool( + tool=langchain_yt_tool, +) + +youtube_search_agent = Agent( + name="youtube_search_agent", + model="gemini-2.0-flash", # Replace with the actual model name + instruction=""" + Ask customer to provide singer name, and the number of videos to search. + """, + description="Help customer to search for a video on Youtube.", + tools=[adk_yt_tool], + output_key="youtube_search_output", +) + +bigquery_agent = RemoteA2aAgent( + name="bigquery_agent", + description="Help customer to manage notion workspace.", + agent_card=( + "http://localhost:8001/a2a/bigquery_agent/.well-known/agent.json" + ), +) + +root_agent = Agent( + model="gemini-2.0-flash", + name="root_agent", + instruction=""" + You are a helpful assistant that can help search youtube videos, look up BigQuery datasets and tables. + You delegate youtube search tasks to the youtube_search_agent. + You delegate BigQuery tasks to the bigquery_agent. + Always clarify the results before proceeding. + """, + global_instruction=( + "You are a helpful assistant that can help search youtube videos, look" + " up BigQuery datasets and tables." + ), + sub_agents=[youtube_search_agent, bigquery_agent], +) diff --git a/contributing/samples/live_bidi_streaming_agent/__init__.py b/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from contributing/samples/live_bidi_streaming_agent/__init__.py rename to contributing/samples/a2a_auth/remote_a2a/bigquery_agent/__init__.py diff --git a/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.json b/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.json new file mode 100644 index 000000000..2e11e74fa --- /dev/null +++ b/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.json @@ -0,0 +1,29 @@ +{ + "capabilities": {}, + "defaultInputModes": ["text/plain"], + "defaultOutputModes": ["application/json"], + "description": "A Google BigQuery agent that helps manage users' data on Google BigQuery. Can list, get, and create datasets, as well as manage tables within datasets. Supports OAuth authentication for secure access to BigQuery resources.", + "name": "bigquery_agent", + "skills": [ + { + "id": "dataset_management", + "name": "Dataset Management", + "description": "List, get details, and create BigQuery datasets", + "tags": ["bigquery", "datasets", "google-cloud"] + }, + { + "id": "table_management", + "name": "Table Management", + "description": "List, get details, and create BigQuery tables within datasets", + "tags": ["bigquery", "tables", "google-cloud"] + }, + { + "id": "oauth_authentication", + "name": "OAuth Authentication", + "description": "Secure authentication with Google BigQuery using OAuth", + "tags": ["authentication", "oauth", "security"] + } + ], + "url": "http://localhost:8000/a2a/bigquery_agent", + "version": "1.0.0" +} diff --git a/contributing/samples/bigquery_agent/agent.py b/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.py similarity index 100% rename from contributing/samples/bigquery_agent/agent.py rename to contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.py diff --git a/contributing/samples/a2a_basic/README.md b/contributing/samples/a2a_basic/README.md new file mode 100644 index 000000000..d2bc84b0c --- /dev/null +++ b/contributing/samples/a2a_basic/README.md @@ -0,0 +1,120 @@ +# A2A Basic Sample Agent + +This sample demonstrates the **Agent-to-Agent (A2A)** architecture in the Agent Development Kit (ADK), showcasing how multiple agents can work together to handle complex tasks. The sample implements an agent that can roll dice and check if numbers are prime. + +## Overview + +The A2A Basic sample consists of: + +- **Root Agent** (`root_agent`): The main orchestrator that delegates tasks to specialized sub-agents +- **Roll Agent** (`roll_agent`): A local sub-agent that handles dice rolling operations +- **Prime Agent** (`prime_agent`): A remote A2A agent that checks if numbers are prime, this agent is running on a separate A2A server + +## Architecture + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Root Agent │───▢│ Roll Agent β”‚ β”‚ Remote Prime β”‚ +β”‚ (Local) β”‚ β”‚ (Local) β”‚ β”‚ Agent β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ (localhost:8001) β”‚ +β”‚ │───▢│ │◀───│ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +## Key Features + +### 1. **Local Sub-Agent Integration** +- The `roll_agent` demonstrates how to create and integrate local sub-agents +- Handles dice rolling with configurable number of sides +- Uses a simple function tool (`roll_die`) for random number generation + +### 2. **Remote A2A Agent Integration** +- The `prime_agent` shows how to connect to remote agent services +- Communicates with a separate service via HTTP at `http://localhost:8001/a2a/check_prime_agent` +- Demonstrates cross-service agent communication + +### 3. **Agent Orchestration** +- The root agent intelligently delegates tasks based on user requests +- Can chain operations (e.g., "roll a die and check if it's prime") +- Provides clear workflow coordination between multiple agents + +### 4. **Example Tool Integration** +- Includes an `ExampleTool` with sample interactions for context +- Helps the agent understand expected behavior patterns + +## Setup and Usage + +### Prerequisites + +1. **Start the Remote Prime Agent server**: + ```bash + # Start the remote a2a server that serves the check prime agent on port 8001 + adk api_server --a2a --port 8001 contributing/samples/a2a_basic/remote_a2a + ``` + +2. **Run the Main Agent**: + ```bash + # In a separate terminal, run the adk web server + adk web contributing/samples/ + ``` + +### Example Interactions + +Once both services are running, you can interact with the root agent: + +**Simple Dice Rolling:** +``` +User: Roll a 6-sided die +Bot: I rolled a 4 for you. +``` + +**Prime Number Checking:** +``` +User: Is 7 a prime number? +Bot: Yes, 7 is a prime number. +``` + +**Combined Operations:** +``` +User: Roll a 10-sided die and check if it's prime +Bot: I rolled an 8 for you. +Bot: 8 is not a prime number. +``` + +## Code Structure + +### Main Agent (`agent.py`) + +- **`roll_die(sides: int)`**: Function tool for rolling dice +- **`roll_agent`**: Local agent specialized in dice rolling +- **`prime_agent`**: Remote A2A agent configuration +- **`root_agent`**: Main orchestrator with delegation logic + +### Remote Prime Agent (`remote_a2a/check_prime_agent/`) + +- **`agent.py`**: Implementation of the prime checking service +- **`agent.json`**: Agent card of the A2A agent +- **`check_prime(nums: list[int])`**: Prime number checking algorithm + + +## Extending the Sample + +You can extend this sample by: + +- Adding more mathematical operations (factorization, square roots, etc.) +- Creating additional remote agent +- Implementing more complex delegation logic +- Adding persistent state management +- Integrating with external APIs or databases + +## Troubleshooting + +**Connection Issues:** +- Ensure the local ADK web server is running on port 8000 +- Ensure the remote A2A server is running on port 8001 +- Check that no firewall is blocking localhost connections +- Verify the agent.json URL matches the running A2A server + +**Agent Not Responding:** +- Check the logs for both the local ADK web server on port 8000 and remote A2A server on port 8001 +- Verify the agent instructions are clear and unambiguous diff --git a/contributing/samples/a2a_basic/__init__.py b/contributing/samples/a2a_basic/__init__.py new file mode 100755 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/a2a_basic/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/a2a_basic/agent.py b/contributing/samples/a2a_basic/agent.py new file mode 100755 index 000000000..275511f4d --- /dev/null +++ b/contributing/samples/a2a_basic/agent.py @@ -0,0 +1,120 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from google.adk.agents import Agent +from google.adk.agents.remote_a2a_agent import RemoteA2aAgent +from google.adk.tools.example_tool import ExampleTool +from google.genai import types + + +# --- Roll Die Sub-Agent --- +def roll_die(sides: int) -> int: + """Roll a die and return the rolled result.""" + return random.randint(1, sides) + + +roll_agent = Agent( + name="roll_agent", + description="Handles rolling dice of different sizes.", + instruction=""" + You are responsible for rolling dice based on the user's request. + When asked to roll a die, you must call the roll_die tool with the number of sides as an integer. + """, + tools=[roll_die], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) + + +example_tool = ExampleTool([ + { + "input": { + "role": "user", + "parts": [{"text": "Roll a 6-sided die."}], + }, + "output": [ + {"role": "model", "parts": [{"text": "I rolled a 4 for you."}]} + ], + }, + { + "input": { + "role": "user", + "parts": [{"text": "Is 7 a prime number?"}], + }, + "output": [{ + "role": "model", + "parts": [{"text": "Yes, 7 is a prime number."}], + }], + }, + { + "input": { + "role": "user", + "parts": [{"text": "Roll a 10-sided die and check if it's prime."}], + }, + "output": [ + { + "role": "model", + "parts": [{"text": "I rolled an 8 for you."}], + }, + { + "role": "model", + "parts": [{"text": "8 is not a prime number."}], + }, + ], + }, +]) + +prime_agent = RemoteA2aAgent( + name="prime_agent", + description="Agent that handles checking if numbers are prime.", + agent_card=( + "http://localhost:8001/a2a/check_prime_agent/.well-known/agent.json" + ), +) + + +root_agent = Agent( + model="gemini-1.5-flash", + name="root_agent", + instruction=""" + You are a helpful assistant that can roll dice and check if numbers are prime. + You delegate rolling dice tasks to the roll_agent and prime checking tasks to the prime_agent. + Follow these steps: + 1. If the user asks to roll a die, delegate to the roll_agent. + 2. If the user asks to check primes, delegate to the prime_agent. + 3. If the user asks to roll a die and then check if the result is prime, call roll_agent first, then pass the result to prime_agent. + Always clarify the results before proceeding. + """, + global_instruction=( + "You are DicePrimeBot, ready to roll dice and check prime numbers." + ), + sub_agents=[roll_agent, prime_agent], + tools=[example_tool], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) diff --git a/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/__init__.py b/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/__init__.py new file mode 100755 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/agent.json b/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/agent.json new file mode 100644 index 000000000..e625bc343 --- /dev/null +++ b/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/agent.json @@ -0,0 +1,17 @@ +{ + "capabilities": {}, + "defaultInputModes": ["text/plain"], + "defaultOutputModes": ["application/json"], + "description": "An agent specialized in checking whether numbers are prime. It can efficiently determine the primality of individual numbers or lists of numbers.", + "name": "check_prime_agent", + "skills": [ + { + "id": "prime_checking", + "name": "Prime Number Checking", + "description": "Check if numbers in a list are prime using efficient mathematical algorithms", + "tags": ["mathematical", "computation", "prime", "numbers"] + } + ], + "url": "http://localhost:8001/a2a/check_prime_agent", + "version": "1.0.0" +} diff --git a/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/agent.py b/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/agent.py new file mode 100755 index 000000000..1a7cd5565 --- /dev/null +++ b/contributing/samples/a2a_basic/remote_a2a/check_prime_agent/agent.py @@ -0,0 +1,75 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from google.adk import Agent +from google.adk.tools.tool_context import ToolContext +from google.genai import types + + +async def check_prime(nums: list[int]) -> str: + """Check if a given list of numbers are prime. + + Args: + nums: The list of numbers to check. + + Returns: + A str indicating which number is prime. + """ + primes = set() + for number in nums: + number = int(number) + if number <= 1: + continue + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + primes.add(number) + return ( + 'No prime numbers found.' + if not primes + else f"{', '.join(str(num) for num in primes)} are prime numbers." + ) + + +root_agent = Agent( + model='gemini-2.0-flash', + name='check_prime_agent', + description='check prime agent that can check whether numbers are prime.', + instruction=""" + You check whether numbers are prime. + When checking prime numbers, call the check_prime tool with a list of integers. Be sure to pass in a list of integers. You should never pass in a string. + You should not rely on the previous history on prime results. + """, + tools=[ + check_prime, + ], + # planner=BuiltInPlanner( + # thinking_config=types.ThinkingConfig( + # include_thoughts=True, + # ), + # ), + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) diff --git a/contributing/samples/a2a_human_in_loop/README.md b/contributing/samples/a2a_human_in_loop/README.md new file mode 100644 index 000000000..9cbce9c90 --- /dev/null +++ b/contributing/samples/a2a_human_in_loop/README.md @@ -0,0 +1,135 @@ +# A2A Human-in-the-Loop Sample Agent + +This sample demonstrates the **Agent-to-Agent (A2A)** architecture with **Human-in-the-Loop** workflows in the Agent Development Kit (ADK). The sample implements a reimbursement processing agent that automatically handles small expenses while requiring remote agent to process for larger amounts. The remote agent will require a human approval for large amounts, thus surface this request to local agent and human interacting with local agent can approve the request. + +## Overview + +The A2A Human-in-the-Loop sample consists of: + +- **Root Agent** (`root_agent`): The main reimbursement agent that handles expense requests and delegates approval to remote Approval Agent for large amounts +- **Approval Agent** (`approval_agent`): A remote A2A agent that handles the human approval process via long-running tools (which implements asynchronous approval workflows that can pause execution and wait for human input), this agent is running on a separate A2A server + + +## Architecture + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Human Manager │───▢│ Root Agent │───▢│ Approval Agent β”‚ +β”‚ (External) β”‚ β”‚ (Local) β”‚ β”‚ (Remote A2A) β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ (localhost:8001) β”‚ +β”‚ Approval UI │◀───│ │◀───│ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +## Key Features + +### 1. **Automated Decision Making** +- Automatically approves reimbursements under $100 +- Uses business logic to determine when human intervention is required +- Provides immediate responses for simple cases + +### 2. **Human-in-the-Loop Workflow** +- Seamlessly escalates high-value requests (>$100) to remote approval agent +- Remote approval agent uses long-running tools to surface approval requests back to the root agent +- Human managers interact directly with the root agent to approve/reject requests + +### 3. **Long-Running Tool Integration** +- Demonstrates `LongRunningFunctionTool` for asynchronous operations +- Shows how to handle pending states and external updates +- Implements proper tool response handling for delayed approvals + +### 4. **Remote A2A Agent Communication** +- The approval agent runs as a separate service that processes approval workflows +- Communicates via HTTP at `http://localhost:8001/a2a/human_in_loop` +- Surfaces approval requests back to the root agent for human interaction + +## Setup and Usage + +### Prerequisites + +1. **Start the Remote Approval Agent server**: + ```bash + # Start the remote a2a server that serves the human-in-the-loop approval agent on port 8001 + adk api_server --a2a --port 8001 contributing/samples/a2a_human_in_loop/remote_a2a + ``` + +2. **Run the Main Agent**: + ```bash + # In a separate terminal, run the adk web server + adk web contributing/samples/ + ``` + +### Example Interactions + +Once both services are running, you can interact with the root agent through the approval workflow: + +**Automatic Approval (Under $100):** +``` +User: Please reimburse $50 for meals +Agent: I'll process your reimbursement request for $50 for meals. Since this amount is under $100, I can approve it automatically. +Agent: βœ… Reimbursement approved and processed: $50 for meals +``` + +**Human Approval Required (Over $100):** +``` +User: Please reimburse $200 for conference travel +Agent: I'll process your reimbursement request for $200 for conference travel. Since this amount exceeds $100, I need to get manager approval. +Agent: πŸ”„ Request submitted for approval (Ticket: reimbursement-ticket-001). Please wait for manager review. +[Human manager interacts with root agent to approve the request] +Agent: βœ… Great news! Your reimbursement has been approved by the manager. Processing $200 for conference travel. +``` + +## Code Structure + +### Main Agent (`agent.py`) + +- **`reimburse(purpose: str, amount: float)`**: Function tool for processing reimbursements +- **`approval_agent`**: Remote A2A agent configuration for human approval workflows +- **`root_agent`**: Main reimbursement agent with automatic/manual approval logic + +### Remote Approval Agent (`remote_a2a/human_in_loop/`) + +- **`agent.py`**: Implementation of the approval agent with long-running tools +- **`agent.json`**: Agent card of the A2A agent + +- **`ask_for_approval()`**: Long-running tool that handles approval requests + +## Long-Running Tool Workflow + +The human-in-the-loop process follows this pattern: + +1. **Initial Call**: Root agent delegates approval request to remote approval agent for amounts >$100 +2. **Pending Response**: Remote approval agent returns immediate response with `status: "pending"` and ticket ID and serface the approval request to root agent +3. **Agent Acknowledgment**: Root agent informs user about pending approval status +4. **Human Interaction**: Human manager interacts with root agent to review and approve/reject the request +5. **Updated Response**: Root agent receives updated tool response with approval decision and send it to remote agent +6. **Final Action**: Remote agent processes the approval and completes the reimbursement and send the result to root_agent + +## Extending the Sample + +You can extend this sample by: + +- Adding more complex approval hierarchies (multiple approval levels) +- Implementing different approval rules based on expense categories +- Creating additional remote agent for budget checking or policy validation +- Adding notification systems for approval status updates +- Integrating with external approval systems or databases +- Implementing approval timeouts and escalation procedures + +## Troubleshooting + +**Connection Issues:** +- Ensure the local ADK web server is running on port 8000 +- Ensure the remote A2A server is running on port 8001 +- Check that no firewall is blocking localhost connections +- Verify the agent.json URL matches the running A2A server + +**Agent Not Responding:** +- Check the logs for both the local ADK web server on port 8000 and remote A2A server on port 8001 +- Verify the agent instructions are clear and unambiguous +- Ensure long-running tool responses are properly formatted with matching IDs + +**Approval Workflow Issues:** +- Verify that updated tool responses use the same `id` and `name` as the original function call +- Check that the approval status is correctly updated in the tool response +- Ensure the human approval process is properly simulated or integrated diff --git a/contributing/samples/a2a_human_in_loop/__init__.py b/contributing/samples/a2a_human_in_loop/__init__.py new file mode 100644 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/a2a_human_in_loop/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/a2a_human_in_loop/agent.py b/contributing/samples/a2a_human_in_loop/agent.py new file mode 100644 index 000000000..d15b5bb3f --- /dev/null +++ b/contributing/samples/a2a_human_in_loop/agent.py @@ -0,0 +1,49 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from google.adk import Agent +from google.adk.agents.remote_a2a_agent import RemoteA2aAgent +from google.genai import types + + +def reimburse(purpose: str, amount: float) -> str: + """Reimburse the amount of money to the employee.""" + return { + 'status': 'ok', + } + + +approval_agent = RemoteA2aAgent( + name='approval_agent', + description='Help approve the reimburse if the amount is greater than 100.', + agent_card='http://localhost:8001/a2a/human_in_loop/.well-known/agent.json', +) + + +root_agent = Agent( + model='gemini-1.5-flash', + name='reimbursement_agent', + instruction=""" + You are an agent whose job is to handle the reimbursement process for + the employees. If the amount is less than $100, you will automatically + approve the reimbursement. And call reimburse() to reimburse the amount to the employee. + + If the amount is greater than $100. You will hand over the request to + approval_agent to handle the reimburse. +""", + tools=[reimburse], + sub_agents=[approval_agent], + generate_content_config=types.GenerateContentConfig(temperature=0.1), +) diff --git a/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/__init__.py b/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/__init__.py new file mode 100644 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/agent.json b/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/agent.json new file mode 100644 index 000000000..17153b7cf --- /dev/null +++ b/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/agent.json @@ -0,0 +1,29 @@ +{ + "capabilities": {}, + "defaultInputModes": ["text/plain"], + "defaultOutputModes": ["application/json"], + "description": "A reimbursement agent that handles employee expense reimbursement requests. Automatically approves amounts under $100 and requires manager approval for larger amounts using long-running tools for human-in-the-loop workflows.", + "name": "reimbursement_agent", + "skills": [ + { + "id": "automatic_reimbursement", + "name": "Automatic Reimbursement", + "description": "Automatically process and approve reimbursements under $100", + "tags": ["reimbursement", "automation", "finance"] + }, + { + "id": "approval_workflow", + "name": "Approval Workflow", + "description": "Request manager approval for reimbursements over $100 using long-running tools", + "tags": ["approval", "workflow", "human-in-loop"] + }, + { + "id": "expense_processing", + "name": "Expense Processing", + "description": "Process employee expense claims and handle reimbursement logic", + "tags": ["expenses", "processing", "employee-services"] + } + ], + "url": "http://localhost:8000/a2a/human_in_loop", + "version": "1.0.0" +} diff --git a/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/agent.py b/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/agent.py new file mode 100644 index 000000000..acf7e4567 --- /dev/null +++ b/contributing/samples/a2a_human_in_loop/remote_a2a/human_in_loop/agent.py @@ -0,0 +1,56 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any + +from google.adk import Agent +from google.adk.tools import ToolContext +from google.adk.tools.long_running_tool import LongRunningFunctionTool +from google.genai import types + + +def reimburse(purpose: str, amount: float) -> str: + """Reimburse the amount of money to the employee.""" + return { + 'status': 'ok', + } + + +def ask_for_approval( + purpose: str, amount: float, tool_context: ToolContext +) -> dict[str, Any]: + """Ask for approval for the reimbursement.""" + return { + 'status': 'pending', + 'amount': amount, + 'ticketId': 'reimbursement-ticket-001', + } + + +root_agent = Agent( + model='gemini-1.5-flash', + name='reimbursement_agent', + instruction=""" + You are an agent whose job is to handle the reimbursement process for + the employees. If the amount is less than $100, you will automatically + approve the reimbursement. + + If the amount is greater than $100, you will + ask for approval from the manager. If the manager approves, you will + call reimburse() to reimburse the amount to the employee. If the manager + rejects, you will inform the employee of the rejection. +""", + tools=[reimburse, LongRunningFunctionTool(func=ask_for_approval)], + generate_content_config=types.GenerateContentConfig(temperature=0.1), +) diff --git a/contributing/samples/adk_issue_formatting_agent/__init__.py b/contributing/samples/adk_issue_formatting_agent/__init__.py new file mode 100644 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/adk_issue_formatting_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/adk_issue_formatting_agent/agent.py b/contributing/samples/adk_issue_formatting_agent/agent.py new file mode 100644 index 000000000..78add9b83 --- /dev/null +++ b/contributing/samples/adk_issue_formatting_agent/agent.py @@ -0,0 +1,241 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from pathlib import Path +from typing import Any + +from adk_issue_formatting_agent.settings import GITHUB_BASE_URL +from adk_issue_formatting_agent.settings import IS_INTERACTIVE +from adk_issue_formatting_agent.settings import OWNER +from adk_issue_formatting_agent.settings import REPO +from adk_issue_formatting_agent.utils import error_response +from adk_issue_formatting_agent.utils import get_request +from adk_issue_formatting_agent.utils import post_request +from adk_issue_formatting_agent.utils import read_file +from google.adk import Agent +import requests + +BUG_REPORT_TEMPLATE = read_file( + Path(__file__).parent / "../../../../.github/ISSUE_TEMPLATE/bug_report.md" +) +FREATURE_REQUEST_TEMPLATE = read_file( + Path(__file__).parent + / "../../../../.github/ISSUE_TEMPLATE/feature_request.md" +) + +APPROVAL_INSTRUCTION = ( + "**Do not** wait or ask for user approval or confirmation for adding the" + " comment." +) +if IS_INTERACTIVE: + APPROVAL_INSTRUCTION = ( + "Ask for user approval or confirmation for adding the comment." + ) + + +def list_open_issues(issue_count: int) -> dict[str, Any]: + """List most recent `issue_count` numer of open issues in the repo. + + Args: + issue_count: number of issues to return + + Returns: + The status of this request, with a list of issues when successful. + """ + url = f"{GITHUB_BASE_URL}/search/issues" + query = f"repo:{OWNER}/{REPO} is:open is:issue" + params = { + "q": query, + "sort": "created", + "order": "desc", + "per_page": issue_count, + "page": 1, + } + + try: + response = get_request(url, params) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + issues = response.get("items", None) + return {"status": "success", "issues": issues} + + +def get_issue(issue_number: int) -> dict[str, Any]: + """Get the details of the specified issue number. + + Args: + issue_number: issue number of the Github issue. + + Returns: + The status of this request, with the issue details when successful. + """ + url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}" + try: + response = get_request(url) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + return {"status": "success", "issue": response} + + +def add_comment_to_issue(issue_number: int, comment: str) -> dict[str, any]: + """Add the specified comment to the given issue number. + + Args: + issue_number: issue number of the Github issue + comment: comment to add + + Returns: + The the status of this request, with the applied comment when successful. + """ + print(f"Attempting to add comment '{comment}' to issue #{issue_number}") + url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/comments" + payload = {"body": comment} + + try: + response = post_request(url, payload) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + return { + "status": "success", + "added_comment": response, + } + + +def list_comments_on_issue(issue_number: int) -> dict[str, any]: + """List all comments on the given issue number. + + Args: + issue_number: issue number of the Github issue + + Returns: + The the status of this request, with the list of comments when successful. + """ + print(f"Attempting to list comments on issue #{issue_number}") + url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/comments" + + try: + response = get_request(url) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + return {"status": "success", "comments": response} + + +root_agent = Agent( + model="gemini-2.5-pro", + name="adk_issue_formatting_assistant", + description="Check ADK issue format and content.", + instruction=f""" + # 1. IDENTITY + You are an AI assistant designed to help maintain the quality and consistency of issues in our GitHub repository. + Your primary role is to act as a "GitHub Issue Format Validator." You will analyze new and existing **open** issues + to ensure they contain all the necessary information as required by our templates. You are helpful, polite, + and precise in your feedback. + + # 2. CONTEXT & RESOURCES + * **Repository:** You are operating on the GitHub repository `{OWNER}/{REPO}`. + * **Bug Report Template:** (`{BUG_REPORT_TEMPLATE}`) + * **Feature Request Template:** (`{FREATURE_REQUEST_TEMPLATE}`) + + # 3. CORE MISSION + Your goal is to check if a GitHub issue, identified as either a "bug" or a "feature request," + contains all the information required by the corresponding template. If it does not, your job is + to post a single, helpful comment asking the original author to provide the missing information. + {APPROVAL_INSTRUCTION} + + **IMPORTANT NOTE:** + * You add one comment at most each time you are invoked. + * Don't proceed to other issues which are not the target issues. + * Don't take any action on closed issues. + + # 4. BEHAVIORAL RULES & LOGIC + + ## Step 1: Identify Issue Type & Applicability + + Your first task is to determine if the issue is a valid target for validation. + + 1. **Assess Content Intent:** You must perform a quick semantic check of the issue's title, body, and comments. + If you determine the issue's content is fundamentally *not* a bug report or a feature request + (for example, it is a general question, a request for help, or a discussion prompt), then you must ignore it. + 2. **Exit Condition:** If the issue does not clearly fall into the categories of "bug" or "feature request" + based on both its labels and its content, **take no action**. + + ## Step 2: Analyze the Issue Content + + If you have determined the issue is a valid bug or feature request, your analysis depends on whether it has comments. + + **Scenario A: Issue has NO comments** + 1. Read the main body of the issue. + 2. Compare the content of the issue body against the required headings/sections in the relevant template (Bug or Feature). + 3. Check for the presence of content under each heading. A heading with no content below it is considered incomplete. + 4. If one or more sections are missing or empty, proceed to Step 3. + 5. If all sections are filled out, your task is complete. Do nothing. + + **Scenario B: Issue HAS one or more comments** + 1. First, analyze the main issue body to see which sections of the template are filled out. + 2. Next, read through **all** the comments in chronological order. + 3. As you read the comments, check if the information provided in them satisfies any of the template sections that were missing from the original issue body. + 4. After analyzing the body and all comments, determine if any required sections from the template *still* remain unaddressed. + 5. If one or more sections are still missing information, proceed to Step 3. + 6. If the issue body and comments *collectively* provide all the required information, your task is complete. Do nothing. + + ## Step 3: Formulate and Post a Comment (If Necessary) + + If you determined in Step 2 that information is missing, you must post a **single comment** on the issue. + + Please include a bolded note in your comment that this comment was added by an ADK agent. + + **Comment Guidelines:** + * **Be Polite and Helpful:** Start with a friendly tone. + * **Be Specific:** Clearly list only the sections from the template that are still missing. Do not list sections that have already been filled out. + * **Address the Author:** Mention the issue author by their username (e.g., `@username`). + * **Provide Context:** Explain *why* the information is needed (e.g., "to help us reproduce the bug" or "to better understand your request"). + * **Do not be repetitive:** If you have already commented on an issue asking for information, do not comment again unless new information has been added and it's still incomplete. + + **Example Comment for a Bug Report:** + > **Response from ADK Agent** + > + > Hello @[issue-author-username], thank you for submitting this issue! + > + > To help us investigate and resolve this bug effectively, could you please provide the missing details for the following sections of our bug report template: + > + > * **To Reproduce:** (Please provide the specific steps required to reproduce the behavior) + > * **Desktop (please complete the following information):** (Please provide OS, Python version, and ADK version) + > + > This information will give us the context we need to move forward. Thanks! + + **Example Comment for a Feature Request:** + > **Response from ADK Agent** + > + > Hi @[issue-author-username], thanks for this great suggestion! + > + > To help our team better understand and evaluate your feature request, could you please provide a bit more information on the following section: + > + > * **Is your feature request related to a problem? Please describe.** + > + > We look forward to hearing more about your idea! + + # 5. FINAL INSTRUCTION + + Execute this process for the given GitHub issue. Your final output should either be **[NO ACTION]** + if the issue is complete or invalid, or **[POST COMMENT]** followed by the exact text of the comment you will post. + + Please include your justification for your decision in your output. + """, + tools={ + list_open_issues, + get_issue, + add_comment_to_issue, + list_comments_on_issue, + }, +) diff --git a/contributing/samples/adk_issue_formatting_agent/settings.py b/contributing/samples/adk_issue_formatting_agent/settings.py new file mode 100644 index 000000000..d29bda9b7 --- /dev/null +++ b/contributing/samples/adk_issue_formatting_agent/settings.py @@ -0,0 +1,33 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from dotenv import load_dotenv + +load_dotenv(override=True) + +GITHUB_BASE_URL = "https://api.github.com" + +GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") +if not GITHUB_TOKEN: + raise ValueError("GITHUB_TOKEN environment variable not set") + +OWNER = os.getenv("OWNER", "google") +REPO = os.getenv("REPO", "adk-python") +EVENT_NAME = os.getenv("EVENT_NAME") +ISSUE_NUMBER = os.getenv("ISSUE_NUMBER") +ISSUE_COUNT_TO_PROCESS = os.getenv("ISSUE_COUNT_TO_PROCESS") + +IS_INTERACTIVE = os.environ.get("INTERACTIVE", "1").lower() in ["true", "1"] diff --git a/contributing/samples/adk_issue_formatting_agent/utils.py b/contributing/samples/adk_issue_formatting_agent/utils.py new file mode 100644 index 000000000..2ee735d3d --- /dev/null +++ b/contributing/samples/adk_issue_formatting_agent/utils.py @@ -0,0 +1,53 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any + +from adk_issue_formatting_agent.settings import GITHUB_TOKEN +import requests + +headers = { + "Authorization": f"token {GITHUB_TOKEN}", + "Accept": "application/vnd.github.v3+json", +} + + +def get_request( + url: str, params: dict[str, Any] | None = None +) -> dict[str, Any]: + if params is None: + params = {} + response = requests.get(url, headers=headers, params=params, timeout=60) + response.raise_for_status() + return response.json() + + +def post_request(url: str, payload: Any) -> dict[str, Any]: + response = requests.post(url, headers=headers, json=payload, timeout=60) + response.raise_for_status() + return response.json() + + +def error_response(error_message: str) -> dict[str, Any]: + return {"status": "error", "message": error_message} + + +def read_file(file_path: str) -> str: + """Read the content of the given file.""" + try: + with open(file_path, "r") as f: + return f.read() + except FileNotFoundError: + print(f"Error: File not found: {file_path}.") + return "" diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index ecf574572..dcd9b9580 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -12,26 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os - +from typing import Any + +from adk_triaging_agent.settings import BOT_LABEL +from adk_triaging_agent.settings import GITHUB_BASE_URL +from adk_triaging_agent.settings import IS_INTERACTIVE +from adk_triaging_agent.settings import OWNER +from adk_triaging_agent.settings import REPO +from adk_triaging_agent.utils import error_response +from adk_triaging_agent.utils import get_request +from adk_triaging_agent.utils import post_request from google.adk import Agent import requests -GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") -if not GITHUB_TOKEN: - raise ValueError("GITHUB_TOKEN environment variable not set") - -OWNER = os.getenv("OWNER", "google") -REPO = os.getenv("REPO", "adk-python") -BOT_LABEL = os.getenv("BOT_LABEL", "bot_triaged") - -BASE_URL = "https://api.github.com" - -headers = { - "Authorization": f"token {GITHUB_TOKEN}", - "Accept": "application/vnd.github.v3+json", -} - ALLOWED_LABELS = [ "documentation", "services", @@ -45,24 +38,25 @@ "web", ] - -def is_interactive(): - return os.environ.get("INTERACTIVE", "1").lower() in ["true", "1"] +APPROVAL_INSTRUCTION = ( + "Do not ask for user approval for labeling! If you can't find appropriate" + " labels for the issue, do not label it." +) +if IS_INTERACTIVE: + APPROVAL_INSTRUCTION = "Only label them when the user approves the labeling!" -def list_issues(issue_count: int): - """ - Generator to list all issues for the repository by handling pagination. +def list_unlabeled_issues(issue_count: int) -> dict[str, Any]: + """List most recent `issue_count` numer of unlabeled issues in the repo. Args: issue_count: number of issues to return + Returns: + The status of this request, with a list of issues when successful. """ + url = f"{GITHUB_BASE_URL}/search/issues" query = f"repo:{OWNER}/{REPO} is:open is:issue no:label" - - unlabelled_issues = [] - url = f"{BASE_URL}/search/issues" - params = { "q": query, "sort": "created", @@ -70,57 +64,57 @@ def list_issues(issue_count: int): "per_page": issue_count, "page": 1, } - response = requests.get(url, headers=headers, params=params, timeout=60) - response.raise_for_status() - json_response = response.json() - issues = json_response.get("items", None) - if not issues: - return [] + + try: + response = get_request(url, params) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + issues = response.get("items", None) + + unlabeled_issues = [] for issue in issues: - if not issue.get("labels", None) or len(issue["labels"]) == 0: - unlabelled_issues.append(issue) - return unlabelled_issues + if not issue.get("labels", None): + unlabeled_issues.append(issue) + return {"status": "success", "issues": unlabeled_issues} -def add_label_to_issue(issue_number: str, label: str): - """ - Add the specified label to the given issue number. +def add_label_to_issue(issue_number: int, label: str) -> dict[str, Any]: + """Add the specified label to the given issue number. Args: - issue_number: issue number of the Github issue, in string foramt. + issue_number: issue number of the Github issue. label: label to assign + + Returns: + The the status of this request, with the applied label when successful. """ print(f"Attempting to add label '{label}' to issue #{issue_number}") if label not in ALLOWED_LABELS: - error_message = ( + return error_response( f"Error: Label '{label}' is not an allowed label. Will not apply." ) - print(error_message) - return {"status": "error", "message": error_message, "applied_label": None} - url = f"{BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/labels" + url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/labels" payload = [label, BOT_LABEL] - response = requests.post(url, headers=headers, json=payload, timeout=60) - response.raise_for_status() - return response.json() + try: + response = post_request(url, payload) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + return { + "status": "success", + "message": response, + "applied_label": label, + } -approval_instruction = ( - "Only label them when the user approves the labeling!" - if is_interactive() - else ( - "Do not ask for user approval for labeling! If you can't find a" - " appropriate labels for the issue, do not label it." - ) -) root_agent = Agent( - model="gemini-2.5-pro-preview-05-06", + model="gemini-2.5-pro", name="adk_triaging_assistant", description="Triage ADK issues.", instruction=f""" - You are a Github adk-python repo triaging bot. You will help get issues, and recommend a label. - IMPORTANT: {approval_instruction} + You are a triaging bot for the Github {REPO} repo with the owner {OWNER}. You will help get issues, and recommend a label. + IMPORTANT: {APPROVAL_INSTRUCTION} Here are the rules for labeling: - If the user is asking about documentation-related questions, label it with "documentation". - If it's about session, memory services, label it with "services" @@ -138,8 +132,5 @@ def add_label_to_issue(issue_number: str, label: str): - the issue summary in a few sentence - your label recommendation and justification """, - tools=[ - list_issues, - add_label_to_issue, - ], + tools=[list_unlabeled_issues, add_label_to_issue], ) diff --git a/contributing/samples/adk_triaging_agent/main.py b/contributing/samples/adk_triaging_agent/main.py index a749b26fc..317f5893e 100644 --- a/contributing/samples/adk_triaging_agent/main.py +++ b/contributing/samples/adk_triaging_agent/main.py @@ -13,48 +13,37 @@ # limitations under the License. import asyncio -import os import time -import agent -from dotenv import load_dotenv +from adk_triaging_agent import agent +from adk_triaging_agent.settings import EVENT_NAME +from adk_triaging_agent.settings import GITHUB_BASE_URL +from adk_triaging_agent.settings import ISSUE_BODY +from adk_triaging_agent.settings import ISSUE_COUNT_TO_PROCESS +from adk_triaging_agent.settings import ISSUE_NUMBER +from adk_triaging_agent.settings import ISSUE_TITLE +from adk_triaging_agent.settings import OWNER +from adk_triaging_agent.settings import REPO +from adk_triaging_agent.utils import get_request +from adk_triaging_agent.utils import parse_number_string from google.adk.agents.run_config import RunConfig from google.adk.runners import InMemoryRunner -from google.adk.sessions import Session +from google.adk.runners import Runner from google.genai import types import requests -load_dotenv(override=True) - -OWNER = os.getenv("OWNER", "google") -REPO = os.getenv("REPO", "adk-python") -GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") -BASE_URL = "https://api.github.com" -headers = { - "Authorization": f"token {GITHUB_TOKEN}", - "Accept": "application/vnd.github.v3+json", -} - -if not GITHUB_TOKEN: - print( - "Warning: GITHUB_TOKEN environment variable not set. API calls might" - " fail." - ) +APP_NAME = "adk_triage_app" +USER_ID = "adk_triage_user" async def fetch_specific_issue_details(issue_number: int): """Fetches details for a single issue if it's unlabelled.""" - if not GITHUB_TOKEN: - print("Cannot fetch issue details: GITHUB_TOKEN is not set.") - return None - - url = f"{BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}" + url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}" print(f"Fetching details for specific issue: {url}") + try: - response = requests.get(url, headers=headers, timeout=60) - response.raise_for_status() - issue_data = response.json() - if not issue_data.get("labels") or len(issue_data["labels"]) == 0: + issue_data = get_request(url) + if not issue_data.get("labels", None): print(f"Issue #{issue_number} is unlabelled. Proceeding.") return { "number": issue_data["number"], @@ -71,94 +60,91 @@ async def fetch_specific_issue_details(issue_number: int): return None +async def call_agent_async( + runner: Runner, user_id: str, session_id: str, prompt: str +) -> str: + """Call the agent asynchronously with the user's prompt.""" + content = types.Content( + role="user", parts=[types.Part.from_text(text=prompt)] + ) + + final_response_text = "" + async for event in runner.run_async( + user_id=user_id, + session_id=session_id, + new_message=content, + run_config=RunConfig(save_input_blobs_as_artifacts=False), + ): + if ( + event.content + and event.content.parts + and hasattr(event.content.parts[0], "text") + and event.content.parts[0].text + ): + print(f"** {event.author} (ADK): {event.content.parts[0].text}") + if event.author == agent.root_agent.name: + final_response_text += event.content.parts[0].text + + return final_response_text + + async def main(): - app_name = "triage_app" - user_id_1 = "triage_user" runner = InMemoryRunner( agent=agent.root_agent, - app_name=app_name, + app_name=APP_NAME, ) - session_11 = await runner.session_service.create_session( - app_name=app_name, user_id=user_id_1 + session = await runner.session_service.create_session( + user_id=USER_ID, + app_name=APP_NAME, ) - async def run_agent_prompt(session: Session, prompt_text: str): - content = types.Content( - role="user", parts=[types.Part.from_text(text=prompt_text)] + if EVENT_NAME == "issues" and ISSUE_NUMBER: + print(f"EVENT: Processing specific issue due to '{EVENT_NAME}' event.") + issue_number = parse_number_string(ISSUE_NUMBER) + if not issue_number: + print(f"Error: Invalid issue number received: {ISSUE_NUMBER}.") + return + + specific_issue = await fetch_specific_issue_details(issue_number) + if specific_issue is None: + print( + f"No unlabelled issue details found for #{issue_number} or an error" + " occurred. Skipping agent interaction." + ) + return + + issue_title = ISSUE_TITLE or specific_issue["title"] + issue_body = ISSUE_BODY or specific_issue["body"] + prompt = ( + f"A new GitHub issue #{issue_number} has been opened or" + f' reopened. Title: "{issue_title}"\nBody:' + f' "{issue_body}"\n\nBased on the rules, recommend an' + " appropriate label and its justification." + " Then, use the 'add_label_to_issue' tool to apply the label " + "directly to this issue. Only label it, do not" + " process any other issues." ) - print(f"\n>>>> Agent Prompt: {prompt_text}") - final_agent_response_parts = [] - async for event in runner.run_async( - user_id=user_id_1, - session_id=session.id, - new_message=content, - run_config=RunConfig(save_input_blobs_as_artifacts=False), - ): - if event.content.parts and event.content.parts[0].text: - print(f"** {event.author} (ADK): {event.content.parts[0].text}") - if event.author == agent.root_agent.name: - final_agent_response_parts.append(event.content.parts[0].text) - print(f"<<<< Agent Final Output: {''.join(final_agent_response_parts)}\n") - - event_name = os.getenv("EVENT_NAME") - issue_number_str = os.getenv("ISSUE_NUMBER") - - if event_name == "issues" and issue_number_str: - print(f"EVENT: Processing specific issue due to '{event_name}' event.") - try: - issue_number = int(issue_number_str) - specific_issue = await fetch_specific_issue_details(issue_number) - - if specific_issue: - prompt = ( - f"A new GitHub issue #{specific_issue['number']} has been opened or" - f" reopened. Title: \"{specific_issue['title']}\"\nBody:" - f" \"{specific_issue['body']}\"\n\nBased on the rules, recommend an" - " appropriate label and its justification." - " Then, use the 'add_label_to_issue' tool to apply the label " - "directly to this issue." - f" The issue number is {specific_issue['number']}." - ) - await run_agent_prompt(session_11, prompt) - else: - print( - f"No unlabelled issue details found for #{issue_number} or an error" - " occurred. Skipping agent interaction." - ) - - except ValueError: - print(f"Error: Invalid ISSUE_NUMBER received: {issue_number_str}") - else: - print(f"EVENT: Processing batch of issues (event: {event_name}).") - issue_count_str = os.getenv("ISSUE_COUNT_TO_PROCESS", "3") - try: - num_issues_to_process = int(issue_count_str) - except ValueError: - print(f"Warning: Invalid ISSUE_COUNT_TO_PROCESS. Defaulting to 3.") - num_issues_to_process = 3 + print(f"EVENT: Processing batch of issues (event: {EVENT_NAME}).") + issue_count = parse_number_string(ISSUE_COUNT_TO_PROCESS, default_value=3) + prompt = f"Please triage the most recent {issue_count} issues." - prompt = ( - f"List the first {num_issues_to_process} unlabelled open issues from" - f" the {OWNER}/{REPO} repository. For each issue, provide a summary," - " recommend a label with justification, and then use the" - " 'add_label_to_issue' tool to apply the recommended label directly." - ) - await run_agent_prompt(session_11, prompt) + response = await call_agent_async(runner, USER_ID, session.id, prompt) + print(f"<<<< Agent Final Output: {response}\n") if __name__ == "__main__": start_time = time.time() print( - "Script start time:", - time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(start_time)), + f"Start triaging {OWNER}/{REPO} issues at" + f" {time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(start_time))}" ) - print("------------------------------------") + print("-" * 80) asyncio.run(main()) + print("-" * 80) end_time = time.time() - print("------------------------------------") print( - "Script end time:", - time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(end_time)), + "Triaging finished at" + f" {time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(end_time))}", ) print("Total script execution time:", f"{end_time - start_time:.2f} seconds") diff --git a/contributing/samples/adk_triaging_agent/settings.py b/contributing/samples/adk_triaging_agent/settings.py new file mode 100644 index 000000000..5fc1a9073 --- /dev/null +++ b/contributing/samples/adk_triaging_agent/settings.py @@ -0,0 +1,36 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from dotenv import load_dotenv + +load_dotenv(override=True) + +GITHUB_BASE_URL = "https://api.github.com" + +GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") +if not GITHUB_TOKEN: + raise ValueError("GITHUB_TOKEN environment variable not set") + +OWNER = os.getenv("OWNER", "google") +REPO = os.getenv("REPO", "adk-python") +BOT_LABEL = os.getenv("BOT_LABEL", "bot_triaged") +EVENT_NAME = os.getenv("EVENT_NAME") +ISSUE_NUMBER = os.getenv("ISSUE_NUMBER") +ISSUE_TITLE = os.getenv("ISSUE_TITLE") +ISSUE_BODY = os.getenv("ISSUE_BODY") +ISSUE_COUNT_TO_PROCESS = os.getenv("ISSUE_COUNT_TO_PROCESS") + +IS_INTERACTIVE = os.environ.get("INTERACTIVE", "1").lower() in ["true", "1"] diff --git a/contributing/samples/adk_triaging_agent/utils.py b/contributing/samples/adk_triaging_agent/utils.py new file mode 100644 index 000000000..80c32c010 --- /dev/null +++ b/contributing/samples/adk_triaging_agent/utils.py @@ -0,0 +1,55 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any + +from adk_triaging_agent.settings import GITHUB_TOKEN +import requests + +headers = { + "Authorization": f"token {GITHUB_TOKEN}", + "Accept": "application/vnd.github.v3+json", +} + + +def get_request( + url: str, params: dict[str, Any] | None = None +) -> dict[str, Any]: + if params is None: + params = {} + response = requests.get(url, headers=headers, params=params, timeout=60) + response.raise_for_status() + return response.json() + + +def post_request(url: str, payload: Any) -> dict[str, Any]: + response = requests.post(url, headers=headers, json=payload, timeout=60) + response.raise_for_status() + return response.json() + + +def error_response(error_message: str) -> dict[str, Any]: + return {"status": "error", "message": error_message} + + +def parse_number_string(number_str: str, default_value: int = 0) -> int: + """Parse a number from the given string.""" + try: + return int(number_str) + except ValueError: + print( + f"Warning: Invalid number string: {number_str}. Defaulting to" + f" {default_value}." + ) + return default_value diff --git a/contributing/samples/artifact_save_text/agent.py b/contributing/samples/artifact_save_text/agent.py index 53a7f300d..3ce43bcd1 100755 --- a/contributing/samples/artifact_save_text/agent.py +++ b/contributing/samples/artifact_save_text/agent.py @@ -31,7 +31,7 @@ async def log_query(tool_context: ToolContext, query: str): model='gemini-2.0-flash', name='log_agent', description='Log user query.', - instruction="""Always log the user query and reploy "kk, I've logged." + instruction="""Always log the user query and reply "kk, I've logged." """, tools=[log_query], generate_content_config=types.GenerateContentConfig( diff --git a/contributing/samples/bigquery/README.md b/contributing/samples/bigquery/README.md index cd4583c72..050ce1332 100644 --- a/contributing/samples/bigquery/README.md +++ b/contributing/samples/bigquery/README.md @@ -40,13 +40,28 @@ would set: ### With Application Default Credentials This mode is useful for quick development when the agent builder is the only -user interacting with the agent. The tools are initialized with the default -credentials present on the machine running the agent. +user interacting with the agent. The tools are run with these credentials. 1. Create application default credentials on the machine where the agent would be running by following https://cloud.google.com/docs/authentication/provide-credentials-adc. -1. Set `RUN_WITH_ADC=True` in `agent.py` and run the agent +1. Set `CREDENTIALS_TYPE=None` in `agent.py` + +1. Run the agent + +### With Service Account Keys + +This mode is useful for quick development when the agent builder wants to run +the agent with service account credentials. The tools are run with these +credentials. + +1. Create service account key by following https://cloud.google.com/iam/docs/service-account-creds#user-managed-keys. + +1. Set `CREDENTIALS_TYPE=AuthCredentialTypes.SERVICE_ACCOUNT` in `agent.py` + +1. Download the key file and replace `"service_account_key.json"` with the path + +1. Run the agent ### With Interactive OAuth @@ -72,7 +87,7 @@ type. Note: don't create a separate .env, instead put it to the same .env file that stores your Vertex AI or Dev ML credentials -1. Set `RUN_WITH_ADC=False` in `agent.py` and run the agent +1. Set `CREDENTIALS_TYPE=AuthCredentialTypes.OAUTH2` in `agent.py` and run the agent ## Sample prompts diff --git a/contributing/samples/bigquery/agent.py b/contributing/samples/bigquery/agent.py index 0999ca12a..b78f79685 100644 --- a/contributing/samples/bigquery/agent.py +++ b/contributing/samples/bigquery/agent.py @@ -15,24 +15,25 @@ import os from google.adk.agents import llm_agent +from google.adk.auth import AuthCredentialTypes from google.adk.tools.bigquery import BigQueryCredentialsConfig from google.adk.tools.bigquery import BigQueryToolset from google.adk.tools.bigquery.config import BigQueryToolConfig from google.adk.tools.bigquery.config import WriteMode import google.auth -RUN_WITH_ADC = False +# Define an appropriate credential type +CREDENTIALS_TYPE = AuthCredentialTypes.OAUTH2 +# Define BigQuery tool config with write mode set to allowed. Note that this is +# only to demonstrate the full capability of the BigQuery tools. In production +# you may want to change to BLOCKED (default write mode, effectively makes the +# tool read-only) or PROTECTED (only allows writes in the anonymous dataset of a +# BigQuery session) write mode. tool_config = BigQueryToolConfig(write_mode=WriteMode.ALLOWED) -if RUN_WITH_ADC: - # Initialize the tools to use the application default credentials. - application_default_credentials, _ = google.auth.default() - credentials_config = BigQueryCredentialsConfig( - credentials=application_default_credentials - ) -else: +if CREDENTIALS_TYPE == AuthCredentialTypes.OAUTH2: # Initiaze the tools to do interactive OAuth # The environment variables OAUTH_CLIENT_ID and OAUTH_CLIENT_SECRET # must be set @@ -40,6 +41,20 @@ client_id=os.getenv("OAUTH_CLIENT_ID"), client_secret=os.getenv("OAUTH_CLIENT_SECRET"), ) +elif CREDENTIALS_TYPE == AuthCredentialTypes.SERVICE_ACCOUNT: + # Initialize the tools to use the credentials in the service account key. + # If this flow is enabled, make sure to replace the file path with your own + # service account key file + # https://cloud.google.com/iam/docs/service-account-creds#user-managed-keys + creds, _ = google.auth.load_credentials_from_file("service_account_key.json") + credentials_config = BigQueryCredentialsConfig(credentials=creds) +else: + # Initialize the tools to use the application default credentials. + # https://cloud.google.com/docs/authentication/provide-credentials-adc + application_default_credentials, _ = google.auth.default() + credentials_config = BigQueryCredentialsConfig( + credentials=application_default_credentials + ) bigquery_toolset = BigQueryToolset( credentials_config=credentials_config, bigquery_tool_config=tool_config @@ -49,7 +64,7 @@ # debug CLI root_agent = llm_agent.Agent( model="gemini-2.0-flash", - name="hello_agent", + name="bigquery_agent", description=( "Agent to answer questions about BigQuery data and models and execute" " SQL queries." diff --git a/contributing/samples/bigquery_agent/README.md b/contributing/samples/google_api/README.md similarity index 50% rename from contributing/samples/bigquery_agent/README.md rename to contributing/samples/google_api/README.md index c7dc7fd8b..c1e6e8d4c 100644 --- a/contributing/samples/bigquery_agent/README.md +++ b/contributing/samples/google_api/README.md @@ -1,45 +1,40 @@ -# BigQuery Sample +# Google API Tools Sample ## Introduction -This sample tests and demos the BigQuery support in ADK via two tools: +This sample tests and demos Google API tools available in the +`google.adk.tools.google_api_tool` module. We pick the following BigQuery API +tools for this sample agent: -* 1. bigquery_datasets_list: +1. `bigquery_datasets_list`: List user's datasets. - List user's datasets. +2. `bigquery_datasets_get`: Get a dataset's details. -* 2. bigquery_datasets_get: - Get a dataset's details. +3. `bigquery_datasets_insert`: Create a new dataset. -* 3. bigquery_datasets_insert: - Create a new dataset. +4. `bigquery_tables_list`: List all tables in a dataset. -* 4. bigquery_tables_list: - List all tables in a dataset. +5. `bigquery_tables_get`: Get a table's details. -* 5. bigquery_tables_get: - Get a table's details. - -* 6. bigquery_tables_insert: - Insert a new table into a dataset. +6. `bigquery_tables_insert`: Insert a new table into a dataset. ## How to use -* 1. Follow https://developers.google.com/identity/protocols/oauth2#1.-obtain-oauth-2.0-credentials-from-the-dynamic_data.setvar.console_name. to get your client id and client secret. +1. Follow https://developers.google.com/identity/protocols/oauth2#1.-obtain-oauth-2.0-credentials-from-the-dynamic_data.setvar.console_name. to get your client id and client secret. Be sure to choose "web" as your client type. -* 2. Configure your `.env` file to add two variables: +2. Configure your `.env` file to add two variables: * OAUTH_CLIENT_ID={your client id} * OAUTH_CLIENT_SECRET={your client secret} Note: don't create a separate `.env` file , instead put it to the same `.env` file that stores your Vertex AI or Dev ML credentials -* 3. Follow https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred to add http://localhost/dev-ui/ to "Authorized redirect URIs". +3. Follow https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred to add http://localhost/dev-ui/ to "Authorized redirect URIs". Note: localhost here is just a hostname that you use to access the dev ui, replace it with the actual hostname you use to access the dev ui. -* 4. For 1st run, allow popup for localhost in Chrome. +4. For 1st run, allow popup for localhost in Chrome. ## Sample prompt diff --git a/contributing/samples/google_api/__init__.py b/contributing/samples/google_api/__init__.py new file mode 100644 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/google_api/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/google_api/agent.py b/contributing/samples/google_api/agent.py new file mode 100644 index 000000000..1cdbab9c6 --- /dev/null +++ b/contributing/samples/google_api/agent.py @@ -0,0 +1,78 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from dotenv import load_dotenv +from google.adk import Agent +from google.adk.tools.google_api_tool import BigQueryToolset + +# Load environment variables from .env file +load_dotenv() + +# Access the variable +oauth_client_id = os.getenv("OAUTH_CLIENT_ID") +oauth_client_secret = os.getenv("OAUTH_CLIENT_SECRET") +tools_to_expose = [ + "bigquery_datasets_list", + "bigquery_datasets_get", + "bigquery_datasets_insert", + "bigquery_tables_list", + "bigquery_tables_get", + "bigquery_tables_insert", +] +bigquery_toolset = BigQueryToolset( + client_id=oauth_client_id, + client_secret=oauth_client_secret, + tool_filter=tools_to_expose, +) + +root_agent = Agent( + model="gemini-2.0-flash", + name="google_api_bigquery_agent", + instruction=""" + You are a helpful Google BigQuery agent that help to manage users' data on Google BigQuery. + Use the provided tools to conduct various operations on users' data in Google BigQuery. + + Scenario 1: + The user wants to query their biguqery datasets + Use bigquery_datasets_list to query user's datasets + + Scenario 2: + The user wants to query the details of a specific dataset + Use bigquery_datasets_get to get a dataset's details + + Scenario 3: + The user wants to create a new dataset + Use bigquery_datasets_insert to create a new dataset + + Scenario 4: + The user wants to query their tables in a specific dataset + Use bigquery_tables_list to list all tables in a dataset + + Scenario 5: + The user wants to query the details of a specific table + Use bigquery_tables_get to get a table's details + + Scenario 6: + The user wants to insert a new table into a dataset + Use bigquery_tables_insert to insert a new table into a dataset + + Current user: + + {userInfo?} + +""", + tools=[bigquery_toolset], +) diff --git a/contributing/samples/hello_world_litellm_add_function_to_prompt/__init__.py b/contributing/samples/hello_world_litellm_add_function_to_prompt/__init__.py new file mode 100644 index 000000000..7d5bb0b1c --- /dev/null +++ b/contributing/samples/hello_world_litellm_add_function_to_prompt/__init__.py @@ -0,0 +1,16 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from . import agent diff --git a/contributing/samples/hello_world_litellm_add_function_to_prompt/agent.py b/contributing/samples/hello_world_litellm_add_function_to_prompt/agent.py new file mode 100644 index 000000000..0f10621ae --- /dev/null +++ b/contributing/samples/hello_world_litellm_add_function_to_prompt/agent.py @@ -0,0 +1,78 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import random + +from google.adk import Agent +from google.adk.models.lite_llm import LiteLlm +from langchain_core.utils.function_calling import convert_to_openai_function + + +def roll_die(sides: int) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + return random.randint(1, sides) + + +def check_prime(number: int) -> str: + """Check if a given number is prime. + + Args: + number: The input number to check. + + Returns: + A str indicating the number is prime or not. + """ + if number <= 1: + return f"{number} is not prime." + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + return f"{number} is prime." + else: + return f"{number} is not prime." + + +root_agent = Agent( + model=LiteLlm( + model="vertex_ai/meta/llama-4-maverick-17b-128e-instruct-maas", + # If the model is not trained with functions and you would like to + # enable function calling, you can add functions to the models, and the + # functions will be added to the prompts during inferences. + functions=[ + convert_to_openai_function(roll_die), + convert_to_openai_function(check_prime), + ], + ), + name="data_processing_agent", + description="""You are a helpful assistant.""", + instruction=""" + You are a helpful assistant, and call tools optionally. + If call tools, the tool format should be in json, and the tool arguments should be parsed from users inputs. + """, + tools=[ + roll_die, + check_prime, + ], +) diff --git a/contributing/samples/hello_world_litellm_add_function_to_prompt/main.py b/contributing/samples/hello_world_litellm_add_function_to_prompt/main.py new file mode 100644 index 000000000..123ba1368 --- /dev/null +++ b/contributing/samples/hello_world_litellm_add_function_to_prompt/main.py @@ -0,0 +1,81 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import asyncio +import time + +import agent +from dotenv import load_dotenv +from google.adk import Runner +from google.adk.artifacts import InMemoryArtifactService +from google.adk.cli.utils import logs +from google.adk.sessions import InMemorySessionService +from google.adk.sessions import Session +from google.genai import types + +load_dotenv(override=True) +logs.log_to_tmp_folder() + + +async def main(): + app_name = 'my_app' + user_id_1 = 'user1' + session_service = InMemorySessionService() + artifact_service = InMemoryArtifactService() + runner = Runner( + app_name=app_name, + agent=agent.root_agent, + artifact_service=artifact_service, + session_service=session_service, + ) + session_11 = await session_service.create_session( + app_name=app_name, user_id=user_id_1 + ) + + async def run_prompt(session: Session, new_message: str): + content = types.Content( + role='user', parts=[types.Part.from_text(text=new_message)] + ) + print('** User says:', content.model_dump(exclude_none=True)) + async for event in runner.run_async( + user_id=user_id_1, + session_id=session.id, + new_message=content, + ): + if event.content.parts: + part = event.content.parts[0] + if part.text: + print(f'** {event.author}: {part.text}') + if part.function_call: + print(f'** {event.author} calls tool: {part.function_call}') + if part.function_response: + print( + f'** {event.author} gets tool response: {part.function_response}' + ) + + start_time = time.time() + print('Start time:', start_time) + print('------------------------------------') + await run_prompt(session_11, 'Hi, introduce yourself.') + await run_prompt(session_11, 'Roll a die with 100 sides.') + await run_prompt(session_11, 'Check if it is prime.') + end_time = time.time() + print('------------------------------------') + print('End time:', end_time) + print('Total time:', end_time - start_time) + + +if __name__ == '__main__': + asyncio.run(main()) diff --git a/contributing/samples/live_bidi_streaming_multi_agent/__init__.py b/contributing/samples/live_bidi_streaming_multi_agent/__init__.py new file mode 100644 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/live_bidi_streaming_multi_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/live_bidi_streaming_multi_agent/agent.py b/contributing/samples/live_bidi_streaming_multi_agent/agent.py new file mode 100644 index 000000000..09b08e32e --- /dev/null +++ b/contributing/samples/live_bidi_streaming_multi_agent/agent.py @@ -0,0 +1,129 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from google.adk.agents import Agent +from google.adk.examples.example import Example +from google.adk.tools.example_tool import ExampleTool +from google.genai import types + + +# --- Roll Die Sub-Agent --- +def roll_die(sides: int) -> int: + """Roll a die and return the rolled result.""" + return random.randint(1, sides) + + +roll_agent = Agent( + name="roll_agent", + description="Handles rolling dice of different sizes.", + instruction=""" + You are responsible for rolling dice based on the user's request. + When asked to roll a die, you must call the roll_die tool with the number of sides as an integer. + """, + tools=[roll_die], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) + + +# --- Prime Check Sub-Agent --- +def check_prime(nums: list[int]) -> str: + """Check if a given list of numbers are prime.""" + primes = set() + for number in nums: + number = int(number) + if number <= 1: + continue + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + primes.add(number) + return ( + "No prime numbers found." + if not primes + else f"{', '.join(str(num) for num in primes)} are prime numbers." + ) + + +prime_agent = Agent( + name="prime_agent", + description="Handles checking if numbers are prime.", + instruction=""" + You are responsible for checking whether numbers are prime. + When asked to check primes, you must call the check_prime tool with a list of integers. + Never attempt to determine prime numbers manually. + Return the prime number results to the root agent. + """, + tools=[check_prime], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) + + +def get_current_weather(location: str): + """ + Returns the current weather. + """ + if location == "New York": + return "Sunny" + else: + return "Raining" + + +root_agent = Agent( + # find supported models here: https://google.github.io/adk-docs/get-started/streaming/quickstart-streaming/ + # model='gemini-live-2.5-flash-preview-native-audio', # for Vertex project + model="gemini-live-2.5-flash-preview", # for AI studio key + name="root_agent", + instruction=""" + You are a helpful assistant that can check time, roll dice and check if numbers are prime. + You can check time on your own. + You delegate rolling dice tasks to the roll_agent and prime checking tasks to the prime_agent. + Follow these steps: + 1. If the user asks to roll a die, delegate to the roll_agent. + 2. If the user asks to check primes, delegate to the prime_agent. + 3. If the user asks to roll a die and then check if the result is prime, call roll_agent first, then pass the result to prime_agent. + Always clarify the results before proceeding. + """, + global_instruction=( + "You are DicePrimeBot, ready to roll dice and check prime numbers." + ), + sub_agents=[roll_agent, prime_agent], + tools=[get_current_weather], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) diff --git a/contributing/samples/live_bidi_streaming_multi_agent/readme.md b/contributing/samples/live_bidi_streaming_multi_agent/readme.md new file mode 100644 index 000000000..27c93b10f --- /dev/null +++ b/contributing/samples/live_bidi_streaming_multi_agent/readme.md @@ -0,0 +1,43 @@ +# Simplistic Live (Bidi-Streaming) Multi-Agent +This project provides a basic example of a live, bidirectional streaming multi-agent +designed for testing and experimentation. + +You can see full documentation [here](https://google.github.io/adk-docs/streaming/). + +## Getting Started + +Follow these steps to get the agent up and running: + +1. **Start the ADK Web Server** + Open your terminal, navigate to the root directory that contains the + `live_bidi_streaming_agent` folder, and execute the following command: + ```bash + adk web + ``` + +2. **Access the ADK Web UI** + Once the server is running, open your web browser and navigate to the URL + provided in the terminal (it will typically be `http://localhost:8000`). + +3. **Select the Agent** + In the top-left corner of the ADK Web UI, use the dropdown menu to select + this agent. + +4. **Start Streaming** + Click on either the **Audio** or **Video** icon located near the chat input + box to begin the streaming session. + +5. **Interact with the Agent** + You can now begin talking to the agent, and it will respond in real-time. + +## Usage Notes + +* You only need to click the **Audio** or **Video** button once to initiate the + stream. The current version does not support stopping and restarting the stream + by clicking the button again during a session. + +## Sample Queries + +- Hello, what's the weather in Seattle and New York? +- Could you roll a 6-sided dice for me? +- Could you check if the number you rolled is a prime number or not? diff --git a/contributing/samples/live_bidi_streaming_single_agent/__init__.py b/contributing/samples/live_bidi_streaming_single_agent/__init__.py new file mode 100755 index 000000000..c48963cdc --- /dev/null +++ b/contributing/samples/live_bidi_streaming_single_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/live_bidi_streaming_agent/agent.py b/contributing/samples/live_bidi_streaming_single_agent/agent.py similarity index 100% rename from contributing/samples/live_bidi_streaming_agent/agent.py rename to contributing/samples/live_bidi_streaming_single_agent/agent.py diff --git a/contributing/samples/live_bidi_streaming_agent/readme.md b/contributing/samples/live_bidi_streaming_single_agent/readme.md similarity index 100% rename from contributing/samples/live_bidi_streaming_agent/readme.md rename to contributing/samples/live_bidi_streaming_single_agent/readme.md diff --git a/contributing/samples/mcp_sse_agent/agent.py b/contributing/samples/mcp_sse_agent/agent.py index 888a88b24..5423bfc6b 100755 --- a/contributing/samples/mcp_sse_agent/agent.py +++ b/contributing/samples/mcp_sse_agent/agent.py @@ -16,8 +16,8 @@ import os from google.adk.agents.llm_agent import LlmAgent +from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset -from google.adk.tools.mcp_tool.mcp_toolset import SseServerParams _allowed_path = os.path.dirname(os.path.abspath(__file__)) @@ -31,7 +31,7 @@ """, tools=[ MCPToolset( - connection_params=SseServerParams( + connection_params=SseConnectionParams( url='http://localhost:3000/sse', headers={'Accept': 'text/event-stream'}, ), diff --git a/contributing/samples/oauth_calendar_agent/agent.py b/contributing/samples/oauth_calendar_agent/agent.py index a1b1dea87..3f966b787 100644 --- a/contributing/samples/oauth_calendar_agent/agent.py +++ b/contributing/samples/oauth_calendar_agent/agent.py @@ -13,7 +13,6 @@ # limitations under the License. from datetime import datetime -import json import os from dotenv import load_dotenv @@ -27,8 +26,8 @@ from google.adk.auth import AuthCredentialTypes from google.adk.auth import OAuth2Auth from google.adk.tools import ToolContext +from google.adk.tools.authenticated_function_tool import AuthenticatedFunctionTool from google.adk.tools.google_api_tool import CalendarToolset -from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from googleapiclient.discovery import build @@ -56,6 +55,7 @@ def list_calendar_events( end_time: str, limit: int, tool_context: ToolContext, + credential: AuthCredential, ) -> list[dict]: """Search for calendar events. @@ -80,84 +80,11 @@ def list_calendar_events( Returns: list[dict]: A list of events that match the search criteria. """ - creds = None - - # Check if the tokes were already in the session state, which means the user - # has already gone through the OAuth flow and successfully authenticated and - # authorized the tool to access their calendar. - if "calendar_tool_tokens" in tool_context.state: - creds = Credentials.from_authorized_user_info( - tool_context.state["calendar_tool_tokens"], SCOPES - ) - if not creds or not creds.valid: - # If the access token is expired, refresh it with the refresh token. - if creds and creds.expired and creds.refresh_token: - creds.refresh(Request()) - else: - auth_scheme = OAuth2( - flows=OAuthFlows( - authorizationCode=OAuthFlowAuthorizationCode( - authorizationUrl="https://accounts.google.com/o/oauth2/auth", - tokenUrl="https://oauth2.googleapis.com/token", - scopes={ - "https://www.googleapis.com/auth/calendar": ( - "See, edit, share, and permanently delete all the" - " calendars you can access using Google Calendar" - ) - }, - ) - ) - ) - auth_credential = AuthCredential( - auth_type=AuthCredentialTypes.OAUTH2, - oauth2=OAuth2Auth( - client_id=oauth_client_id, client_secret=oauth_client_secret - ), - ) - # If the user has not gone through the OAuth flow before, or the refresh - # token also expired, we need to ask users to go through the OAuth flow. - # First we check whether the user has just gone through the OAuth flow and - # Oauth response is just passed back. - auth_response = tool_context.get_auth_response( - AuthConfig( - auth_scheme=auth_scheme, raw_auth_credential=auth_credential - ) - ) - if auth_response: - # ADK exchanged the access token already for us - access_token = auth_response.oauth2.access_token - refresh_token = auth_response.oauth2.refresh_token - - creds = Credentials( - token=access_token, - refresh_token=refresh_token, - token_uri=auth_scheme.flows.authorizationCode.tokenUrl, - client_id=oauth_client_id, - client_secret=oauth_client_secret, - scopes=list(auth_scheme.flows.authorizationCode.scopes.keys()), - ) - else: - # If there are no auth response which means the user has not gone - # through the OAuth flow yet, we need to ask users to go through the - # OAuth flow. - tool_context.request_credential( - AuthConfig( - auth_scheme=auth_scheme, - raw_auth_credential=auth_credential, - ) - ) - # The return value is optional and could be any dict object. It will be - # wrapped in a dict with key as 'result' and value as the return value - # if the object returned is not a dict. This response will be passed - # to LLM to generate a user friendly message. e.g. LLM will tell user: - # "I need your authorization to access your calendar. Please authorize - # me so I can check your meetings for today." - return "Need User Authorization to access their calendar." - # We store the access token and refresh token in the session state for the - # next runs. This is just an example. On production, a tool should store - # those credentials in some secure store or properly encrypt it before store - # it in the session state. - tool_context.state["calendar_tool_tokens"] = json.loads(creds.to_json()) + + creds = Credentials( + token=credential.oauth2.access_token, + refresh_token=credential.oauth2.refresh_token, + ) service = build("calendar", "v3", credentials=creds) events_result = ( @@ -208,6 +135,33 @@ def update_time(callback_context: CallbackContext): Currnet time: {_time} """, - tools=[list_calendar_events, calendar_toolset], + tools=[ + AuthenticatedFunctionTool( + func=list_calendar_events, + auth_config=AuthConfig( + auth_scheme=OAuth2( + flows=OAuthFlows( + authorizationCode=OAuthFlowAuthorizationCode( + authorizationUrl=( + "https://accounts.google.com/o/oauth2/auth" + ), + tokenUrl="https://oauth2.googleapis.com/token", + scopes={ + "https://www.googleapis.com/auth/calendar": "", + }, + ) + ) + ), + raw_auth_credential=AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id=oauth_client_id, + client_secret=oauth_client_secret, + ), + ), + ), + ), + calendar_toolset, + ], before_agent_callback=update_time, ) diff --git a/pyproject.toml b/pyproject.toml index 8ece4db81..a93443d45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,7 @@ classifiers = [ # List of https://pypi.org/classifiers/ ] dependencies = [ # go/keep-sorted start + "PyYAML>=6.0.2", # For APIHubToolset. "anyio>=4.9.0;python_version>='3.10'", # For MCP Session Manager "authlib>=1.5.1", # For RestAPI Tool "click>=8.1.8", # For CLI tools @@ -34,7 +35,7 @@ dependencies = [ "google-cloud-secret-manager>=2.22.0", # Fetching secrets in RestAPI Tool "google-cloud-speech>=2.30.0", # For Audio Transcription "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service - "google-genai>=1.17.0", # Google GenAI SDK + "google-genai>=1.21.1", # Google GenAI SDK "graphviz>=0.20.2", # Graphviz for graph rendering "mcp>=1.8.0;python_version>='3.10'", # For MCP Toolset "opentelemetry-api>=1.31.0", # OpenTelemetry @@ -43,7 +44,6 @@ dependencies = [ "pydantic>=2.0, <3.0.0", # For data validation/models "python-dateutil>=2.9.0.post0", # For Vertext AI Session Service "python-dotenv>=1.0.0", # To manage environment variables - "PyYAML>=6.0.2", # For APIHubToolset. "requests>=2.32.4", "sqlalchemy>=2.0", # SQL database ORM "starlette>=0.46.2", # For FastAPI CLI @@ -70,9 +70,9 @@ dev = [ # go/keep-sorted start "flit>=3.10.0", "isort>=6.0.0", + "mypy>=1.15.0", "pyink>=24.10.0", "pylint>=2.6.0", - "mypy>=1.15.0", # go/keep-sorted end ] @@ -87,6 +87,7 @@ eval = [ "google-cloud-aiplatform[evaluation]>=1.87.0", "pandas>=2.2.3", "tabulate>=0.9.0", + "rouge-score>=0.1.2", # go/keep-sorted end ] @@ -94,10 +95,10 @@ test = [ # go/keep-sorted start "anthropic>=0.43.0", # For anthropic model tests "langchain-community>=0.3.17", - "langgraph>=0.2.60", # For LangGraphAgent + # langgraph 0.5 removed langgraph.graph.graph which we depend on + "langgraph>=0.2.60, <= 0.4.10", # For LangGraphAgent "litellm>=1.71.2", # For LiteLLM tests "llama-index-readers-file>=0.4.0", # For retrieval tests - "pytest-asyncio>=0.25.0", "pytest-mock>=3.14.0", "pytest-xdist>=3.6.1", diff --git a/src/google/adk/a2a/converters/event_converter.py b/src/google/adk/a2a/converters/event_converter.py new file mode 100644 index 000000000..356808aa3 --- /dev/null +++ b/src/google/adk/a2a/converters/event_converter.py @@ -0,0 +1,603 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from datetime import datetime +from datetime import timezone +import logging +from typing import Any +from typing import Dict +from typing import List +from typing import Optional +import uuid + +from a2a.server.events import Event as A2AEvent +from a2a.types import Artifact +from a2a.types import DataPart +from a2a.types import Message +from a2a.types import Part as A2APart +from a2a.types import Role +from a2a.types import Task +from a2a.types import TaskArtifactUpdateEvent +from a2a.types import TaskState +from a2a.types import TaskStatus +from a2a.types import TaskStatusUpdateEvent +from a2a.types import TextPart +from google.genai import types as genai_types + +from ...agents.invocation_context import InvocationContext +from ...events.event import Event +from ...flows.llm_flows.functions import REQUEST_EUC_FUNCTION_CALL_NAME +from ...utils.feature_decorator import experimental +from .part_converter import A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY +from .part_converter import A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL +from .part_converter import A2A_DATA_PART_METADATA_TYPE_KEY +from .part_converter import convert_a2a_part_to_genai_part +from .part_converter import convert_genai_part_to_a2a_part +from .utils import _get_adk_metadata_key + +# Constants + +ARTIFACT_ID_SEPARATOR = "-" +DEFAULT_ERROR_MESSAGE = "An error occurred during processing" + +# Logger +logger = logging.getLogger("google_adk." + __name__) + + +def _serialize_metadata_value(value: Any) -> str: + """Safely serializes metadata values to string format. + + Args: + value: The value to serialize. + + Returns: + String representation of the value. + """ + if hasattr(value, "model_dump"): + try: + return value.model_dump(exclude_none=True, by_alias=True) + except Exception as e: + logger.warning("Failed to serialize metadata value: %s", e) + return str(value) + return str(value) + + +def _get_context_metadata( + event: Event, invocation_context: InvocationContext +) -> Dict[str, str]: + """Gets the context metadata for the event. + + Args: + event: The ADK event to extract metadata from. + invocation_context: The invocation context containing session information. + + Returns: + A dictionary containing the context metadata. + + Raises: + ValueError: If required fields are missing from event or context. + """ + if not event: + raise ValueError("Event cannot be None") + if not invocation_context: + raise ValueError("Invocation context cannot be None") + + try: + metadata = { + _get_adk_metadata_key("app_name"): invocation_context.app_name, + _get_adk_metadata_key("user_id"): invocation_context.user_id, + _get_adk_metadata_key("session_id"): invocation_context.session.id, + _get_adk_metadata_key("invocation_id"): event.invocation_id, + _get_adk_metadata_key("author"): event.author, + } + + # Add optional metadata fields if present + optional_fields = [ + ("branch", event.branch), + ("grounding_metadata", event.grounding_metadata), + ("custom_metadata", event.custom_metadata), + ("usage_metadata", event.usage_metadata), + ("error_code", event.error_code), + ] + + for field_name, field_value in optional_fields: + if field_value is not None: + metadata[_get_adk_metadata_key(field_name)] = _serialize_metadata_value( + field_value + ) + + return metadata + + except Exception as e: + logger.error("Failed to create context metadata: %s", e) + raise + + +def _create_artifact_id( + app_name: str, user_id: str, session_id: str, filename: str, version: int +) -> str: + """Creates a unique artifact ID. + + Args: + app_name: The application name. + user_id: The user ID. + session_id: The session ID. + filename: The artifact filename. + version: The artifact version. + + Returns: + A unique artifact ID string. + """ + components = [app_name, user_id, session_id, filename, str(version)] + return ARTIFACT_ID_SEPARATOR.join(components) + + +def _convert_artifact_to_a2a_events( + event: Event, + invocation_context: InvocationContext, + filename: str, + version: int, + task_id: Optional[str] = None, + context_id: Optional[str] = None, +) -> TaskArtifactUpdateEvent: + """Converts a new artifact version to an A2A TaskArtifactUpdateEvent. + + Args: + event: The ADK event containing the artifact information. + invocation_context: The invocation context. + filename: The name of the artifact file. + version: The version number of the artifact. + task_id: Optional task ID to use for generated events. If not provided, new UUIDs will be generated. + + Returns: + A TaskArtifactUpdateEvent representing the artifact update. + + Raises: + ValueError: If required parameters are invalid. + RuntimeError: If artifact loading fails. + """ + if not filename: + raise ValueError("Filename cannot be empty") + if version < 0: + raise ValueError("Version must be non-negative") + + try: + artifact_part = invocation_context.artifact_service.load_artifact( + app_name=invocation_context.app_name, + user_id=invocation_context.user_id, + session_id=invocation_context.session.id, + filename=filename, + version=version, + ) + + converted_part = convert_genai_part_to_a2a_part(part=artifact_part) + if not converted_part: + raise RuntimeError(f"Failed to convert artifact part for {filename}") + + artifact_id = _create_artifact_id( + invocation_context.app_name, + invocation_context.user_id, + invocation_context.session.id, + filename, + version, + ) + + return TaskArtifactUpdateEvent( + taskId=task_id, + append=False, + contextId=context_id, + lastChunk=True, + artifact=Artifact( + artifactId=artifact_id, + name=filename, + metadata={ + "filename": filename, + "version": version, + }, + parts=[converted_part], + ), + ) + except Exception as e: + logger.error( + "Failed to convert artifact for %s, version %s: %s", + filename, + version, + e, + ) + raise RuntimeError(f"Artifact conversion failed: {e}") from e + + +def _process_long_running_tool(a2a_part: A2APart, event: Event) -> None: + """Processes long-running tool metadata for an A2A part. + + Args: + a2a_part: The A2A part to potentially mark as long-running. + event: The ADK event containing long-running tool information. + """ + if ( + isinstance(a2a_part.root, DataPart) + and event.long_running_tool_ids + and a2a_part.root.metadata + and a2a_part.root.metadata.get( + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ) + == A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL + and a2a_part.root.data.get("id") in event.long_running_tool_ids + ): + a2a_part.root.metadata[ + _get_adk_metadata_key(A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY) + ] = True + + +def convert_a2a_task_to_event( + a2a_task: Task, + author: Optional[str] = None, + invocation_context: Optional[InvocationContext] = None, +) -> Event: + """Converts an A2A task to an ADK event. + + Args: + a2a_task: The A2A task to convert. Must not be None. + author: The author of the event. Defaults to "a2a agent" if not provided. + invocation_context: The invocation context containing session information. + If provided, the branch will be set from the context. + + Returns: + An ADK Event object representing the converted task. + + Raises: + ValueError: If a2a_task is None. + RuntimeError: If conversion of the underlying message fails. + """ + if a2a_task is None: + raise ValueError("A2A task cannot be None") + + try: + # Extract message from task status or history + message = None + if a2a_task.status and a2a_task.status.message: + message = a2a_task.status.message + elif a2a_task.history: + message = a2a_task.history[-1] + + # Convert message if available + if message: + try: + return convert_a2a_message_to_event(message, author, invocation_context) + except Exception as e: + logger.error("Failed to convert A2A task message to event: %s", e) + raise RuntimeError(f"Failed to convert task message: {e}") from e + + # Create minimal event if no message is available + return Event( + invocation_id=( + invocation_context.invocation_id + if invocation_context + else str(uuid.uuid4()) + ), + author=author or "a2a agent", + branch=invocation_context.branch if invocation_context else None, + ) + + except Exception as e: + logger.error("Failed to convert A2A task to event: %s", e) + raise + + +@experimental +def convert_a2a_message_to_event( + a2a_message: Message, + author: Optional[str] = None, + invocation_context: Optional[InvocationContext] = None, +) -> Event: + """Converts an A2A message to an ADK event. + + Args: + a2a_message: The A2A message to convert. Must not be None. + author: The author of the event. Defaults to "a2a agent" if not provided. + invocation_context: The invocation context containing session information. + If provided, the branch will be set from the context. + + Returns: + An ADK Event object with converted content and long-running tool metadata. + + Raises: + ValueError: If a2a_message is None. + RuntimeError: If conversion of message parts fails. + """ + if a2a_message is None: + raise ValueError("A2A message cannot be None") + + if not a2a_message.parts: + logger.warning( + "A2A message has no parts, creating event with empty content" + ) + return Event( + invocation_id=( + invocation_context.invocation_id + if invocation_context + else str(uuid.uuid4()) + ), + author=author or "a2a agent", + branch=invocation_context.branch if invocation_context else None, + content=genai_types.Content(role="model", parts=[]), + ) + + try: + parts = [] + long_running_tool_ids = set() + + for a2a_part in a2a_message.parts: + try: + part = convert_a2a_part_to_genai_part(a2a_part) + if part is None: + logger.warning("Failed to convert A2A part, skipping: %s", a2a_part) + continue + + # Check for long-running tools + if ( + a2a_part.root.metadata + and a2a_part.root.metadata.get( + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY + ) + ) + is True + ): + long_running_tool_ids.add(part.function_call.id) + + parts.append(part) + + except Exception as e: + logger.error("Failed to convert A2A part: %s, error: %s", a2a_part, e) + # Continue processing other parts instead of failing completely + continue + + if not parts: + logger.warning( + "No parts could be converted from A2A message %s", a2a_message + ) + + return Event( + invocation_id=( + invocation_context.invocation_id + if invocation_context + else str(uuid.uuid4()) + ), + author=author or "a2a agent", + branch=invocation_context.branch if invocation_context else None, + long_running_tool_ids=long_running_tool_ids + if long_running_tool_ids + else None, + content=genai_types.Content( + role="model", + parts=parts, + ), + ) + + except Exception as e: + logger.error("Failed to convert A2A message to event: %s", e) + raise RuntimeError(f"Failed to convert message: {e}") from e + + +@experimental +def convert_event_to_a2a_message( + event: Event, invocation_context: InvocationContext, role: Role = Role.agent +) -> Optional[Message]: + """Converts an ADK event to an A2A message. + + Args: + event: The ADK event to convert. + invocation_context: The invocation context. + + Returns: + An A2A Message if the event has content, None otherwise. + + Raises: + ValueError: If required parameters are invalid. + """ + if not event: + raise ValueError("Event cannot be None") + if not invocation_context: + raise ValueError("Invocation context cannot be None") + + if not event.content or not event.content.parts: + return None + + try: + a2a_parts = [] + for part in event.content.parts: + a2a_part = convert_genai_part_to_a2a_part(part) + if a2a_part: + a2a_parts.append(a2a_part) + _process_long_running_tool(a2a_part, event) + + if a2a_parts: + return Message(messageId=str(uuid.uuid4()), role=role, parts=a2a_parts) + + except Exception as e: + logger.error("Failed to convert event to status message: %s", e) + raise + + return None + + +def _create_error_status_event( + event: Event, + invocation_context: InvocationContext, + task_id: Optional[str] = None, + context_id: Optional[str] = None, +) -> TaskStatusUpdateEvent: + """Creates a TaskStatusUpdateEvent for error scenarios. + + Args: + event: The ADK event containing error information. + invocation_context: The invocation context. + task_id: Optional task ID to use for generated events. + context_id: Optional Context ID to use for generated events. + + Returns: + A TaskStatusUpdateEvent with FAILED state. + """ + error_message = getattr(event, "error_message", None) or DEFAULT_ERROR_MESSAGE + + # Get context metadata and add error code + event_metadata = _get_context_metadata(event, invocation_context) + if event.error_code: + event_metadata[_get_adk_metadata_key("error_code")] = str(event.error_code) + + return TaskStatusUpdateEvent( + taskId=task_id, + contextId=context_id, + metadata=event_metadata, + status=TaskStatus( + state=TaskState.failed, + message=Message( + messageId=str(uuid.uuid4()), + role=Role.agent, + parts=[TextPart(text=error_message)], + metadata={ + _get_adk_metadata_key("error_code"): str(event.error_code) + } + if event.error_code + else {}, + ), + timestamp=datetime.now(timezone.utc).isoformat(), + ), + final=False, + ) + + +def _create_status_update_event( + message: Message, + invocation_context: InvocationContext, + event: Event, + task_id: Optional[str] = None, + context_id: Optional[str] = None, +) -> TaskStatusUpdateEvent: + """Creates a TaskStatusUpdateEvent for running scenarios. + + Args: + message: The A2A message to include. + invocation_context: The invocation context. + event: The ADK event. + task_id: Optional task ID to use for generated events. + context_id: Optional Context ID to use for generated events. + + + Returns: + A TaskStatusUpdateEvent with RUNNING state. + """ + status = TaskStatus( + state=TaskState.working, + message=message, + timestamp=datetime.now(timezone.utc).isoformat(), + ) + + if any( + part.root.metadata.get( + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ) + == A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL + and part.root.metadata.get( + _get_adk_metadata_key(A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY) + ) + is True + and part.root.data.get("name") == REQUEST_EUC_FUNCTION_CALL_NAME + for part in message.parts + if part.root.metadata + ): + status.state = TaskState.auth_required + elif any( + part.root.metadata.get( + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ) + == A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL + and part.root.metadata.get( + _get_adk_metadata_key(A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY) + ) + is True + for part in message.parts + if part.root.metadata + ): + status.state = TaskState.input_required + + return TaskStatusUpdateEvent( + taskId=task_id, + contextId=context_id, + status=status, + metadata=_get_context_metadata(event, invocation_context), + final=False, + ) + + +@experimental +def convert_event_to_a2a_events( + event: Event, + invocation_context: InvocationContext, + task_id: Optional[str] = None, + context_id: Optional[str] = None, +) -> List[A2AEvent]: + """Converts a GenAI event to a list of A2A events. + + Args: + event: The ADK event to convert. + invocation_context: The invocation context. + task_id: Optional task ID to use for generated events. + context_id: Optional Context ID to use for generated events. + + Returns: + A list of A2A events representing the converted ADK event. + + Raises: + ValueError: If required parameters are invalid. + """ + if not event: + raise ValueError("Event cannot be None") + if not invocation_context: + raise ValueError("Invocation context cannot be None") + + a2a_events = [] + + try: + # Handle artifact deltas + if event.actions.artifact_delta: + for filename, version in event.actions.artifact_delta.items(): + artifact_event = _convert_artifact_to_a2a_events( + event, invocation_context, filename, version, task_id, context_id + ) + a2a_events.append(artifact_event) + + # Handle error scenarios + if event.error_code: + error_event = _create_error_status_event( + event, invocation_context, task_id, context_id + ) + a2a_events.append(error_event) + + # Handle regular message content + message = convert_event_to_a2a_message(event, invocation_context) + if message: + running_event = _create_status_update_event( + message, invocation_context, event, task_id, context_id + ) + a2a_events.append(running_event) + + except Exception as e: + logger.error("Failed to convert event to A2A events: %s", e) + raise + + return a2a_events diff --git a/src/google/adk/a2a/converters/part_converter.py b/src/google/adk/a2a/converters/part_converter.py index 1c51fd7c1..04387cccf 100644 --- a/src/google/adk/a2a/converters/part_converter.py +++ b/src/google/adk/a2a/converters/part_converter.py @@ -18,23 +18,40 @@ from __future__ import annotations +import base64 import json import logging from typing import Optional -from a2a import types as a2a_types +from .utils import _get_adk_metadata_key + +try: + from a2a import types as a2a_types +except ImportError as e: + import sys + + if sys.version_info < (3, 10): + raise ImportError( + 'A2A requires Python 3.10 or above. Please upgrade your Python version.' + ) from e + else: + raise e + from google.genai import types as genai_types -from ...utils.feature_decorator import working_in_progress +from ...utils.feature_decorator import experimental logger = logging.getLogger('google_adk.' + __name__) A2A_DATA_PART_METADATA_TYPE_KEY = 'type' +A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY = 'is_long_running' A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL = 'function_call' A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE = 'function_response' +A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT = 'code_execution_result' +A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE = 'executable_code' -@working_in_progress +@experimental def convert_a2a_part_to_genai_part( a2a_part: a2a_types.Part, ) -> Optional[genai_types.Part]: @@ -54,7 +71,8 @@ def convert_a2a_part_to_genai_part( elif isinstance(part.file, a2a_types.FileWithBytes): return genai_types.Part( inline_data=genai_types.Blob( - data=part.file.bytes.encode('utf-8'), mime_type=part.file.mimeType + data=base64.b64decode(part.file.bytes), + mime_type=part.file.mimeType, ) ) else: @@ -71,9 +89,13 @@ def convert_a2a_part_to_genai_part( # response. # TODO once A2A defined how to suervice such information, migrate below # logic accordinlgy - if part.metadata and A2A_DATA_PART_METADATA_TYPE_KEY in part.metadata: + if ( + part.metadata + and _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + in part.metadata + ): if ( - part.metadata[A2A_DATA_PART_METADATA_TYPE_KEY] + part.metadata[_get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY)] == A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL ): return genai_types.Part( @@ -82,7 +104,7 @@ def convert_a2a_part_to_genai_part( ) ) if ( - part.metadata[A2A_DATA_PART_METADATA_TYPE_KEY] + part.metadata[_get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY)] == A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE ): return genai_types.Part( @@ -90,6 +112,24 @@ def convert_a2a_part_to_genai_part( part.data, by_alias=True ) ) + if ( + part.metadata[_get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY)] + == A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT + ): + return genai_types.Part( + code_execution_result=genai_types.CodeExecutionResult.model_validate( + part.data, by_alias=True + ) + ) + if ( + part.metadata[_get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY)] + == A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE + ): + return genai_types.Part( + executable_code=genai_types.ExecutableCode.model_validate( + part.data, by_alias=True + ) + ) return genai_types.Part(text=json.dumps(part.data)) logger.warning( @@ -100,32 +140,45 @@ def convert_a2a_part_to_genai_part( return None -@working_in_progress +@experimental def convert_genai_part_to_a2a_part( part: genai_types.Part, ) -> Optional[a2a_types.Part]: """Convert a Google GenAI Part to an A2A Part.""" + if part.text: - return a2a_types.TextPart(text=part.text) + a2a_part = a2a_types.TextPart(text=part.text) + if part.thought is not None: + a2a_part.metadata = {_get_adk_metadata_key('thought'): part.thought} + return a2a_types.Part(root=a2a_part) if part.file_data: - return a2a_types.FilePart( - file=a2a_types.FileWithUri( - uri=part.file_data.file_uri, - mimeType=part.file_data.mime_type, + return a2a_types.Part( + root=a2a_types.FilePart( + file=a2a_types.FileWithUri( + uri=part.file_data.file_uri, + mimeType=part.file_data.mime_type, + ) ) ) if part.inline_data: - return a2a_types.Part( - root=a2a_types.FilePart( - file=a2a_types.FileWithBytes( - bytes=part.inline_data.data, - mimeType=part.inline_data.mime_type, - ) + a2a_part = a2a_types.FilePart( + file=a2a_types.FileWithBytes( + bytes=base64.b64encode(part.inline_data.data).decode('utf-8'), + mimeType=part.inline_data.mime_type, ) ) + if part.video_metadata: + a2a_part.metadata = { + _get_adk_metadata_key( + 'video_metadata' + ): part.video_metadata.model_dump(by_alias=True, exclude_none=True) + } + + return a2a_types.Part(root=a2a_part) + # Conver the funcall and function reponse to A2A DataPart. # This is mainly for converting human in the loop and auth request and # response. @@ -138,9 +191,9 @@ def convert_genai_part_to_a2a_part( by_alias=True, exclude_none=True ), metadata={ - A2A_DATA_PART_METADATA_TYPE_KEY: ( - A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL - ) + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL }, ) ) @@ -152,9 +205,37 @@ def convert_genai_part_to_a2a_part( by_alias=True, exclude_none=True ), metadata={ - A2A_DATA_PART_METADATA_TYPE_KEY: ( - A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE - ) + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE + }, + ) + ) + + if part.code_execution_result: + return a2a_types.Part( + root=a2a_types.DataPart( + data=part.code_execution_result.model_dump( + by_alias=True, exclude_none=True + ), + metadata={ + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT + }, + ) + ) + + if part.executable_code: + return a2a_types.Part( + root=a2a_types.DataPart( + data=part.executable_code.model_dump( + by_alias=True, exclude_none=True + ), + metadata={ + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE }, ) ) diff --git a/src/google/adk/a2a/converters/request_converter.py b/src/google/adk/a2a/converters/request_converter.py new file mode 100644 index 000000000..168de49b7 --- /dev/null +++ b/src/google/adk/a2a/converters/request_converter.py @@ -0,0 +1,70 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import sys +from typing import Any + +try: + from a2a.server.agent_execution import RequestContext +except ImportError as e: + if sys.version_info < (3, 10): + raise ImportError( + 'A2A Tool requires Python 3.10 or above. Please upgrade your Python' + ' version.' + ) from e + else: + raise e + +from google.genai import types as genai_types + +from ...runners import RunConfig +from ...utils.feature_decorator import experimental +from .part_converter import convert_a2a_part_to_genai_part + + +def _get_user_id(request: RequestContext) -> str: + # Get user from call context if available (auth is enabled on a2a server) + if ( + request.call_context + and request.call_context.user + and request.call_context.user.user_name + ): + return request.call_context.user.user_name + + # Get user from context id + return f'A2A_USER_{request.context_id}' + + +@experimental +def convert_a2a_request_to_adk_run_args( + request: RequestContext, +) -> dict[str, Any]: + + if not request.message: + raise ValueError('Request message cannot be None') + + return { + 'user_id': _get_user_id(request), + 'session_id': request.context_id, + 'new_message': genai_types.Content( + role='user', + parts=[ + convert_a2a_part_to_genai_part(part) + for part in request.message.parts + ], + ), + 'run_config': RunConfig(), + } diff --git a/src/google/adk/a2a/converters/utils.py b/src/google/adk/a2a/converters/utils.py new file mode 100644 index 000000000..acb2581d4 --- /dev/null +++ b/src/google/adk/a2a/converters/utils.py @@ -0,0 +1,89 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +ADK_METADATA_KEY_PREFIX = "adk_" +ADK_CONTEXT_ID_PREFIX = "ADK" +ADK_CONTEXT_ID_SEPARATOR = "/" + + +def _get_adk_metadata_key(key: str) -> str: + """Gets the A2A event metadata key for the given key. + + Args: + key: The metadata key to prefix. + + Returns: + The prefixed metadata key. + + Raises: + ValueError: If key is empty or None. + """ + if not key: + raise ValueError("Metadata key cannot be empty or None") + return f"{ADK_METADATA_KEY_PREFIX}{key}" + + +def _to_a2a_context_id(app_name: str, user_id: str, session_id: str) -> str: + """Converts app name, user id and session id to an A2A context id. + + Args: + app_name: The app name. + user_id: The user id. + session_id: The session id. + + Returns: + The A2A context id. + + Raises: + ValueError: If any of the input parameters are empty or None. + """ + if not all([app_name, user_id, session_id]): + raise ValueError( + "All parameters (app_name, user_id, session_id) must be non-empty" + ) + return ADK_CONTEXT_ID_SEPARATOR.join( + [ADK_CONTEXT_ID_PREFIX, app_name, user_id, session_id] + ) + + +def _from_a2a_context_id(context_id: str) -> tuple[str, str, str]: + """Converts an A2A context id to app name, user id and session id. + if context_id is None, return None, None, None + if context_id is not None, but not in the format of + ADK$app_name$user_id$session_id, return None, None, None + + Args: + context_id: The A2A context id. + + Returns: + The app name, user id and session id. + """ + if not context_id: + return None, None, None + + try: + parts = context_id.split(ADK_CONTEXT_ID_SEPARATOR) + if len(parts) != 4: + return None, None, None + + prefix, app_name, user_id, session_id = parts + if prefix == ADK_CONTEXT_ID_PREFIX and app_name and user_id and session_id: + return app_name, user_id, session_id + except ValueError: + # Handle any split errors gracefully + pass + + return None, None, None diff --git a/src/google/adk/a2a/executor/__init__.py b/src/google/adk/a2a/executor/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/src/google/adk/a2a/executor/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/google/adk/a2a/executor/a2a_agent_executor.py b/src/google/adk/a2a/executor/a2a_agent_executor.py new file mode 100644 index 000000000..1d5545ed3 --- /dev/null +++ b/src/google/adk/a2a/executor/a2a_agent_executor.py @@ -0,0 +1,260 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from datetime import datetime +from datetime import timezone +import inspect +import logging +from typing import Any +from typing import Awaitable +from typing import Callable +from typing import Optional +import uuid + +try: + from a2a.server.agent_execution import AgentExecutor + from a2a.server.agent_execution.context import RequestContext + from a2a.server.events.event_queue import EventQueue + from a2a.types import Message + from a2a.types import Role + from a2a.types import TaskState + from a2a.types import TaskStatus + from a2a.types import TaskStatusUpdateEvent + from a2a.types import TextPart + +except ImportError as e: + import sys + + if sys.version_info < (3, 10): + raise ImportError( + 'A2A requires Python 3.10 or above. Please upgrade your Python version.' + ) from e + else: + raise e +from google.adk.runners import Runner +from pydantic import BaseModel +from typing_extensions import override + +from ...utils.feature_decorator import experimental +from ..converters.event_converter import convert_event_to_a2a_events +from ..converters.request_converter import convert_a2a_request_to_adk_run_args +from ..converters.utils import _get_adk_metadata_key +from .task_result_aggregator import TaskResultAggregator + +logger = logging.getLogger('google_adk.' + __name__) + + +@experimental +class A2aAgentExecutorConfig(BaseModel): + """Configuration for the A2aAgentExecutor.""" + + pass + + +@experimental +class A2aAgentExecutor(AgentExecutor): + """An AgentExecutor that runs an ADK Agent against an A2A request and + publishes updates to an event queue. + """ + + def __init__( + self, + *, + runner: Runner | Callable[..., Runner | Awaitable[Runner]], + config: Optional[A2aAgentExecutorConfig] = None, + ): + super().__init__() + self._runner = runner + self._config = config + + async def _resolve_runner(self) -> Runner: + """Resolve the runner, handling cases where it's a callable that returns a Runner.""" + # If already resolved and cached, return it + if isinstance(self._runner, Runner): + return self._runner + if callable(self._runner): + # Call the function to get the runner + result = self._runner() + + # Handle async callables + if inspect.iscoroutine(result): + resolved_runner = await result + else: + resolved_runner = result + + # Cache the resolved runner for future calls + self._runner = resolved_runner + return resolved_runner + + raise TypeError( + 'Runner must be a Runner instance or a callable that returns a' + f' Runner, got {type(self._runner)}' + ) + + @override + async def cancel(self, context: RequestContext, event_queue: EventQueue): + """Cancel the execution.""" + # TODO: Implement proper cancellation logic if needed + raise NotImplementedError('Cancellation is not supported') + + @override + async def execute( + self, + context: RequestContext, + event_queue: EventQueue, + ): + """Executes an A2A request and publishes updates to the event queue + specified. It runs as following: + * Takes the input from the A2A request + * Convert the input to ADK input content, and runs the ADK agent + * Collects output events of the underlying ADK Agent + * Converts the ADK output events into A2A task updates + * Publishes the updates back to A2A server via event queue + """ + if not context.message: + raise ValueError('A2A request must have a message') + + # for new task, create a task submitted event + if not context.current_task: + await event_queue.enqueue_event( + TaskStatusUpdateEvent( + taskId=context.task_id, + status=TaskStatus( + state=TaskState.submitted, + message=context.message, + timestamp=datetime.now(timezone.utc).isoformat(), + ), + contextId=context.context_id, + final=False, + ) + ) + + # Handle the request and publish updates to the event queue + try: + await self._handle_request(context, event_queue) + except Exception as e: + logger.error('Error handling A2A request: %s', e, exc_info=True) + # Publish failure event + try: + await event_queue.enqueue_event( + TaskStatusUpdateEvent( + taskId=context.task_id, + status=TaskStatus( + state=TaskState.failed, + timestamp=datetime.now(timezone.utc).isoformat(), + message=Message( + messageId=str(uuid.uuid4()), + role=Role.agent, + parts=[TextPart(text=str(e))], + ), + ), + contextId=context.context_id, + final=True, + ) + ) + except Exception as enqueue_error: + logger.error( + 'Failed to publish failure event: %s', enqueue_error, exc_info=True + ) + + async def _handle_request( + self, + context: RequestContext, + event_queue: EventQueue, + ): + # Resolve the runner instance + runner = await self._resolve_runner() + + # Convert the a2a request to ADK run args + run_args = convert_a2a_request_to_adk_run_args(context) + + # ensure the session exists + session = await self._prepare_session(context, run_args, runner) + + # create invocation context + invocation_context = runner._new_invocation_context( + session=session, + new_message=run_args['new_message'], + run_config=run_args['run_config'], + ) + + # publish the task working event + await event_queue.enqueue_event( + TaskStatusUpdateEvent( + taskId=context.task_id, + status=TaskStatus( + state=TaskState.working, + timestamp=datetime.now(timezone.utc).isoformat(), + ), + contextId=context.context_id, + final=False, + metadata={ + _get_adk_metadata_key('app_name'): runner.app_name, + _get_adk_metadata_key('user_id'): run_args['user_id'], + _get_adk_metadata_key('session_id'): run_args['session_id'], + }, + ) + ) + + task_result_aggregator = TaskResultAggregator() + async for adk_event in runner.run_async(**run_args): + for a2a_event in convert_event_to_a2a_events( + adk_event, invocation_context, context.task_id, context.context_id + ): + task_result_aggregator.process_event(a2a_event) + await event_queue.enqueue_event(a2a_event) + + # publish the task result event - this is final + await event_queue.enqueue_event( + TaskStatusUpdateEvent( + taskId=context.task_id, + status=TaskStatus( + state=( + task_result_aggregator.task_state + if task_result_aggregator.task_state != TaskState.working + else TaskState.completed + ), + timestamp=datetime.now(timezone.utc).isoformat(), + message=task_result_aggregator.task_status_message, + ), + contextId=context.context_id, + final=True, + ) + ) + + async def _prepare_session( + self, context: RequestContext, run_args: dict[str, Any], runner: Runner + ): + + session_id = run_args['session_id'] + # create a new session if not exists + user_id = run_args['user_id'] + session = await runner.session_service.get_session( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + ) + if session is None: + session = await runner.session_service.create_session( + app_name=runner.app_name, + user_id=user_id, + state={}, + session_id=session_id, + ) + # Update run_args with the new session_id + run_args['session_id'] = session.id + + return session diff --git a/src/google/adk/a2a/executor/task_result_aggregator.py b/src/google/adk/a2a/executor/task_result_aggregator.py new file mode 100644 index 000000000..202e80927 --- /dev/null +++ b/src/google/adk/a2a/executor/task_result_aggregator.py @@ -0,0 +1,71 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from a2a.server.events import Event +from a2a.types import Message +from a2a.types import TaskState +from a2a.types import TaskStatusUpdateEvent + +from ...utils.feature_decorator import experimental + + +@experimental +class TaskResultAggregator: + """Aggregates the task status updates and provides the final task state.""" + + def __init__(self): + self._task_state = TaskState.working + self._task_status_message = None + + def process_event(self, event: Event): + """Process an event from the agent run and detect signals about the task status. + Priority of task state: + - failed + - auth_required + - input_required + - working + """ + if isinstance(event, TaskStatusUpdateEvent): + if event.status.state == TaskState.failed: + self._task_state = TaskState.failed + self._task_status_message = event.status.message + elif ( + event.status.state == TaskState.auth_required + and self._task_state != TaskState.failed + ): + self._task_state = TaskState.auth_required + self._task_status_message = event.status.message + elif ( + event.status.state == TaskState.input_required + and self._task_state + not in (TaskState.failed, TaskState.auth_required) + ): + self._task_state = TaskState.input_required + self._task_status_message = event.status.message + # final state is already recorded and make sure the intermediate state is + # always working because other state may terminate the event aggregation + # in a2a request handler + elif self._task_state == TaskState.working: + self._task_status_message = event.status.message + event.status.state = TaskState.working + + @property + def task_state(self) -> TaskState: + return self._task_state + + @property + def task_status_message(self) -> Message | None: + return self._task_status_message diff --git a/src/google/adk/a2a/logs/__init__.py b/src/google/adk/a2a/logs/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/src/google/adk/a2a/logs/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/google/adk/a2a/logs/log_utils.py b/src/google/adk/a2a/logs/log_utils.py new file mode 100644 index 000000000..b3891514c --- /dev/null +++ b/src/google/adk/a2a/logs/log_utils.py @@ -0,0 +1,349 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Utility functions for structured A2A request and response logging.""" + +from __future__ import annotations + +import json +import sys + +try: + from a2a.types import DataPart as A2ADataPart + from a2a.types import Message as A2AMessage + from a2a.types import Part as A2APart + from a2a.types import SendMessageRequest + from a2a.types import SendMessageResponse + from a2a.types import Task as A2ATask + from a2a.types import TextPart as A2ATextPart +except ImportError as e: + if sys.version_info < (3, 10): + raise ImportError( + "A2A Tool requires Python 3.10 or above. Please upgrade your Python" + " version." + ) from e + else: + raise e + + +# Constants +_NEW_LINE = "\n" +_EXCLUDED_PART_FIELD = {"file": {"bytes"}} + + +def _is_a2a_task(obj) -> bool: + """Check if an object is an A2A Task, with fallback for isinstance issues.""" + try: + return isinstance(obj, A2ATask) + except (TypeError, AttributeError): + return type(obj).__name__ == "Task" and hasattr(obj, "status") + + +def _is_a2a_message(obj) -> bool: + """Check if an object is an A2A Message, with fallback for isinstance issues.""" + try: + return isinstance(obj, A2AMessage) + except (TypeError, AttributeError): + return type(obj).__name__ == "Message" and hasattr(obj, "role") + + +def _is_a2a_text_part(obj) -> bool: + """Check if an object is an A2A TextPart, with fallback for isinstance issues.""" + try: + return isinstance(obj, A2ATextPart) + except (TypeError, AttributeError): + return type(obj).__name__ == "TextPart" and hasattr(obj, "text") + + +def _is_a2a_data_part(obj) -> bool: + """Check if an object is an A2A DataPart, with fallback for isinstance issues.""" + try: + return isinstance(obj, A2ADataPart) + except (TypeError, AttributeError): + return type(obj).__name__ == "DataPart" and hasattr(obj, "data") + + +def build_message_part_log(part: A2APart) -> str: + """Builds a log representation of an A2A message part. + + Args: + part: The A2A message part to log. + + Returns: + A string representation of the part. + """ + part_content = "" + if _is_a2a_text_part(part.root): + part_content = f"TextPart: {part.root.text[:100]}" + ( + "..." if len(part.root.text) > 100 else "" + ) + elif _is_a2a_data_part(part.root): + # For data parts, show the data keys but exclude large values + data_summary = { + k: ( + f"<{type(v).__name__}>" + if isinstance(v, (dict, list)) and len(str(v)) > 100 + else v + ) + for k, v in part.root.data.items() + } + part_content = f"DataPart: {json.dumps(data_summary, indent=2)}" + else: + part_content = ( + f"{type(part.root).__name__}:" + f" {part.model_dump_json(exclude_none=True, exclude=_EXCLUDED_PART_FIELD)}" + ) + + # Add part metadata if it exists + if hasattr(part.root, "metadata") and part.root.metadata: + metadata_str = json.dumps(part.root.metadata, indent=2).replace( + "\n", "\n " + ) + part_content += f"\n Part Metadata: {metadata_str}" + + return part_content + + +def build_a2a_request_log(req: SendMessageRequest) -> str: + """Builds a structured log representation of an A2A request. + + Args: + req: The A2A SendMessageRequest to log. + + Returns: + A formatted string representation of the request. + """ + # Message parts logs + message_parts_logs = [] + if req.params.message.parts: + for i, part in enumerate(req.params.message.parts): + part_log = build_message_part_log(part) + # Replace any internal newlines with indented newlines to maintain formatting + part_log_formatted = part_log.replace("\n", "\n ") + message_parts_logs.append(f"Part {i}: {part_log_formatted}") + + # Configuration logs + config_log = "None" + if req.params.configuration: + config_data = { + "acceptedOutputModes": req.params.configuration.acceptedOutputModes, + "blocking": req.params.configuration.blocking, + "historyLength": req.params.configuration.historyLength, + "pushNotificationConfig": bool( + req.params.configuration.pushNotificationConfig + ), + } + config_log = json.dumps(config_data, indent=2) + + # Build message metadata section + message_metadata_section = "" + if req.params.message.metadata: + message_metadata_section = f""" + Metadata: + {json.dumps(req.params.message.metadata, indent=2).replace(chr(10), chr(10) + ' ')}""" + + # Build optional sections + optional_sections = [] + + if req.params.metadata: + optional_sections.append( + f"""----------------------------------------------------------- +Metadata: +{json.dumps(req.params.metadata, indent=2)}""" + ) + + optional_sections_str = _NEW_LINE.join(optional_sections) + + return f""" +A2A Request: +----------------------------------------------------------- +Request ID: {req.id} +Method: {req.method} +JSON-RPC: {req.jsonrpc} +----------------------------------------------------------- +Message: + ID: {req.params.message.messageId} + Role: {req.params.message.role} + Task ID: {req.params.message.taskId} + Context ID: {req.params.message.contextId}{message_metadata_section} +----------------------------------------------------------- +Message Parts: +{_NEW_LINE.join(message_parts_logs) if message_parts_logs else "No parts"} +----------------------------------------------------------- +Configuration: +{config_log} +{optional_sections_str} +----------------------------------------------------------- +""" + + +def build_a2a_response_log(resp: SendMessageResponse) -> str: + """Builds a structured log representation of an A2A response. + + Args: + resp: The A2A SendMessageResponse to log. + + Returns: + A formatted string representation of the response. + """ + # Handle error responses + if hasattr(resp.root, "error"): + return f""" +A2A Response: +----------------------------------------------------------- +Type: ERROR +Error Code: {resp.root.error.code} +Error Message: {resp.root.error.message} +Error Data: {json.dumps(resp.root.error.data, indent=2) if resp.root.error.data else "None"} +----------------------------------------------------------- +Response ID: {resp.root.id} +JSON-RPC: {resp.root.jsonrpc} +----------------------------------------------------------- +""" + + # Handle success responses + result = resp.root.result + result_type = type(result).__name__ + + # Build result details based on type + result_details = [] + + if _is_a2a_task(result): + result_details.extend([ + f"Task ID: {result.id}", + f"Context ID: {result.contextId}", + f"Status State: {result.status.state}", + f"Status Timestamp: {result.status.timestamp}", + f"History Length: {len(result.history) if result.history else 0}", + f"Artifacts Count: {len(result.artifacts) if result.artifacts else 0}", + ]) + + # Add task metadata if it exists + if result.metadata: + result_details.append("Task Metadata:") + metadata_formatted = json.dumps(result.metadata, indent=2).replace( + "\n", "\n " + ) + result_details.append(f" {metadata_formatted}") + + elif _is_a2a_message(result): + result_details.extend([ + f"Message ID: {result.messageId}", + f"Role: {result.role}", + f"Task ID: {result.taskId}", + f"Context ID: {result.contextId}", + ]) + + # Add message parts + if result.parts: + result_details.append("Message Parts:") + for i, part in enumerate(result.parts): + part_log = build_message_part_log(part) + # Replace any internal newlines with indented newlines to maintain formatting + part_log_formatted = part_log.replace("\n", "\n ") + result_details.append(f" Part {i}: {part_log_formatted}") + + # Add metadata if it exists + if result.metadata: + result_details.append("Metadata:") + metadata_formatted = json.dumps(result.metadata, indent=2).replace( + "\n", "\n " + ) + result_details.append(f" {metadata_formatted}") + + else: + # Handle other result types by showing their JSON representation + if hasattr(result, "model_dump_json"): + try: + result_json = result.model_dump_json() + result_details.append(f"JSON Data: {result_json}") + except Exception: + result_details.append("JSON Data: ") + + # Build status message section + status_message_section = "None" + if _is_a2a_task(result) and result.status.message: + status_parts_logs = [] + if result.status.message.parts: + for i, part in enumerate(result.status.message.parts): + part_log = build_message_part_log(part) + # Replace any internal newlines with indented newlines to maintain formatting + part_log_formatted = part_log.replace("\n", "\n ") + status_parts_logs.append(f"Part {i}: {part_log_formatted}") + + # Build status message metadata section + status_metadata_section = "" + if result.status.message.metadata: + status_metadata_section = f""" +Metadata: +{json.dumps(result.status.message.metadata, indent=2)}""" + + status_message_section = f"""ID: {result.status.message.messageId} +Role: {result.status.message.role} +Task ID: {result.status.message.taskId} +Context ID: {result.status.message.contextId} +Message Parts: +{_NEW_LINE.join(status_parts_logs) if status_parts_logs else "No parts"}{status_metadata_section}""" + + # Build history section + history_section = "No history" + if _is_a2a_task(result) and result.history: + history_logs = [] + for i, message in enumerate(result.history): + message_parts_logs = [] + if message.parts: + for j, part in enumerate(message.parts): + part_log = build_message_part_log(part) + # Replace any internal newlines with indented newlines to maintain formatting + part_log_formatted = part_log.replace("\n", "\n ") + message_parts_logs.append(f" Part {j}: {part_log_formatted}") + + # Build message metadata section + message_metadata_section = "" + if message.metadata: + message_metadata_section = f""" + Metadata: + {json.dumps(message.metadata, indent=2).replace(chr(10), chr(10) + ' ')}""" + + history_logs.append( + f"""Message {i + 1}: + ID: {message.messageId} + Role: {message.role} + Task ID: {message.taskId} + Context ID: {message.contextId} + Message Parts: +{_NEW_LINE.join(message_parts_logs) if message_parts_logs else " No parts"}{message_metadata_section}""" + ) + + history_section = _NEW_LINE.join(history_logs) + + return f""" +A2A Response: +----------------------------------------------------------- +Type: SUCCESS +Result Type: {result_type} +----------------------------------------------------------- +Result Details: +{_NEW_LINE.join(result_details)} +----------------------------------------------------------- +Status Message: +{status_message_section} +----------------------------------------------------------- +History: +{history_section} +----------------------------------------------------------- +Response ID: {resp.root.id} +JSON-RPC: {resp.root.jsonrpc} +----------------------------------------------------------- +""" diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index fe145a60e..a5c859e26 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -161,10 +161,12 @@ class LlmAgent(BaseAgent): # LLM-based agent transfer configs - End include_contents: Literal['default', 'none'] = 'default' - """Whether to include contents in the model request. + """Controls content inclusion in model requests. - When set to 'none', the model request will not include any contents, such as - user messages, tool results, etc. + Options: + default: Model receives relevant conversation history + none: Model receives no prior history, operates solely on current + instruction and input """ # Controlled input/output configurations - Start @@ -429,16 +431,31 @@ def _llm_flow(self) -> BaseLlmFlow: def __maybe_save_output_to_state(self, event: Event): """Saves the model output to state if needed.""" + # skip if the event was authored by some other agent (e.g. current agent + # transferred to another agent) + if event.author != self.name: + logger.debug( + 'Skipping output save for agent %s: event authored by %s', + self.name, + event.author, + ) + return if ( self.output_key and event.is_final_response() and event.content and event.content.parts ): + result = ''.join( [part.text if part.text else '' for part in event.content.parts] ) if self.output_schema: + # If the result from the final chunk is just whitespace or empty, + # it means this is an empty final chunk of a stream. + # Do not attempt to parse it as JSON. + if not result.strip(): + return result = self.output_schema.model_validate_json(result).model_dump( exclude_none=True ) diff --git a/src/google/adk/agents/remote_a2a_agent.py b/src/google/adk/agents/remote_a2a_agent.py new file mode 100644 index 000000000..b9f765576 --- /dev/null +++ b/src/google/adk/agents/remote_a2a_agent.py @@ -0,0 +1,532 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import json +import logging +from pathlib import Path +from typing import Any +from typing import AsyncGenerator +from typing import Optional +from typing import Union +from urllib.parse import urlparse +import uuid + +try: + from a2a.client import A2AClient + from a2a.client.client import A2ACardResolver # Import A2ACardResolver + from a2a.types import AgentCard + from a2a.types import Message as A2AMessage + from a2a.types import MessageSendParams as A2AMessageSendParams + from a2a.types import Part as A2APart + from a2a.types import Role + from a2a.types import SendMessageRequest + from a2a.types import SendMessageSuccessResponse + from a2a.types import Task as A2ATask + +except ImportError as e: + import sys + + if sys.version_info < (3, 10): + raise ImportError( + "A2A requires Python 3.10 or above. Please upgrade your Python version." + ) from e + else: + raise e + +from google.genai import types as genai_types +import httpx + +from ..a2a.converters.event_converter import convert_a2a_message_to_event +from ..a2a.converters.event_converter import convert_a2a_task_to_event +from ..a2a.converters.event_converter import convert_event_to_a2a_message +from ..a2a.converters.part_converter import convert_genai_part_to_a2a_part +from ..a2a.logs.log_utils import build_a2a_request_log +from ..a2a.logs.log_utils import build_a2a_response_log +from ..agents.invocation_context import InvocationContext +from ..events.event import Event +from ..flows.llm_flows.contents import _convert_foreign_event +from ..flows.llm_flows.contents import _is_other_agent_reply +from ..flows.llm_flows.functions import find_matching_function_call +from ..utils.feature_decorator import experimental +from .base_agent import BaseAgent + +# Constants +A2A_METADATA_PREFIX = "a2a:" +DEFAULT_TIMEOUT = 600.0 + + +logger = logging.getLogger("google_adk." + __name__) + + +@experimental +class AgentCardResolutionError(Exception): + """Raised when agent card resolution fails.""" + + pass + + +@experimental +class A2AClientError(Exception): + """Raised when A2A client operations fail.""" + + pass + + +@experimental +class RemoteA2aAgent(BaseAgent): + """Agent that communicates with a remote A2A agent via A2A client. + + This agent supports multiple ways to specify the remote agent: + 1. Direct AgentCard object + 2. URL to agent card JSON + 3. File path to agent card JSON + + The agent handles: + - Agent card resolution and validation + - HTTP client management with proper resource cleanup + - A2A message conversion and error handling + - Session state management across requests + """ + + def __init__( + self, + name: str, + agent_card: Union[AgentCard, str], + description: str = "", + httpx_client: Optional[httpx.AsyncClient] = None, + timeout: float = DEFAULT_TIMEOUT, + **kwargs: Any, + ) -> None: + """Initialize RemoteA2aAgent. + + Args: + name: Agent name (must be unique identifier) + agent_card: AgentCard object, URL string, or file path string + description: Agent description (auto-populated from card if empty) + httpx_client: Optional shared HTTP client (will create own if not provided) + timeout: HTTP timeout in seconds + **kwargs: Additional arguments passed to BaseAgent + + Raises: + ValueError: If name is invalid or agent_card is None + TypeError: If agent_card is not a supported type + """ + super().__init__(name=name, description=description, **kwargs) + + if agent_card is None: + raise ValueError("agent_card cannot be None") + + self._agent_card: Optional[AgentCard] = None + self._agent_card_source: Optional[str] = None + self._rpc_url: Optional[str] = None + self._a2a_client: Optional[A2AClient] = None + self._httpx_client = httpx_client + self._httpx_client_needs_cleanup = httpx_client is None + self._timeout = timeout + self._is_resolved = False + + # Validate and store agent card reference + if isinstance(agent_card, AgentCard): + self._agent_card = agent_card + elif isinstance(agent_card, str): + if not agent_card.strip(): + raise ValueError("agent_card string cannot be empty") + self._agent_card_source = agent_card.strip() + else: + raise TypeError( + "agent_card must be AgentCard, URL string, or file path string, " + f"got {type(agent_card)}" + ) + + async def _ensure_httpx_client(self) -> httpx.AsyncClient: + """Ensure HTTP client is available and properly configured.""" + if not self._httpx_client: + self._httpx_client = httpx.AsyncClient( + timeout=httpx.Timeout(timeout=self._timeout) + ) + self._httpx_client_needs_cleanup = True + return self._httpx_client + + async def _resolve_agent_card_from_url(self, url: str) -> AgentCard: + """Resolve agent card from URL.""" + try: + parsed_url = urlparse(url) + if not parsed_url.scheme or not parsed_url.netloc: + raise ValueError(f"Invalid URL format: {url}") + + base_url = f"{parsed_url.scheme}://{parsed_url.netloc}" + relative_card_path = parsed_url.path + + httpx_client = await self._ensure_httpx_client() + resolver = A2ACardResolver( + httpx_client=httpx_client, + base_url=base_url, + ) + return await resolver.get_agent_card( + relative_card_path=relative_card_path + ) + except Exception as e: + raise AgentCardResolutionError( + f"Failed to resolve AgentCard from URL {url}: {e}" + ) from e + + async def _resolve_agent_card_from_file(self, file_path: str) -> AgentCard: + """Resolve agent card from file path.""" + try: + path = Path(file_path) + if not path.exists(): + raise FileNotFoundError(f"Agent card file not found: {file_path}") + if not path.is_file(): + raise ValueError(f"Path is not a file: {file_path}") + + with path.open("r", encoding="utf-8") as f: + agent_json_data = json.load(f) + return AgentCard(**agent_json_data) + except json.JSONDecodeError as e: + raise AgentCardResolutionError( + f"Invalid JSON in agent card file {file_path}: {e}" + ) from e + except Exception as e: + raise AgentCardResolutionError( + f"Failed to resolve AgentCard from file {file_path}: {e}" + ) from e + + async def _resolve_agent_card(self) -> AgentCard: + """Resolve agent card from source.""" + + # Determine if source is URL or file path + if self._agent_card_source.startswith(("http://", "https://")): + return await self._resolve_agent_card_from_url(self._agent_card_source) + else: + return await self._resolve_agent_card_from_file(self._agent_card_source) + + async def _validate_agent_card(self, agent_card: AgentCard) -> None: + """Validate resolved agent card.""" + if not agent_card.url: + raise AgentCardResolutionError( + "Agent card must have a valid URL for RPC communication" + ) + + # Additional validation can be added here + try: + parsed_url = urlparse(str(agent_card.url)) + if not parsed_url.scheme or not parsed_url.netloc: + raise ValueError("Invalid RPC URL format") + except Exception as e: + raise AgentCardResolutionError( + f"Invalid RPC URL in agent card: {agent_card.url}, error: {e}" + ) from e + + async def _ensure_resolved(self) -> None: + """Ensures agent card is resolved, RPC URL is determined, and A2A client is initialized.""" + if self._is_resolved: + return + + try: + # Resolve agent card if needed + if not self._agent_card: + self._agent_card = await self._resolve_agent_card() + + # Validate agent card + await self._validate_agent_card(self._agent_card) + + # Set RPC URL + self._rpc_url = str(self._agent_card.url) + + # Update description if empty + if not self.description and self._agent_card.description: + self.description = self._agent_card.description + + # Initialize A2A client + if not self._a2a_client: + httpx_client = await self._ensure_httpx_client() + self._a2a_client = A2AClient( + httpx_client=httpx_client, + agent_card=self._agent_card, + url=self._rpc_url, + ) + + self._is_resolved = True + logger.info("Successfully resolved remote A2A agent: %s", self.name) + + except Exception as e: + logger.error("Failed to resolve remote A2A agent %s: %s", self.name, e) + raise AgentCardResolutionError( + f"Failed to initialize remote A2A agent {self.name}: {e}" + ) from e + + def _create_a2a_request_for_user_function_response( + self, ctx: InvocationContext + ) -> Optional[SendMessageRequest]: + """Create A2A request for user function response if applicable. + + Args: + ctx: The invocation context + + Returns: + SendMessageRequest if function response found, None otherwise + """ + if not ctx.session.events or ctx.session.events[-1].author != "user": + return None + function_call_event = find_matching_function_call(ctx.session.events) + if not function_call_event: + return None + + a2a_message = convert_event_to_a2a_message( + ctx.session.events[-1], ctx, Role.user + ) + if function_call_event.custom_metadata: + a2a_message.taskId = ( + function_call_event.custom_metadata.get( + A2A_METADATA_PREFIX + "task_id" + ) + if function_call_event.custom_metadata + else None + ) + a2a_message.contextId = ( + function_call_event.custom_metadata.get( + A2A_METADATA_PREFIX + "context_id" + ) + if function_call_event.custom_metadata + else None + ) + + return SendMessageRequest( + id=str(uuid.uuid4()), + params=A2AMessageSendParams( + message=a2a_message, + ), + ) + + def _construct_message_parts_from_session( + self, ctx: InvocationContext + ) -> tuple[list[A2APart], dict[str, Any], str]: + """Construct A2A message parts from session events. + + Args: + ctx: The invocation context + + Returns: + List of A2A parts extracted from session events, context ID + """ + message_parts: list[A2APart] = [] + context_id = None + for event in reversed(ctx.session.events): + if _is_other_agent_reply(self.name, event): + event = _convert_foreign_event(event) + elif event.author == self.name: + # stop on content generated by current a2a agent given it should already + # be in remote session + if event.custom_metadata: + context_id = ( + event.custom_metadata.get(A2A_METADATA_PREFIX + "context_id") + if event.custom_metadata + else None + ) + break + + if not event.content or not event.content.parts: + continue + + for part in event.content.parts: + + converted_part = convert_genai_part_to_a2a_part(part) + if converted_part: + message_parts.append(converted_part) + else: + logger.warning("Failed to convert part to A2A format: %s", part) + + return message_parts[::-1], context_id + + async def _handle_a2a_response( + self, a2a_response: Any, ctx: InvocationContext + ) -> Event: + """Handle A2A response and convert to Event. + + Args: + a2a_response: The A2A response object + ctx: The invocation context + + Returns: + Event object representing the response + """ + try: + if isinstance(a2a_response.root, SendMessageSuccessResponse): + if a2a_response.root.result: + if isinstance(a2a_response.root.result, A2ATask): + event = convert_a2a_task_to_event( + a2a_response.root.result, self.name, ctx + ) + event.custom_metadata = event.custom_metadata or {} + event.custom_metadata[A2A_METADATA_PREFIX + "task_id"] = ( + a2a_response.root.result.id + ) + + else: + event = convert_a2a_message_to_event( + a2a_response.root.result, self.name, ctx + ) + event.custom_metadata = event.custom_metadata or {} + if a2a_response.root.result.taskId: + event.custom_metadata[A2A_METADATA_PREFIX + "task_id"] = ( + a2a_response.root.result.taskId + ) + + if a2a_response.root.result.contextId: + event.custom_metadata[A2A_METADATA_PREFIX + "context_id"] = ( + a2a_response.root.result.contextId + ) + + else: + logger.warning("A2A response has no result: %s", a2a_response.root) + event = Event( + author=self.name, + invocation_id=ctx.invocation_id, + branch=ctx.branch, + ) + else: + # Handle error response + error_response = a2a_response.root + logger.error( + "A2A request failed with error: %s, data: %s", + error_response.error.message, + error_response.error.data, + ) + event = Event( + author=self.name, + error_message=error_response.error.message, + error_code=str(error_response.error.code), + invocation_id=ctx.invocation_id, + branch=ctx.branch, + ) + + return event + except Exception as e: + logger.error("Failed to handle A2A response: %s", e) + return Event( + author=self.name, + error_message=f"Failed to process A2A response: {e}", + invocation_id=ctx.invocation_id, + branch=ctx.branch, + ) + + async def _run_async_impl( + self, ctx: InvocationContext + ) -> AsyncGenerator[Event, None]: + """Core implementation for async agent execution.""" + try: + await self._ensure_resolved() + except Exception as e: + yield Event( + author=self.name, + error_message=f"Failed to initialize remote A2A agent: {e}", + invocation_id=ctx.invocation_id, + branch=ctx.branch, + ) + return + + # Create A2A request for function response or regular message + a2a_request = self._create_a2a_request_for_user_function_response(ctx) + if not a2a_request: + message_parts, context_id = self._construct_message_parts_from_session( + ctx + ) + + if not message_parts: + logger.warning( + "No parts to send to remote A2A agent. Emitting empty event." + ) + yield Event( + author=self.name, + content=genai_types.Content(), + invocation_id=ctx.invocation_id, + branch=ctx.branch, + ) + return + + a2a_request = SendMessageRequest( + id=str(uuid.uuid4()), + params=A2AMessageSendParams( + message=A2AMessage( + messageId=str(uuid.uuid4()), + parts=message_parts, + role="user", + contextId=context_id, + ) + ), + ) + + logger.info(build_a2a_request_log(a2a_request)) + + try: + a2a_response = await self._a2a_client.send_message(request=a2a_request) + logger.info(build_a2a_response_log(a2a_response)) + + event = await self._handle_a2a_response(a2a_response, ctx) + + # Add metadata about the request and response + event.custom_metadata = event.custom_metadata or {} + event.custom_metadata[A2A_METADATA_PREFIX + "request"] = ( + a2a_request.model_dump(exclude_none=True, by_alias=True) + ) + event.custom_metadata[A2A_METADATA_PREFIX + "response"] = ( + a2a_response.root.model_dump(exclude_none=True, by_alias=True) + ) + + yield event + + except Exception as e: + error_message = f"A2A request failed: {e}" + logger.error(error_message) + + yield Event( + author=self.name, + error_message=error_message, + invocation_id=ctx.invocation_id, + branch=ctx.branch, + custom_metadata={ + A2A_METADATA_PREFIX + + "request": a2a_request.model_dump( + exclude_none=True, by_alias=True + ), + A2A_METADATA_PREFIX + "error": error_message, + }, + ) + + async def _run_live_impl( + self, ctx: InvocationContext + ) -> AsyncGenerator[Event, None]: + """Core implementation for live agent execution (not implemented).""" + raise NotImplementedError( + f"_run_live_impl for {type(self)} via A2A is not implemented." + ) + # This makes the function an async generator but the yield is still unreachable + yield + + async def cleanup(self) -> None: + """Clean up resources, especially the HTTP client if owned by this agent.""" + if self._httpx_client_needs_cleanup and self._httpx_client: + try: + await self._httpx_client.aclose() + logger.debug("Closed HTTP client for agent %s", self.name) + except Exception as e: + logger.warning( + "Failed to close HTTP client for agent %s: %s", + self.name, + e, + ) + finally: + self._httpx_client = None diff --git a/src/google/adk/artifacts/gcs_artifact_service.py b/src/google/adk/artifacts/gcs_artifact_service.py index e4af21e15..35aa88622 100644 --- a/src/google/adk/artifacts/gcs_artifact_service.py +++ b/src/google/adk/artifacts/gcs_artifact_service.py @@ -13,6 +13,7 @@ # limitations under the License. """An artifact service implementation using Google Cloud Storage (GCS).""" +from __future__ import annotations import logging from typing import Optional @@ -151,7 +152,7 @@ async def list_artifact_keys( self.bucket, prefix=session_prefix ) for blob in session_blobs: - _, _, _, filename, _ = blob.name.split("/") + *_, filename, _ = blob.name.split("/") filenames.add(filename) user_namespace_prefix = f"{app_name}/{user_id}/user/" @@ -159,7 +160,7 @@ async def list_artifact_keys( self.bucket, prefix=user_namespace_prefix ) for blob in user_namespace_blobs: - _, _, _, filename, _ = blob.name.split("/") + *_, filename, _ = blob.name.split("/") filenames.add(filename) return sorted(list(filenames)) diff --git a/src/google/adk/auth/auth_credential.py b/src/google/adk/auth/auth_credential.py index 1009a50dd..34d04dde9 100644 --- a/src/google/adk/auth/auth_credential.py +++ b/src/google/adk/auth/auth_credential.py @@ -230,4 +230,3 @@ class AuthCredential(BaseModelWithConfig): http: Optional[HttpAuth] = None service_account: Optional[ServiceAccount] = None oauth2: Optional[OAuth2Auth] = None - google_oauth2_json: Optional[str] = None diff --git a/src/google/adk/auth/auth_handler.py b/src/google/adk/auth/auth_handler.py index 3e13cbac2..473f31413 100644 --- a/src/google/adk/auth/auth_handler.py +++ b/src/google/adk/auth/auth_handler.py @@ -22,7 +22,7 @@ from .auth_schemes import AuthSchemeType from .auth_schemes import OpenIdConnectWithConfig from .auth_tool import AuthConfig -from .oauth2_credential_fetcher import OAuth2CredentialFetcher +from .exchanger.oauth2_credential_exchanger import OAuth2CredentialExchanger if TYPE_CHECKING: from ..sessions.state import State @@ -36,18 +36,23 @@ class AuthHandler: + """A handler that handles the auth flow in Agent Development Kit to help + orchestrate the credential request and response flow (e.g. OAuth flow) + This class should only be used by Agent Development Kit. + """ def __init__(self, auth_config: AuthConfig): self.auth_config = auth_config - def exchange_auth_token( + async def exchange_auth_token( self, ) -> AuthCredential: - return OAuth2CredentialFetcher( - self.auth_config.auth_scheme, self.auth_config.exchanged_auth_credential - ).exchange() + exchanger = OAuth2CredentialExchanger() + return await exchanger.exchange( + self.auth_config.exchanged_auth_credential, self.auth_config.auth_scheme + ) - def parse_and_store_auth_response(self, state: State) -> None: + async def parse_and_store_auth_response(self, state: State) -> None: credential_key = "temp:" + self.auth_config.credential_key @@ -60,7 +65,7 @@ def parse_and_store_auth_response(self, state: State) -> None: ): return - state[credential_key] = self.exchange_auth_token() + state[credential_key] = await self.exchange_auth_token() def _validate(self) -> None: if not self.auth_scheme: diff --git a/src/google/adk/auth/auth_preprocessor.py b/src/google/adk/auth/auth_preprocessor.py index 0c964ed96..b06774973 100644 --- a/src/google/adk/auth/auth_preprocessor.py +++ b/src/google/adk/auth/auth_preprocessor.py @@ -67,9 +67,9 @@ async def run_async( # function call request_euc_function_call_ids.add(function_call_response.id) auth_config = AuthConfig.model_validate(function_call_response.response) - AuthHandler(auth_config=auth_config).parse_and_store_auth_response( - state=invocation_context.session.state - ) + await AuthHandler( + auth_config=auth_config + ).parse_and_store_auth_response(state=invocation_context.session.state) break if not request_euc_function_call_ids: diff --git a/src/google/adk/auth/auth_tool.py b/src/google/adk/auth/auth_tool.py index 53c571d42..0316e5258 100644 --- a/src/google/adk/auth/auth_tool.py +++ b/src/google/adk/auth/auth_tool.py @@ -31,12 +31,12 @@ class AuthConfig(BaseModelWithConfig): auth_scheme: AuthScheme """The auth scheme used to collect credentials""" - raw_auth_credential: AuthCredential = None + raw_auth_credential: Optional[AuthCredential] = None """The raw auth credential used to collect credentials. The raw auth credentials are used in some auth scheme that needs to exchange auth credentials. e.g. OAuth2 and OIDC. For other auth scheme, it could be None. """ - exchanged_auth_credential: AuthCredential = None + exchanged_auth_credential: Optional[AuthCredential] = None """The exchanged auth credential used to collect credentials. adk and client will work together to fill it. For those auth scheme that doesn't need to exchange auth credentials, e.g. API key, service account etc. It's filled by diff --git a/src/google/adk/auth/credential_manager.py b/src/google/adk/auth/credential_manager.py new file mode 100644 index 000000000..0dbf006ab --- /dev/null +++ b/src/google/adk/auth/credential_manager.py @@ -0,0 +1,261 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import Optional + +from ..tools.tool_context import ToolContext +from ..utils.feature_decorator import experimental +from .auth_credential import AuthCredential +from .auth_credential import AuthCredentialTypes +from .auth_schemes import AuthSchemeType +from .auth_tool import AuthConfig +from .exchanger.base_credential_exchanger import BaseCredentialExchanger +from .exchanger.credential_exchanger_registry import CredentialExchangerRegistry +from .refresher.base_credential_refresher import BaseCredentialRefresher +from .refresher.credential_refresher_registry import CredentialRefresherRegistry + + +@experimental +class CredentialManager: + """Manages authentication credentials through a structured workflow. + + The CredentialManager orchestrates the complete lifecycle of authentication + credentials, from initial loading to final preparation for use. It provides + a centralized interface for handling various credential types and authentication + schemes while maintaining proper credential hygiene (refresh, exchange, caching). + + This class is only for use by Agent Development Kit. + + Args: + auth_config: Configuration containing authentication scheme and credentials + + Example: + ```python + auth_config = AuthConfig( + auth_scheme=oauth2_scheme, + raw_auth_credential=service_account_credential + ) + manager = CredentialManager(auth_config) + + # Register custom exchanger if needed + manager.register_credential_exchanger( + AuthCredentialTypes.CUSTOM_TYPE, + CustomCredentialExchanger() + ) + + # Register custom refresher if needed + manager.register_credential_refresher( + AuthCredentialTypes.CUSTOM_TYPE, + CustomCredentialRefresher() + ) + + # Load and prepare credential + credential = await manager.load_auth_credential(tool_context) + ``` + """ + + def __init__( + self, + auth_config: AuthConfig, + ): + self._auth_config = auth_config + self._exchanger_registry = CredentialExchangerRegistry() + self._refresher_registry = CredentialRefresherRegistry() + + # Register default exchangers and refreshers + # TODO: support service account credential exchanger + from .refresher.oauth2_credential_refresher import OAuth2CredentialRefresher + + oauth2_refresher = OAuth2CredentialRefresher() + self._refresher_registry.register( + AuthCredentialTypes.OAUTH2, oauth2_refresher + ) + self._refresher_registry.register( + AuthCredentialTypes.OPEN_ID_CONNECT, oauth2_refresher + ) + + def register_credential_exchanger( + self, + credential_type: AuthCredentialTypes, + exchanger_instance: BaseCredentialExchanger, + ) -> None: + """Register a credential exchanger for a credential type. + + Args: + credential_type: The credential type to register for. + exchanger_instance: The exchanger instance to register. + """ + self._exchanger_registry.register(credential_type, exchanger_instance) + + async def request_credential(self, tool_context: ToolContext) -> None: + tool_context.request_credential(self._auth_config) + + async def get_auth_credential( + self, tool_context: ToolContext + ) -> Optional[AuthCredential]: + """Load and prepare authentication credential through a structured workflow.""" + + # Step 1: Validate credential configuration + await self._validate_credential() + + # Step 2: Check if credential is already ready (no processing needed) + if self._is_credential_ready(): + return self._auth_config.raw_auth_credential + + # Step 3: Try to load existing processed credential + credential = await self._load_existing_credential(tool_context) + + # Step 4: If no existing credential, load from auth response + # TODO instead of load from auth response, we can store auth response in + # credential service. + was_from_auth_response = False + if not credential: + credential = await self._load_from_auth_response(tool_context) + was_from_auth_response = True + + # Step 5: If still no credential available, return None + if not credential: + return None + + # Step 6: Exchange credential if needed (e.g., service account to access token) + credential, was_exchanged = await self._exchange_credential(credential) + + # Step 7: Refresh credential if expired + if not was_exchanged: + credential, was_refreshed = await self._refresh_credential(credential) + + # Step 8: Save credential if it was modified + if was_from_auth_response or was_exchanged or was_refreshed: + await self._save_credential(tool_context, credential) + + return credential + + async def _load_existing_credential( + self, tool_context: ToolContext + ) -> Optional[AuthCredential]: + """Load existing credential from credential service or cached exchanged credential.""" + + # Try loading from credential service first + credential = await self._load_from_credential_service(tool_context) + if credential: + return credential + + # Check if we have a cached exchanged credential + if self._auth_config.exchanged_auth_credential: + return self._auth_config.exchanged_auth_credential + + return None + + async def _load_from_credential_service( + self, tool_context: ToolContext + ) -> Optional[AuthCredential]: + """Load credential from credential service if available.""" + credential_service = tool_context._invocation_context.credential_service + if credential_service: + # Note: This should be made async in a future refactor + # For now, assuming synchronous operation + return await credential_service.load_credential( + self._auth_config, tool_context + ) + return None + + async def _load_from_auth_response( + self, tool_context: ToolContext + ) -> Optional[AuthCredential]: + """Load credential from auth response in tool context.""" + return tool_context.get_auth_response(self._auth_config) + + async def _exchange_credential( + self, credential: AuthCredential + ) -> tuple[AuthCredential, bool]: + """Exchange credential if needed and return the credential and whether it was exchanged.""" + exchanger = self._exchanger_registry.get_exchanger(credential.auth_type) + if not exchanger: + return credential, False + + exchanged_credential = await exchanger.exchange( + credential, self._auth_config.auth_scheme + ) + return exchanged_credential, True + + async def _refresh_credential( + self, credential: AuthCredential + ) -> tuple[AuthCredential, bool]: + """Refresh credential if expired and return the credential and whether it was refreshed.""" + refresher = self._refresher_registry.get_refresher(credential.auth_type) + if not refresher: + return credential, False + + if await refresher.is_refresh_needed( + credential, self._auth_config.auth_scheme + ): + refreshed_credential = await refresher.refresh( + credential, self._auth_config.auth_scheme + ) + return refreshed_credential, True + + return credential, False + + def _is_credential_ready(self) -> bool: + """Check if credential is ready to use without further processing.""" + raw_credential = self._auth_config.raw_auth_credential + if not raw_credential: + return False + + # Simple credentials that don't need exchange or refresh + return raw_credential.auth_type in ( + AuthCredentialTypes.API_KEY, + AuthCredentialTypes.HTTP, + # Add other simple auth types as needed + ) + + async def _validate_credential(self) -> None: + """Validate credential configuration and raise errors if invalid.""" + if not self._auth_config.raw_auth_credential: + if self._auth_config.auth_scheme.type_ in ( + AuthSchemeType.oauth2, + AuthSchemeType.openIdConnect, + ): + raise ValueError( + "raw_auth_credential is required for auth_scheme type " + f"{self._auth_config.auth_scheme.type_}" + ) + + raw_credential = self._auth_config.raw_auth_credential + if raw_credential: + if ( + raw_credential.auth_type + in ( + AuthCredentialTypes.OAUTH2, + AuthCredentialTypes.OPEN_ID_CONNECT, + ) + and not raw_credential.oauth2 + ): + raise ValueError( + "auth_config.raw_credential.oauth2 required for credential type " + f"{raw_credential.auth_type}" + ) + # Additional validation can be added here + + async def _save_credential( + self, tool_context: ToolContext, credential: AuthCredential + ) -> None: + """Save credential to credential service if available.""" + credential_service = tool_context._invocation_context.credential_service + if credential_service: + # Update the exchanged credential in config + self._auth_config.exchanged_auth_credential = credential + await credential_service.save_credential(self._auth_config, tool_context) diff --git a/src/google/adk/auth/credential_service/session_state_credential_service.py b/src/google/adk/auth/credential_service/session_state_credential_service.py new file mode 100644 index 000000000..e2ff7e07d --- /dev/null +++ b/src/google/adk/auth/credential_service/session_state_credential_service.py @@ -0,0 +1,83 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import Optional + +from typing_extensions import override + +from ...tools.tool_context import ToolContext +from ...utils.feature_decorator import experimental +from ..auth_credential import AuthCredential +from ..auth_tool import AuthConfig +from .base_credential_service import BaseCredentialService + + +@experimental +class SessionStateCredentialService(BaseCredentialService): + """Class for implementation of credential service using session state as the + store. + Note: store credential in session may not be secure, use at your own risk. + """ + + @override + async def load_credential( + self, + auth_config: AuthConfig, + tool_context: ToolContext, + ) -> Optional[AuthCredential]: + """ + Loads the credential by auth config and current tool context from the + backend credential store. + + Args: + auth_config: The auth config which contains the auth scheme and auth + credential information. auth_config.get_credential_key will be used to + build the key to load the credential. + + tool_context: The context of the current invocation when the tool is + trying to load the credential. + + Returns: + Optional[AuthCredential]: the credential saved in the store. + + """ + return tool_context.state.get(auth_config.credential_key) + + @override + async def save_credential( + self, + auth_config: AuthConfig, + tool_context: ToolContext, + ) -> None: + """ + Saves the exchanged_auth_credential in auth config to the backend credential + store. + + Args: + auth_config: The auth config which contains the auth scheme and auth + credential information. auth_config.get_credential_key will be used to + build the key to save the credential. + + tool_context: The context of the current invocation when the tool is + trying to save the credential. + + Returns: + None + """ + + tool_context.state[auth_config.credential_key] = ( + auth_config.exchanged_auth_credential + ) diff --git a/src/google/adk/auth/exchanger/__init__.py b/src/google/adk/auth/exchanger/__init__.py index 4226ae715..3b0fbb246 100644 --- a/src/google/adk/auth/exchanger/__init__.py +++ b/src/google/adk/auth/exchanger/__init__.py @@ -15,9 +15,7 @@ """Credential exchanger module.""" from .base_credential_exchanger import BaseCredentialExchanger -from .service_account_credential_exchanger import ServiceAccountCredentialExchanger __all__ = [ "BaseCredentialExchanger", - "ServiceAccountCredentialExchanger", ] diff --git a/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py b/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py new file mode 100644 index 000000000..768457e1a --- /dev/null +++ b/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py @@ -0,0 +1,104 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""OAuth2 credential exchanger implementation.""" + +from __future__ import annotations + +import logging +from typing import Optional + +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_schemes import AuthScheme +from google.adk.auth.auth_schemes import OAuthGrantType +from google.adk.auth.oauth2_credential_util import create_oauth2_session +from google.adk.auth.oauth2_credential_util import update_credential_with_tokens +from google.adk.utils.feature_decorator import experimental +from typing_extensions import override + +from .base_credential_exchanger import BaseCredentialExchanger +from .base_credential_exchanger import CredentialExchangError + +try: + from authlib.integrations.requests_client import OAuth2Session + + AUTHLIB_AVIALABLE = True +except ImportError: + AUTHLIB_AVIALABLE = False + +logger = logging.getLogger("google_adk." + __name__) + + +@experimental +class OAuth2CredentialExchanger(BaseCredentialExchanger): + """Exchanges OAuth2 credentials from authorization responses.""" + + @override + async def exchange( + self, + auth_credential: AuthCredential, + auth_scheme: Optional[AuthScheme] = None, + ) -> AuthCredential: + """Exchange OAuth2 credential from authorization response. + if credential exchange failed, the original credential will be returned. + + Args: + auth_credential: The OAuth2 credential to exchange. + auth_scheme: The OAuth2 authentication scheme. + + Returns: + The exchanged credential with access token. + + Raises: + CredentialExchangError: If auth_scheme is missing. + """ + if not auth_scheme: + raise CredentialExchangError( + "auth_scheme is required for OAuth2 credential exchange" + ) + + if not AUTHLIB_AVIALABLE: + # If authlib is not available, we cannot exchange the credential. + # We return the original credential without exchange. + # The client using this tool can decide to exchange the credential + # themselves using other lib. + logger.warning( + "authlib is not available, skipping OAuth2 credential exchange." + ) + return auth_credential + + if auth_credential.oauth2 and auth_credential.oauth2.access_token: + return auth_credential + + client, token_endpoint = create_oauth2_session(auth_scheme, auth_credential) + if not client: + logger.warning("Could not create OAuth2 session for token exchange") + return auth_credential + + try: + tokens = client.fetch_token( + token_endpoint, + authorization_response=auth_credential.oauth2.auth_response_uri, + code=auth_credential.oauth2.auth_code, + grant_type=OAuthGrantType.AUTHORIZATION_CODE, + ) + update_credential_with_tokens(auth_credential, tokens) + logger.debug("Successfully exchanged OAuth2 tokens") + except Exception as e: + # TODO reconsider whether we should raise errors in this case + logger.error("Failed to exchange OAuth2 tokens: %s", e) + # Return original credential on failure + return auth_credential + + return auth_credential diff --git a/src/google/adk/auth/exchanger/service_account_credential_exchanger.py b/src/google/adk/auth/exchanger/service_account_credential_exchanger.py deleted file mode 100644 index 415081ca5..000000000 --- a/src/google/adk/auth/exchanger/service_account_credential_exchanger.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Credential fetcher for Google Service Account.""" - -from __future__ import annotations - -from typing import Optional - -import google.auth -from google.auth.transport.requests import Request -from google.oauth2 import service_account -from typing_extensions import override - -from ...utils.feature_decorator import experimental -from ..auth_credential import AuthCredential -from ..auth_credential import AuthCredentialTypes -from ..auth_schemes import AuthScheme -from .base_credential_exchanger import BaseCredentialExchanger - - -@experimental -class ServiceAccountCredentialExchanger(BaseCredentialExchanger): - """Exchanges Google Service Account credentials for an access token. - - Uses the default service credential if `use_default_credential = True`. - Otherwise, uses the service account credential provided in the auth - credential. - """ - - @override - async def exchange( - self, - auth_credential: AuthCredential, - auth_scheme: Optional[AuthScheme] = None, - ) -> AuthCredential: - """Exchanges the service account auth credential for an access token. - - If the AuthCredential contains a service account credential, it will be used - to exchange for an access token. Otherwise, if use_default_credential is True, - the default application credential will be used for exchanging an access token. - - Args: - auth_scheme: The authentication scheme. - auth_credential: The credential to exchange. - - Returns: - An AuthCredential in OAUTH2 format, containing the exchanged credential JSON. - - Raises: - ValueError: If service account credentials are missing or invalid. - Exception: If credential exchange or refresh fails. - """ - if auth_credential is None: - raise ValueError("Credential cannot be None.") - - if auth_credential.auth_type != AuthCredentialTypes.SERVICE_ACCOUNT: - raise ValueError("Credential is not a service account credential.") - - if auth_credential.service_account is None: - raise ValueError( - "Service account credentials are missing. Please provide them." - ) - - if ( - auth_credential.service_account.service_account_credential is None - and not auth_credential.service_account.use_default_credential - ): - raise ValueError( - "Service account credentials are invalid. Please set the" - " service_account_credential field or set `use_default_credential =" - " True` to use application default credential in a hosted service" - " like Google Cloud Run." - ) - - try: - if auth_credential.service_account.use_default_credential: - credentials, _ = google.auth.default() - else: - config = auth_credential.service_account - credentials = service_account.Credentials.from_service_account_info( - config.service_account_credential.model_dump(), scopes=config.scopes - ) - - # Refresh credentials to ensure we have a valid access token - credentials.refresh(Request()) - - return AuthCredential( - auth_type=AuthCredentialTypes.OAUTH2, - google_oauth2_json=credentials.to_json(), - ) - except Exception as e: - raise ValueError(f"Failed to exchange service account token: {e}") from e diff --git a/src/google/adk/auth/oauth2_credential_fetcher.py b/src/google/adk/auth/oauth2_credential_fetcher.py deleted file mode 100644 index c9e838b25..000000000 --- a/src/google/adk/auth/oauth2_credential_fetcher.py +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import annotations - -import logging - -from ..utils.feature_decorator import experimental -from .auth_credential import AuthCredential -from .auth_schemes import AuthScheme -from .auth_schemes import OAuthGrantType -from .oauth2_credential_util import create_oauth2_session -from .oauth2_credential_util import update_credential_with_tokens - -try: - from authlib.oauth2.rfc6749 import OAuth2Token - - AUTHLIB_AVIALABLE = True -except ImportError: - AUTHLIB_AVIALABLE = False - - -logger = logging.getLogger("google_adk." + __name__) - - -@experimental -class OAuth2CredentialFetcher: - """Exchanges and refreshes an OAuth2 access token. (Experimental)""" - - def __init__( - self, - auth_scheme: AuthScheme, - auth_credential: AuthCredential, - ): - self._auth_scheme = auth_scheme - self._auth_credential = auth_credential - - def _update_credential(self, tokens: OAuth2Token) -> None: - self._auth_credential.oauth2.access_token = tokens.get("access_token") - self._auth_credential.oauth2.refresh_token = tokens.get("refresh_token") - self._auth_credential.oauth2.expires_at = ( - int(tokens.get("expires_at")) if tokens.get("expires_at") else None - ) - self._auth_credential.oauth2.expires_in = ( - int(tokens.get("expires_in")) if tokens.get("expires_in") else None - ) - - def exchange(self) -> AuthCredential: - """Exchange an oauth token from the authorization response. - - Returns: - An AuthCredential object containing the access token. - """ - if not AUTHLIB_AVIALABLE: - return self._auth_credential - - if ( - self._auth_credential.oauth2 - and self._auth_credential.oauth2.access_token - ): - return self._auth_credential - - client, token_endpoint = create_oauth2_session( - self._auth_scheme, self._auth_credential - ) - if not client: - logger.warning("Could not create OAuth2 session for token exchange") - return self._auth_credential - - try: - tokens = client.fetch_token( - token_endpoint, - authorization_response=self._auth_credential.oauth2.auth_response_uri, - code=self._auth_credential.oauth2.auth_code, - grant_type=OAuthGrantType.AUTHORIZATION_CODE, - ) - update_credential_with_tokens(self._auth_credential, tokens) - logger.info("Successfully exchanged OAuth2 tokens") - except Exception as e: - logger.error("Failed to exchange OAuth2 tokens: %s", e) - # Return original credential on failure - return self._auth_credential - - return self._auth_credential - - def refresh(self) -> AuthCredential: - """Refresh an oauth token. - - Returns: - An AuthCredential object containing the refreshed access token. - """ - if not AUTHLIB_AVIALABLE: - return self._auth_credential - credential = self._auth_credential - if not credential.oauth2: - return credential - - if OAuth2Token({ - "expires_at": credential.oauth2.expires_at, - "expires_in": credential.oauth2.expires_in, - }).is_expired(): - client, token_endpoint = create_oauth2_session( - self._auth_scheme, self._auth_credential - ) - if not client: - logger.warning("Could not create OAuth2 session for token refresh") - return credential - - try: - tokens = client.refresh_token( - url=token_endpoint, - refresh_token=credential.oauth2.refresh_token, - ) - update_credential_with_tokens(self._auth_credential, tokens) - logger.info("Successfully refreshed OAuth2 tokens") - except Exception as e: - logger.error("Failed to refresh OAuth2 tokens: %s", e) - # Return original credential on failure - return credential - - return self._auth_credential diff --git a/src/google/adk/auth/refresher/oauth2_credential_refresher.py b/src/google/adk/auth/refresher/oauth2_credential_refresher.py new file mode 100644 index 000000000..4c19520ce --- /dev/null +++ b/src/google/adk/auth/refresher/oauth2_credential_refresher.py @@ -0,0 +1,126 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""OAuth2 credential refresher implementation.""" + +from __future__ import annotations + +import json +import logging +from typing import Optional + +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_schemes import AuthScheme +from google.adk.auth.oauth2_credential_util import create_oauth2_session +from google.adk.auth.oauth2_credential_util import update_credential_with_tokens +from google.adk.utils.feature_decorator import experimental +from google.auth.transport.requests import Request +from google.oauth2.credentials import Credentials +from typing_extensions import override + +from .base_credential_refresher import BaseCredentialRefresher + +try: + from authlib.oauth2.rfc6749 import OAuth2Token + + AUTHLIB_AVIALABLE = True +except ImportError: + AUTHLIB_AVIALABLE = False + +logger = logging.getLogger("google_adk." + __name__) + + +@experimental +class OAuth2CredentialRefresher(BaseCredentialRefresher): + """Refreshes OAuth2 credentials including Google OAuth2 JSON credentials.""" + + @override + async def is_refresh_needed( + self, + auth_credential: AuthCredential, + auth_scheme: Optional[AuthScheme] = None, + ) -> bool: + """Check if the OAuth2 credential needs to be refreshed. + + Args: + auth_credential: The OAuth2 credential to check. + auth_scheme: The OAuth2 authentication scheme (optional for Google OAuth2 JSON). + + Returns: + True if the credential needs to be refreshed, False otherwise. + """ + + # Handle regular OAuth2 credentials + if auth_credential.oauth2: + if not AUTHLIB_AVIALABLE: + return False + + return OAuth2Token({ + "expires_at": auth_credential.oauth2.expires_at, + "expires_in": auth_credential.oauth2.expires_in, + }).is_expired() + + return False + + @override + async def refresh( + self, + auth_credential: AuthCredential, + auth_scheme: Optional[AuthScheme] = None, + ) -> AuthCredential: + """Refresh the OAuth2 credential. + If refresh failed, return the original credential. + + Args: + auth_credential: The OAuth2 credential to refresh. + auth_scheme: The OAuth2 authentication scheme (optional for Google OAuth2 JSON). + + Returns: + The refreshed credential. + + """ + + # Handle regular OAuth2 credentials + if auth_credential.oauth2 and auth_scheme: + if not AUTHLIB_AVIALABLE: + return auth_credential + + if not auth_credential.oauth2: + return auth_credential + + if OAuth2Token({ + "expires_at": auth_credential.oauth2.expires_at, + "expires_in": auth_credential.oauth2.expires_in, + }).is_expired(): + client, token_endpoint = create_oauth2_session( + auth_scheme, auth_credential + ) + if not client: + logger.warning("Could not create OAuth2 session for token refresh") + return auth_credential + + try: + tokens = client.refresh_token( + url=token_endpoint, + refresh_token=auth_credential.oauth2.refresh_token, + ) + update_credential_with_tokens(auth_credential, tokens) + logger.debug("Successfully refreshed OAuth2 tokens") + except Exception as e: + # TODO reconsider whether we should raise error when refresh failed. + logger.error("Failed to refresh OAuth2 tokens: %s", e) + # Return original credential on failure + return auth_credential + + return auth_credential diff --git a/src/google/adk/cli/browser/chunk-EQDQRRRY.js b/src/google/adk/cli/browser/chunk-EQDQRRRY.js new file mode 100644 index 000000000..134dff1fa --- /dev/null +++ b/src/google/adk/cli/browser/chunk-EQDQRRRY.js @@ -0,0 +1 @@ +var p=Object.create;var j=Object.defineProperty,q=Object.defineProperties,r=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,u=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var l=(a,b,c)=>b in a?j(a,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[b]=c,w=(a,b)=>{for(var c in b||={})k.call(b,c)&&l(a,c,b[c]);if(g)for(var c of g(b))m.call(b,c)&&l(a,c,b[c]);return a},x=(a,b)=>q(a,s(b));var y=(a,b)=>{var c={};for(var d in a)k.call(a,d)&&b.indexOf(d)<0&&(c[d]=a[d]);if(a!=null&&g)for(var d of g(a))b.indexOf(d)<0&&m.call(a,d)&&(c[d]=a[d]);return c};var z=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var v=(a,b,c,d)=>{if(b&&typeof b=="object"||typeof b=="function")for(let e of t(b))!k.call(a,e)&&e!==c&&j(a,e,{get:()=>b[e],enumerable:!(d=r(b,e))||d.enumerable});return a};var A=(a,b,c)=>(c=a!=null?p(u(a)):{},v(b||!a||!a.__esModule?j(c,"default",{value:a,enumerable:!0}):c,a));var B=(a,b,c)=>new Promise((d,e)=>{var n=f=>{try{h(c.next(f))}catch(i){e(i)}},o=f=>{try{h(c.throw(f))}catch(i){e(i)}},h=f=>f.done?d(f.value):Promise.resolve(f.value).then(n,o);h((c=c.apply(a,b)).next())});export{w as a,x as b,y as c,z as d,A as e,B as f}; diff --git a/src/google/adk/cli/browser/chunk-TXJFAAIW.js b/src/google/adk/cli/browser/chunk-TXJFAAIW.js new file mode 100644 index 000000000..24066bccc --- /dev/null +++ b/src/google/adk/cli/browser/chunk-TXJFAAIW.js @@ -0,0 +1,2 @@ +import"./chunk-EQDQRRRY.js";var O=function(l,i){if(!(l instanceof i))throw new TypeError("Cannot call a class as a function")},R=function(){function l(i,e){for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:1,e=i>0?l.toFixed(i).replace(/0+$/,"").replace(/\.$/,""):l.toString();return e||"0"}var z=function(){function l(i,e,t,r){O(this,l);var n=this;function o(a){if(a.startsWith("hsl")){var s=a.match(/([\-\d\.e]+)/g).map(Number),p=y(s,4),u=p[0],f=p[1],d=p[2],b=p[3];b===void 0&&(b=1),u/=360,f/=100,d/=100,n.hsla=[u,f,d,b]}else if(a.startsWith("rgb")){var m=a.match(/([\-\d\.e]+)/g).map(Number),h=y(m,4),v=h[0],g=h[1],S=h[2],k=h[3];k===void 0&&(k=1),n.rgba=[v,g,S,k]}else a.startsWith("#")?n.rgba=l.hexToRgb(a):n.rgba=l.nameToRgb(a)||l.hexToRgb(a)}if(i!==void 0)if(Array.isArray(i))this.rgba=i;else if(t===void 0){var c=i&&""+i;c&&o(c.toLowerCase())}else this.rgba=[i,e,t,r===void 0?1:r]}return R(l,[{key:"printRGB",value:function(e){var t=e?this.rgba:this.rgba.slice(0,3),r=t.map(function(n,o){return A(n,o===3?3:0)});return e?"rgba("+r+")":"rgb("+r+")"}},{key:"printHSL",value:function(e){var t=[360,100,100,1],r=["","%","%",""],n=e?this.hsla:this.hsla.slice(0,3),o=n.map(function(c,a){return A(c*t[a],a===3?3:1)+r[a]});return e?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=l.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=l.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,t=e.map(function(r,n){return n<3?r.toString(16):Math.round(r*255).toString(16)});return"#"+t.map(function(r){return r.padStart(2,"0")}).join("")},set:function(e){this.rgba=l.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(n){return parseInt(n,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=N[t];return r===void 0?r:l.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var t=y(e,4),r=t[0],n=t[1],o=t[2],c=t[3];r/=255,n/=255,o/=255;var a=Math.max(r,n,o),s=Math.min(r,n,o),p=void 0,u=void 0,f=(a+s)/2;if(a===s)p=u=0;else{var d=a-s;switch(u=f>.5?d/(2-a-s):d/(a+s),a){case r:p=(n-o)/d+(n1&&(g-=1),g<.16666666666666666?h+(v-h)*6*g:g<.5?v:g<.6666666666666666?h+(v-h)*(.6666666666666666-g)*6:h},f=o<.5?o*(1+n):o+n-o*n,d=2*o-f;a=u(d,f,r+1/3),s=u(d,f,r),p=u(d,f,r-1/3)}var b=[a*255,s*255,p*255].map(Math.round);return b[3]=c,b}}]),l}(),F=function(){function l(){O(this,l),this._events=[]}return R(l,[{key:"add",value:function(e,t,r){e.addEventListener(t,r,!1),this._events.push({target:e,type:t,handler:r})}},{key:"remove",value:function(e,t,r){this._events=this._events.filter(function(n){var o=!0;return e&&e!==n.target&&(o=!1),t&&t!==n.type&&(o=!1),r&&r!==n.handler&&(o=!1),o&&l._doRemove(n.target,n.type,n.handler),!o})}},{key:"destroy",value:function(){this._events.forEach(function(e){return l._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,t,r){e.removeEventListener(t,r,!1)}}]),l}();function U(l){var i=document.createElement("div");return i.innerHTML=l,i.firstElementChild}function T(l,i,e){var t=!1;function r(a,s,p){return Math.max(s,Math.min(a,p))}function n(a,s,p){if(p&&(t=!0),!!t){a.preventDefault();var u=i.getBoundingClientRect(),f=u.width,d=u.height,b=s.clientX,m=s.clientY,h=r(b-u.left,0,f),v=r(m-u.top,0,d);e(h/f,v/d)}}function o(a,s){var p=a.buttons===void 0?a.which:a.buttons;p===1?n(a,a,s):t=!1}function c(a,s){a.touches.length===1?n(a,a.touches[0],s):t=!1}l.add(i,"mousedown",function(a){o(a,!0)}),l.add(i,"touchstart",function(a){c(a,!0)}),l.add(window,"mousemove",o),l.add(i,"touchmove",c),l.add(window,"mouseup",function(a){t=!1}),l.add(i,"touchend",function(a){t=!1}),l.add(i,"touchcancel",function(a){t=!1})}var B=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em, + linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,G=360,P="keydown",x="mousedown",H="focusin";function _(l,i){return(i||document).querySelector(l)}function M(l){l.preventDefault(),l.stopPropagation()}function D(l,i,e,t,r){l.add(i,P,function(n){e.indexOf(n.key)>=0&&(r&&M(n),t(n))})}var W=function(){function l(i){O(this,l),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new F,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(i)}return R(l,[{key:"setOptions",value:function(e){var t=this;if(!e)return;var r=this.settings;function n(s,p,u){for(var f in s)u&&u.indexOf(f)>=0||(p[f]=s[f])}if(e instanceof HTMLElement)r.parent=e;else{r.parent&&e.parent&&r.parent!==e.parent&&(this._events.remove(r.parent),this._popupInited=!1),n(e,r),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var o=e.color||e.colour;o&&this._setColor(o)}var c=r.parent;if(c&&r.popup&&!this._popupInited){var a=function(p){return t.openHandler(p)};this._events.add(c,"click",a),D(this._events,c,[" ","Spacebar","Enter"],a),this._popupInited=!0}else e.parent&&!r.popup&&this.show()}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var t=e&&e.type===P?this._domEdit:this.domElement;setTimeout(function(){return t.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var t=e&&e.type,r=!1;if(!e)r=!0;else if(t===x||t===H){var n=(this.__containedEvent||0)+100;e.timeStamp>n&&(r=!0)}else M(e),r=!0;r&&this.hide()&&(this.settings.parent.style.pointerEvents="",t!==x&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,t){this.closeHandler(),this.setOptions(e),t&&this.openHandler()}},{key:"setColor",value:function(e,t){this._setColor(e,{silent:t})}},{key:"_setColor",value:function(e,t){if(typeof e=="string"&&(e=e.trim()),!!e){t=t||{};var r=void 0;try{r=new z(e)}catch(o){if(t.failSilently)return;throw o}if(!this.settings.alpha){var n=r.hsla;n[3]=1,r.hsla=n}this.colour=this.color=r,this._setHSLA(null,null,null,null,t)}}},{key:"setColour",value:function(e,t){this.setColor(e,t)}},{key:"show",value:function(){var e=this.settings.parent;if(!e)return!1;if(this.domElement){var t=this._toggleDOM(!0);return this._setPosition(),t}var r=this.settings.template||'
',n=U(r);return this.domElement=n,this._domH=_(".picker_hue",n),this._domSL=_(".picker_sl",n),this._domA=_(".picker_alpha",n),this._domEdit=_(".picker_editor input",n),this._domSample=_(".picker_sample",n),this._domOkay=_(".picker_done button",n),this._domCancel=_(".picker_cancel button",n),n.classList.add("layout_"+this.settings.layout),this.settings.alpha||n.classList.add("no_alpha"),this.settings.editor||n.classList.add("no_editor"),this.settings.cancelButton||n.classList.add("no_cancel"),this._ifPopup(function(){return n.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var e=this,t=this,r=this.domElement,n=this._events;function o(s,p,u){n.add(s,p,u)}o(r,"click",function(s){return s.preventDefault()}),T(n,this._domH,function(s,p){return t._setHSLA(s)}),T(n,this._domSL,function(s,p){return t._setHSLA(null,s,1-p)}),this.settings.alpha&&T(n,this._domA,function(s,p){return t._setHSLA(null,null,null,1-p)});var c=this._domEdit;o(c,"input",function(s){t._setColor(this.value,{fromEditor:!0,failSilently:!0})}),o(c,"focus",function(s){var p=this;p.selectionStart===p.selectionEnd&&p.select()}),this._ifPopup(function(){var s=function(f){return e.closeHandler(f)};o(window,x,s),o(window,H,s),D(n,r,["Esc","Escape"],s);var p=function(f){e.__containedEvent=f.timeStamp};o(r,x,p),o(r,H,p),o(e._domCancel,"click",s)});var a=function(p){e._ifPopup(function(){return e.closeHandler(p)}),e.onDone&&e.onDone(e.colour)};o(this._domOkay,"click",a),D(n,r,["Enter"],a)}},{key:"_setPosition",value:function(){var e=this.settings.parent,t=this.domElement;e!==t.parentNode&&e.appendChild(t),this._ifPopup(function(r){getComputedStyle(e).position==="static"&&(e.style.position="relative");var n=r===!0?"popup_right":"popup_"+r;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(o){o===n?t.classList.add(o):t.classList.remove(o)}),t.classList.add(n)})}},{key:"_setHSLA",value:function(e,t,r,n,o){o=o||{};var c=this.colour,a=c.hsla;[e,t,r,n].forEach(function(s,p){(s||s===0)&&(a[p]=s)}),c.hsla=a,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(c)}},{key:"_updateUI",value:function(e){if(!this.domElement)return;e=e||{};var t=this.colour,r=t.hsla,n="hsl("+r[0]*G+", 100%, 50%)",o=t.hslString,c=t.hslaString,a=this._domH,s=this._domSL,p=this._domA,u=_(".picker_selector",a),f=_(".picker_selector",s),d=_(".picker_selector",p);function b(I,C,L){C.style.left=L*100+"%"}function m(I,C,L){C.style.top=L*100+"%"}b(a,u,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=n,b(s,f,r[1]),m(s,f,1-r[2]),s.style.color=o,m(p,d,1-r[3]);var h=o,v=h.replace("hsl","hsla").replace(")",", 0)"),g="linear-gradient("+[h,v]+")";if(this._domA.style.background=g+", "+B,!e.fromEditor){var S=this.settings.editorFormat,k=this.settings.alpha,w=void 0;switch(S){case"rgb":w=t.printRGB(k);break;case"hsl":w=t.printHSL(k);break;default:w=t.printHex(k)}this._domEdit.value=w}this._domSample.style.color=c}},{key:"_ifPopup",value:function(e,t){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):t&&t()}},{key:"_toggleDOM",value:function(e){var t=this.domElement;if(!t)return!1;var r=e?"":"none",n=t.style.display!==r;return n&&(t.style.display=r),n}}]),l}();E=document.createElement("style"),E.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(E),W.StyleElement=E;var E;export{W as default}; diff --git a/src/google/adk/cli/browser/index.html b/src/google/adk/cli/browser/index.html index 5f2c6dce0..ebd088d3b 100644 --- a/src/google/adk/cli/browser/index.html +++ b/src/google/adk/cli/browser/index.html @@ -25,9 +25,9 @@ - + - + diff --git a/src/google/adk/cli/browser/main-JAAWEV7F.js b/src/google/adk/cli/browser/main-JAAWEV7F.js deleted file mode 100644 index 947f0d8a6..000000000 --- a/src/google/adk/cli/browser/main-JAAWEV7F.js +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Copyright 2025 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var qF=Object.defineProperty,VF=Object.defineProperties;var WF=Object.getOwnPropertyDescriptors;var pC=Object.getOwnPropertySymbols;var HD=Object.prototype.hasOwnProperty,TD=Object.prototype.propertyIsEnumerable;var JD=(e,t,A)=>t in e?qF(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A,v=(e,t)=>{for(var A in t||={})HD.call(t,A)&&JD(e,A,t[A]);if(pC)for(var A of pC(t))TD.call(t,A)&&JD(e,A,t[A]);return e},fA=(e,t)=>VF(e,WF(t));var il=(e,t)=>{var A={};for(var i in e)HD.call(e,i)&&t.indexOf(i)<0&&(A[i]=e[i]);if(e!=null&&pC)for(var i of pC(e))t.indexOf(i)<0&&TD.call(e,i)&&(A[i]=e[i]);return A};var Ze=(e,t,A)=>new Promise((i,o)=>{var n=s=>{try{r(A.next(s))}catch(a){o(a)}},g=s=>{try{r(A.throw(s))}catch(a){o(a)}},r=s=>s.done?i(s.value):Promise.resolve(s.value).then(n,g);r((A=A.apply(e,t)).next())});function rl(e,t){return Object.is(e,t)}var Xe=null,DC=!1,sl=1,Gt=Symbol("SIGNAL");function XA(e){let t=Xe;return Xe=e,t}function al(){return Xe}var gr={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Vs(e){if(DC)throw new Error("");if(Xe===null)return;Xe.consumerOnSignalRead(e);let t=Xe.nextProducerIndex++;if(bC(Xe),te.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function yC(e){bC(e);for(let t=0;t0}function bC(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function ZD(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function qD(e){return e.producerNode!==void 0}function RC(e,t){let A=Object.create(jF);A.computation=e,t!==void 0&&(A.equal=t);let i=()=>{if(Il(A),Vs(A),A.value===fC)throw A.error;return A.value};return i[Gt]=A,i}var ol=Symbol("UNSET"),nl=Symbol("COMPUTING"),fC=Symbol("ERRORED"),jF=fA(v({},gr),{value:ol,dirty:!0,error:null,equal:rl,kind:"computed",producerMustRecompute(e){return e.value===ol||e.value===nl},producerRecomputeValue(e){if(e.value===nl)throw new Error("Detected cycle in computations.");let t=e.value;e.value=nl;let A=Ws(e),i,o=!1;try{i=e.computation(),XA(null),o=t!==ol&&t!==fC&&i!==fC&&e.equal(t,i)}catch(n){i=fC,e.error=n}finally{wC(e,A)}if(o){e.value=t;return}e.value=i,e.version++}});function XF(){throw new Error}var VD=XF;function WD(e){VD(e)}function cl(e){VD=e}var $F=null;function Ql(e,t){let A=Object.create(kC);A.value=e,t!==void 0&&(A.equal=t);let i=()=>(Vs(A),A.value);return i[Gt]=A,i}function js(e,t){Bl()||WD(e),e.equal(e.value,t)||(e.value=t,AN(e))}function El(e,t){Bl()||WD(e),js(e,t(e.value))}var kC=fA(v({},gr),{equal:rl,value:void 0,kind:"signal"});function AN(e){e.version++,OD(),Cl(e),$F?.()}function ll(e){let t=XA(null);try{return e()}finally{XA(t)}}var dl;function Xs(){return dl}function Lo(e){let t=dl;return dl=e,t}var vC=Symbol("NotFound");function vA(e){return typeof e=="function"}function rr(e){let A=e(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var SC=rr(e=>function(A){e(this),this.message=A?`${A.length} errors occurred during unsubscription: -${A.map((i,o)=>`${o+1}) ${i.toString()}`).join(` - `)}`:"",this.name="UnsubscriptionError",this.errors=A});function ig(e,t){if(e){let A=e.indexOf(t);0<=A&&e.splice(A,1)}}var FA=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:A}=this;if(A)if(this._parentage=null,Array.isArray(A))for(let n of A)n.remove(this);else A.remove(this);let{initialTeardown:i}=this;if(vA(i))try{i()}catch(n){t=n instanceof SC?n.errors:[n]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let n of o)try{zD(n)}catch(g){t=t??[],g instanceof SC?t=[...t,...g.errors]:t.push(g)}}if(t)throw new SC(t)}}add(t){var A;if(t&&t!==this)if(this.closed)zD(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(t)}}_hasParent(t){let{_parentage:A}=this;return A===t||Array.isArray(A)&&A.includes(t)}_addParent(t){let{_parentage:A}=this;this._parentage=Array.isArray(A)?(A.push(t),A):A?[A,t]:t}_removeParent(t){let{_parentage:A}=this;A===t?this._parentage=null:Array.isArray(A)&&ig(A,t)}remove(t){let{_finalizers:A}=this;A&&ig(A,t),t instanceof e&&t._removeParent(this)}};FA.EMPTY=(()=>{let e=new FA;return e.closed=!0,e})();var hl=FA.EMPTY;function FC(e){return e instanceof FA||e&&"closed"in e&&vA(e.remove)&&vA(e.add)&&vA(e.unsubscribe)}function zD(e){vA(e)?e():e.unsubscribe()}var Li={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var sr={setTimeout(e,t,...A){let{delegate:i}=sr;return i?.setTimeout?i.setTimeout(e,t,...A):setTimeout(e,t,...A)},clearTimeout(e){let{delegate:t}=sr;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function NC(e){sr.setTimeout(()=>{let{onUnhandledError:t}=Li;if(t)t(e);else throw e})}function $s(){}var jD=ul("C",void 0,void 0);function XD(e){return ul("E",void 0,e)}function $D(e){return ul("N",e,void 0)}function ul(e,t,A){return{kind:e,value:t,error:A}}var og=null;function ar(e){if(Li.useDeprecatedSynchronousErrorHandling){let t=!og;if(t&&(og={errorThrown:!1,error:null}),e(),t){let{errorThrown:A,error:i}=og;if(og=null,A)throw i}}else e()}function Af(e){Li.useDeprecatedSynchronousErrorHandling&&og&&(og.errorThrown=!0,og.error=e)}var Ko=class extends FA{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,FC(t)&&t.add(this)):this.destination=gN}static create(t,A,i){return new xo(t,A,i)}next(t){this.isStopped?pl($D(t),this):this._next(t)}error(t){this.isStopped?pl(XD(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?pl(jD,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},oN=Function.prototype.bind;function ml(e,t){return oN.call(e,t)}var Dl=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:A}=this;if(A.next)try{A.next(t)}catch(i){GC(i)}}error(t){let{partialObserver:A}=this;if(A.error)try{A.error(t)}catch(i){GC(i)}else GC(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(A){GC(A)}}},xo=class extends Ko{constructor(t,A,i){super();let o;if(vA(t)||!t)o={next:t??void 0,error:A??void 0,complete:i??void 0};else{let n;this&&Li.useDeprecatedNextContext?(n=Object.create(t),n.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&ml(t.next,n),error:t.error&&ml(t.error,n),complete:t.complete&&ml(t.complete,n)}):o=t}this.destination=new Dl(o)}};function GC(e){Li.useDeprecatedSynchronousErrorHandling?Af(e):NC(e)}function nN(e){throw e}function pl(e,t){let{onStoppedNotification:A}=Li;A&&sr.setTimeout(()=>A(e,t))}var gN={closed:!0,next:$s,error:nN,complete:$s};var Ir=typeof Symbol=="function"&&Symbol.observable||"@@observable";function wt(e){return e}function fl(...e){return wl(e)}function wl(e){return e.length===0?wt:e.length===1?e[0]:function(A){return e.reduce((i,o)=>o(i),A)}}var EA=(()=>{class e{constructor(A){A&&(this._subscribe=A)}lift(A){let i=new e;return i.source=this,i.operator=A,i}subscribe(A,i,o){let n=sN(A)?A:new xo(A,i,o);return ar(()=>{let{operator:g,source:r}=this;n.add(g?g.call(n,r):r?this._subscribe(n):this._trySubscribe(n))}),n}_trySubscribe(A){try{return this._subscribe(A)}catch(i){A.error(i)}}forEach(A,i){return i=ef(i),new i((o,n)=>{let g=new xo({next:r=>{try{A(r)}catch(s){n(s),g.unsubscribe()}},error:n,complete:o});this.subscribe(g)})}_subscribe(A){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(A)}[Ir](){return this}pipe(...A){return wl(A)(this)}toPromise(A){return A=ef(A),new A((i,o)=>{let n;this.subscribe(g=>n=g,g=>o(g),()=>i(n))})}}return e.create=t=>new e(t),e})();function ef(e){var t;return(t=e??Li.Promise)!==null&&t!==void 0?t:Promise}function rN(e){return e&&vA(e.next)&&vA(e.error)&&vA(e.complete)}function sN(e){return e&&e instanceof Ko||rN(e)&&FC(e)}function yl(e){return vA(e?.lift)}function UA(e){return t=>{if(yl(t))return t.lift(function(A){try{return e(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function xA(e,t,A,i,o){return new Ml(e,t,A,i,o)}var Ml=class extends Ko{constructor(t,A,i,o,n,g){super(t),this.onFinalize=n,this.shouldUnsubscribe=g,this._next=A?function(r){try{A(r)}catch(s){t.error(s)}}:super._next,this._error=o?function(r){try{o(r)}catch(s){t.error(s)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(r){t.error(r)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:A}=this;super.unsubscribe(),!A&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};function Cr(){return UA((e,t)=>{let A=null;e._refCount++;let i=xA(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){A=null;return}let o=e._connection,n=A;A=null,o&&(!n||o===n)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(i),i.closed||(A=e.connect())})}var En=class extends EA{constructor(t,A){super(),this.source=t,this.subjectFactory=A,this._subject=null,this._refCount=0,this._connection=null,yl(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){let t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new FA;let A=this.getSubject();t.add(this.source.subscribe(xA(A,void 0,()=>{this._teardown(),A.complete()},i=>{this._teardown(),A.error(i)},()=>this._teardown()))),t.closed&&(this._connection=null,t=FA.EMPTY)}return t}refCount(){return Cr()(this)}};var tf=rr(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var J=(()=>{class e extends EA{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(A){let i=new Br(this,this);return i.operator=A,i}_throwIfClosed(){if(this.closed)throw new tf}next(A){ar(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(A)}})}error(A){ar(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=A;let{observers:i}=this;for(;i.length;)i.shift().error(A)}})}complete(){ar(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:A}=this;for(;A.length;)A.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0}_trySubscribe(A){return this._throwIfClosed(),super._trySubscribe(A)}_subscribe(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)}_innerSubscribe(A){let{hasError:i,isStopped:o,observers:n}=this;return i||o?hl:(this.currentObservers=null,n.push(A),new FA(()=>{this.currentObservers=null,ig(n,A)}))}_checkFinalizedStatuses(A){let{hasError:i,thrownError:o,isStopped:n}=this;i?A.error(o):n&&A.complete()}asObservable(){let A=new EA;return A.source=this,A}}return e.create=(t,A)=>new Br(t,A),e})(),Br=class extends J{constructor(t,A){super(),this.destination=t,this.source=A}next(t){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.next)===null||i===void 0||i.call(A,t)}error(t){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.error)===null||i===void 0||i.call(A,t)}complete(){var t,A;(A=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||A===void 0||A.call(t)}_subscribe(t){var A,i;return(i=(A=this.source)===null||A===void 0?void 0:A.subscribe(t))!==null&&i!==void 0?i:hl}};var PA=class extends J{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let A=super._subscribe(t);return!A.closed&&t.next(this._value),A}getValue(){let{hasError:t,thrownError:A,_value:i}=this;if(t)throw A;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}};var Aa={now(){return(Aa.delegate||Date).now()},delegate:void 0};var Ki=class extends J{constructor(t=1/0,A=1/0,i=Aa){super(),this._bufferSize=t,this._windowTime=A,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=A===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,A)}next(t){let{isStopped:A,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:n,_windowTime:g}=this;A||(i.push(t),!o&&i.push(n.now()+g)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();let A=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:o}=this,n=o.slice();for(let g=0;ge.complete());function xC(e){return e&&vA(e.schedule)}function bl(e){return e[e.length-1]}function UC(e){return vA(bl(e))?e.pop():void 0}function to(e){return xC(bl(e))?e.pop():void 0}function nf(e,t){return typeof bl(e)=="number"?e.pop():t}function rf(e,t,A,i){function o(n){return n instanceof A?n:new A(function(g){g(n)})}return new(A||(A=Promise))(function(n,g){function r(c){try{a(i.next(c))}catch(h){g(h)}}function s(c){try{a(i.throw(c))}catch(h){g(h)}}function a(c){c.done?n(c.value):o(c.value).then(r,s)}a((i=i.apply(e,t||[])).next())})}function gf(e){var t=typeof Symbol=="function"&&Symbol.iterator,A=t&&e[t],i=0;if(A)return A.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ng(e){return this instanceof ng?(this.v=e,this):new ng(e)}function sf(e,t,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(e,t||[]),o,n=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),r("next"),r("throw"),r("return",g),o[Symbol.asyncIterator]=function(){return this},o;function g(D){return function(w){return Promise.resolve(w).then(D,h)}}function r(D,w){i[D]&&(o[D]=function(R){return new Promise(function(q,iA){n.push([D,R,q,iA])>1||s(D,R)})},w&&(o[D]=w(o[D])))}function s(D,w){try{a(i[D](w))}catch(R){p(n[0][3],R)}}function a(D){D.value instanceof ng?Promise.resolve(D.value.v).then(c,h):p(n[0][2],D)}function c(D){s("next",D)}function h(D){s("throw",D)}function p(D,w){D(w),n.shift(),n.length&&s(n[0][0],n[0][1])}}function af(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],A;return t?t.call(e):(e=typeof gf=="function"?gf(e):e[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(n){A[n]=e[n]&&function(g){return new Promise(function(r,s){g=e[n](g),o(r,s,g.done,g.value)})}}function o(n,g,r,s){Promise.resolve(s).then(function(a){n({value:a,done:r})},g)}}var Qr=e=>e&&typeof e.length=="number"&&typeof e!="function";function YC(e){return vA(e?.then)}function JC(e){return vA(e[Ir])}function HC(e){return Symbol.asyncIterator&&vA(e?.[Symbol.asyncIterator])}function TC(e){return new TypeError(`You provided ${e!==null&&typeof e=="object"?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function aN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var OC=aN();function PC(e){return vA(e?.[OC])}function ZC(e){return sf(this,arguments,function*(){let A=e.getReader();try{for(;;){let{value:i,done:o}=yield ng(A.read());if(o)return yield ng(void 0);yield yield ng(i)}}finally{A.releaseLock()}})}function qC(e){return vA(e?.getReader)}function Qe(e){if(e instanceof EA)return e;if(e!=null){if(JC(e))return IN(e);if(Qr(e))return CN(e);if(YC(e))return BN(e);if(HC(e))return If(e);if(PC(e))return cN(e);if(qC(e))return QN(e)}throw TC(e)}function IN(e){return new EA(t=>{let A=e[Ir]();if(vA(A.subscribe))return A.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function CN(e){return new EA(t=>{for(let A=0;A{e.then(A=>{t.closed||(t.next(A),t.complete())},A=>t.error(A)).then(null,NC)})}function cN(e){return new EA(t=>{for(let A of e)if(t.next(A),t.closed)return;t.complete()})}function If(e){return new EA(t=>{EN(e,t).catch(A=>t.error(A))})}function QN(e){return If(ZC(e))}function EN(e,t){var A,i,o,n;return rf(this,void 0,void 0,function*(){try{for(A=af(e);i=yield A.next(),!i.done;){let g=i.value;if(t.next(g),t.closed)return}}catch(g){o={error:g}}finally{try{i&&!i.done&&(n=A.return)&&(yield n.call(A))}finally{if(o)throw o.error}}t.complete()})}function _t(e,t,A,i=0,o=!1){let n=t.schedule(function(){A(),o?e.add(this.schedule(null,i)):this.unsubscribe()},i);if(e.add(n),!o)return n}function VC(e,t=0){return UA((A,i)=>{A.subscribe(xA(i,o=>_t(i,e,()=>i.next(o),t),()=>_t(i,e,()=>i.complete(),t),o=>_t(i,e,()=>i.error(o),t)))})}function WC(e,t=0){return UA((A,i)=>{i.add(e.schedule(()=>A.subscribe(i),t))})}function Cf(e,t){return Qe(e).pipe(WC(t),VC(t))}function Bf(e,t){return Qe(e).pipe(WC(t),VC(t))}function cf(e,t){return new EA(A=>{let i=0;return t.schedule(function(){i===e.length?A.complete():(A.next(e[i++]),A.closed||this.schedule())})})}function Qf(e,t){return new EA(A=>{let i;return _t(A,t,()=>{i=e[OC](),_t(A,t,()=>{let o,n;try{({value:o,done:n}=i.next())}catch(g){A.error(g);return}n?A.complete():A.next(o)},0,!0)}),()=>vA(i?.return)&&i.return()})}function zC(e,t){if(!e)throw new Error("Iterable cannot be null");return new EA(A=>{_t(A,t,()=>{let i=e[Symbol.asyncIterator]();_t(A,t,()=>{i.next().then(o=>{o.done?A.complete():A.next(o.value)})},0,!0)})})}function Ef(e,t){return zC(ZC(e),t)}function lf(e,t){if(e!=null){if(JC(e))return Cf(e,t);if(Qr(e))return cf(e,t);if(YC(e))return Bf(e,t);if(HC(e))return zC(e,t);if(PC(e))return Qf(e,t);if(qC(e))return Ef(e,t)}throw TC(e)}function de(e,t){return t?lf(e,t):Qe(e)}function gA(...e){let t=to(e);return de(e,t)}function ln(e,t){let A=vA(e)?e:()=>e,i=o=>o.error(A());return new EA(t?o=>t.schedule(i,0,o):i)}function dn(e){return!!e&&(e instanceof EA||vA(e.lift)&&vA(e.subscribe))}var Uo=rr(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function df(e){return e instanceof Date&&!isNaN(e)}function CA(e,t){return UA((A,i)=>{let o=0;A.subscribe(xA(i,n=>{i.next(e.call(t,n,o++))}))})}var{isArray:lN}=Array;function dN(e,t){return lN(t)?e(...t):e(t)}function Er(e){return CA(t=>dN(e,t))}var{isArray:hN}=Array,{getPrototypeOf:uN,prototype:mN,keys:pN}=Object;function jC(e){if(e.length===1){let t=e[0];if(hN(t))return{args:t,keys:null};if(DN(t)){let A=pN(t);return{args:A.map(i=>t[i]),keys:A}}}return{args:e,keys:null}}function DN(e){return e&&typeof e=="object"&&uN(e)===mN}function XC(e,t){return e.reduce((A,i,o)=>(A[i]=t[o],A),{})}function yt(...e){let t=to(e),A=UC(e),{args:i,keys:o}=jC(e);if(i.length===0)return de([],t);let n=new EA(fN(i,t,o?g=>XC(o,g):wt));return A?n.pipe(Er(A)):n}function fN(e,t,A=wt){return i=>{hf(t,()=>{let{length:o}=e,n=new Array(o),g=o,r=o;for(let s=0;s{let a=de(e[s],t),c=!1;a.subscribe(xA(i,h=>{n[s]=h,c||(c=!0,r--),r||i.next(A(n.slice()))},()=>{--g||i.complete()}))},i)},i)}}function hf(e,t,A){e?_t(A,e,t):t()}function uf(e,t,A,i,o,n,g,r){let s=[],a=0,c=0,h=!1,p=()=>{h&&!s.length&&!a&&t.complete()},D=R=>a{n&&t.next(R),a++;let q=!1;Qe(A(R,c++)).subscribe(xA(t,iA=>{o?.(iA),n?D(iA):t.next(iA)},()=>{q=!0},void 0,()=>{if(q)try{for(a--;s.length&&aw(iA)):w(iA)}p()}catch(iA){t.error(iA)}}))};return e.subscribe(xA(t,D,()=>{h=!0,p()})),()=>{r?.()}}function _e(e,t,A=1/0){return vA(t)?_e((i,o)=>CA((n,g)=>t(i,n,o,g))(Qe(e(i,o))),A):(typeof t=="number"&&(A=t),UA((i,o)=>uf(i,o,e,A)))}function hn(e=1/0){return _e(wt,e)}function mf(){return hn(1)}function un(...e){return mf()(de(e,to(e)))}function io(e){return new EA(t=>{Qe(e()).subscribe(t)})}function ia(...e){let t=UC(e),{args:A,keys:i}=jC(e),o=new EA(n=>{let{length:g}=A;if(!g){n.complete();return}let r=new Array(g),s=g,a=g;for(let c=0;c{h||(h=!0,a--),r[c]=p},()=>s--,void 0,()=>{(!s||!h)&&(a||n.next(i?XC(i,r):r),n.complete())}))}});return t?o.pipe(Er(t)):o}var wN=["addListener","removeListener"],yN=["addEventListener","removeEventListener"],MN=["on","off"];function oa(e,t,A,i){if(vA(A)&&(i=A,A=void 0),i)return oa(e,t,A).pipe(Er(i));let[o,n]=kN(e)?yN.map(g=>r=>e[g](t,r,A)):bN(e)?wN.map(pf(e,t)):RN(e)?MN.map(pf(e,t)):[];if(!o&&Qr(e))return _e(g=>oa(g,t,A))(Qe(e));if(!o)throw new TypeError("Invalid event target");return new EA(g=>{let r=(...s)=>g.next(1n(r)})}function pf(e,t){return A=>i=>e[A](t,i)}function bN(e){return vA(e.addListener)&&vA(e.removeListener)}function RN(e){return vA(e.on)&&vA(e.off)}function kN(e){return vA(e.addEventListener)&&vA(e.removeEventListener)}function gg(e=0,t,A=of){let i=-1;return t!=null&&(xC(t)?A=t:i=t),new EA(o=>{let n=df(e)?+e-A.now():e;n<0&&(n=0);let g=0;return A.schedule(function(){o.closed||(o.next(g++),0<=i?this.schedule(void 0,i):o.complete())},n)})}function Me(...e){let t=to(e),A=nf(e,1/0),i=e;return i.length?i.length===1?Qe(i[0]):hn(A)(de(i,t)):Ye}function MA(e,t){return UA((A,i)=>{let o=0;A.subscribe(xA(i,n=>e.call(t,n,o++)&&i.next(n)))})}function Df(e){return UA((t,A)=>{let i=!1,o=null,n=null,g=!1,r=()=>{if(n?.unsubscribe(),n=null,i){i=!1;let a=o;o=null,A.next(a)}g&&A.complete()},s=()=>{n=null,g&&A.complete()};t.subscribe(xA(A,a=>{i=!0,o=a,n||Qe(e(a)).subscribe(n=xA(A,r,s))},()=>{g=!0,(!i||!n||n.closed)&&A.complete()}))})}function lr(e,t=ta){return Df(()=>gg(e,t))}function $e(e){return UA((t,A)=>{let i=null,o=!1,n;i=t.subscribe(xA(A,void 0,void 0,g=>{n=Qe(e(g,$e(e)(t))),i?(i.unsubscribe(),i=null,n.subscribe(A)):o=!0})),o&&(i.unsubscribe(),i=null,n.subscribe(A))})}function ff(e,t,A,i,o){return(n,g)=>{let r=A,s=t,a=0;n.subscribe(xA(g,c=>{let h=a++;s=r?e(s,c,h):(r=!0,c),i&&g.next(s)},o&&(()=>{r&&g.next(s),g.complete()})))}}function oo(e,t){return vA(t)?_e(e,t,1):_e(e,1)}function xi(e,t=ta){return UA((A,i)=>{let o=null,n=null,g=null,r=()=>{if(o){o.unsubscribe(),o=null;let a=n;n=null,i.next(a)}};function s(){let a=g+e,c=t.now();if(c{n=a,g=t.now(),o||(o=t.schedule(s,e),i.add(o))},()=>{r(),i.complete()},void 0,()=>{n=o=null}))})}function mn(e){return UA((t,A)=>{let i=!1;t.subscribe(xA(A,o=>{i=!0,A.next(o)},()=>{i||A.next(e),A.complete()}))})}function he(e){return e<=0?()=>Ye:UA((t,A)=>{let i=0;t.subscribe(xA(A,o=>{++i<=e&&(A.next(o),e<=i&&A.complete())}))})}function dr(e){return CA(()=>e)}function Ui(e,t=wt){return e=e??vN,UA((A,i)=>{let o,n=!0;A.subscribe(xA(i,g=>{let r=t(g);(n||!e(o,r))&&(n=!1,o=r,i.next(g))}))})}function vN(e,t){return e===t}function $C(e=SN){return UA((t,A)=>{let i=!1;t.subscribe(xA(A,o=>{i=!0,A.next(o)},()=>i?A.complete():A.error(e())))})}function SN(){return new Uo}function no(e){return UA((t,A)=>{try{t.subscribe(A)}finally{A.add(e)}})}function go(e,t){let A=arguments.length>=2;return i=>i.pipe(e?MA((o,n)=>e(o,n,i)):wt,he(1),A?mn(t):$C(()=>new Uo))}function hr(e){return e<=0?()=>Ye:UA((t,A)=>{let i=[];t.subscribe(xA(A,o=>{i.push(o),e{for(let o of i)A.next(o);A.complete()},void 0,()=>{i=null}))})}function Rl(e,t){let A=arguments.length>=2;return i=>i.pipe(e?MA((o,n)=>e(o,n,i)):wt,hr(1),A?mn(t):$C(()=>new Uo))}function AB(){return UA((e,t)=>{let A,i=!1;e.subscribe(xA(t,o=>{let n=A;A=o,i&&t.next([n,o]),i=!0}))})}function kl(e,t){return UA(ff(e,t,arguments.length>=2,!0))}function na(e={}){let{connector:t=()=>new J,resetOnError:A=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=e;return n=>{let g,r,s,a=0,c=!1,h=!1,p=()=>{r?.unsubscribe(),r=void 0},D=()=>{p(),g=s=void 0,c=h=!1},w=()=>{let R=g;D(),R?.unsubscribe()};return UA((R,q)=>{a++,!h&&!c&&p();let iA=s=s??t();q.add(()=>{a--,a===0&&!h&&!c&&(r=vl(w,o))}),iA.subscribe(q),!g&&a>0&&(g=new xo({next:kA=>iA.next(kA),error:kA=>{h=!0,p(),r=vl(D,A,kA),iA.error(kA)},complete:()=>{c=!0,p(),r=vl(D,i),iA.complete()}}),Qe(R).subscribe(g))})(n)}}function vl(e,t,...A){if(t===!0){e();return}if(t===!1)return;let i=new xo({next:()=>{i.unsubscribe(),e()}});return Qe(t(...A)).subscribe(i)}function Yo(e,t,A){let i,o=!1;return e&&typeof e=="object"?{bufferSize:i=1/0,windowTime:t=1/0,refCount:o=!1,scheduler:A}=e:i=e??1/0,na({connector:()=>new Ki(i,t,A),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}function rg(e){return MA((t,A)=>e<=A)}function be(...e){let t=to(e);return UA((A,i)=>{(t?un(e,A,t):un(e,A)).subscribe(i)})}function ue(e,t){return UA((A,i)=>{let o=null,n=0,g=!1,r=()=>g&&!o&&i.complete();A.subscribe(xA(i,s=>{o?.unsubscribe();let a=0,c=n++;Qe(e(s,c)).subscribe(o=xA(i,h=>i.next(t?t(s,h,c,a++):h),()=>{o=null,r()}))},()=>{g=!0,r()}))})}function bA(e){return UA((t,A)=>{Qe(e).subscribe(xA(A,()=>A.complete(),$s)),!A.closed&&t.subscribe(A)})}function Sl(e,t=!1){return UA((A,i)=>{let o=0;A.subscribe(xA(i,n=>{let g=e(n,o++);(g||t)&&i.next(n),!g&&i.complete()}))})}function me(e,t,A){let i=vA(e)||t||A?{next:e,error:t,complete:A}:e;return i?UA((o,n)=>{var g;(g=i.subscribe)===null||g===void 0||g.call(i);let r=!0;o.subscribe(xA(n,s=>{var a;(a=i.next)===null||a===void 0||a.call(i,s),n.next(s)},()=>{var s;r=!1,(s=i.complete)===null||s===void 0||s.call(i),n.complete()},s=>{var a;r=!1,(a=i.error)===null||a===void 0||a.call(i,s),n.error(s)},()=>{var s,a;r&&((s=i.unsubscribe)===null||s===void 0||s.call(i)),(a=i.finalize)===null||a===void 0||a.call(i)}))}):wt}var lw="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",P=class extends Error{code;constructor(t,A){super(eh(t,A)),this.code=t}};function FN(e){return`NG0${Math.abs(e)}`}function eh(e,t){return`${FN(e)}${t?": "+t:""}`}var dw=Symbol("InputSignalNode#UNSET"),NN=fA(v({},kC),{transformFn:void 0,applyValueToInputSignal(e,t){js(e,t)}});function hw(e,t){let A=Object.create(NN);A.value=e,A.transformFn=t?.transform;function i(){if(Vs(A),A.value===dw){let o=null;throw new P(-950,o)}return A.value}return i[Gt]=A,i}function ha(e){return{toString:e}.toString()}var eB="__parameters__";function GN(e){return function(...A){if(e){let i=e(...A);for(let o in i)this[o]=i[o]}}}function uw(e,t,A){return ha(()=>{let i=GN(t);function o(...n){if(this instanceof o)return i.apply(this,n),this;let g=new o(...n);return r.annotation=g,r;function r(s,a,c){let h=s.hasOwnProperty(eB)?s[eB]:Object.defineProperty(s,eB,{value:[]})[eB];for(;h.length<=c;)h.push(null);return(h[c]=h[c]||[]).push(g),s}}return o.prototype.ngMetadataName=e,o.annotationCls=o,o})}var xt=globalThis;function pe(e){for(let t in e)if(e[t]===pe)return t;throw Error("Could not find renamed property on target object.")}function _N(e,t){for(let A in t)t.hasOwnProperty(A)&&!e.hasOwnProperty(A)&&(e[A]=t[A])}function Kt(e){if(typeof e=="string")return e;if(Array.isArray(e))return`[${e.map(Kt).join(", ")}]`;if(e==null)return""+e;let t=e.overriddenName||e.name;if(t)return`${t}`;let A=e.toString();if(A==null)return""+A;let i=A.indexOf(` -`);return i>=0?A.slice(0,i):A}function Zl(e,t){return e?t?`${e} ${t}`:e:t||""}var LN=pe({__forward_ref__:pe});function Je(e){return e.__forward_ref__=Je,e.toString=function(){return Kt(this())},e}function Ct(e){return mw(e)?e():e}function mw(e){return typeof e=="function"&&e.hasOwnProperty(LN)&&e.__forward_ref__===Je}function G(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function X(e){return{providers:e.providers||[],imports:e.imports||[]}}function HB(e){return wf(e,Dw)||wf(e,fw)}function pw(e){return HB(e)!==null}function wf(e,t){return e.hasOwnProperty(t)?e[t]:null}function KN(e){let t=e&&(e[Dw]||e[fw]);return t||null}function yf(e){return e&&(e.hasOwnProperty(Mf)||e.hasOwnProperty(xN))?e[Mf]:null}var Dw=pe({\u0275prov:pe}),Mf=pe({\u0275inj:pe}),fw=pe({ngInjectableDef:pe}),xN=pe({ngInjectorDef:pe}),b=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,A){this._desc=t,this.\u0275prov=void 0,typeof A=="number"?this.__NG_ELEMENT_ID__=A:A!==void 0&&(this.\u0275prov=G({token:this,providedIn:A.providedIn||"root",factory:A.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function ww(e){return e&&!!e.\u0275providers}var UN=pe({\u0275cmp:pe}),YN=pe({\u0275dir:pe}),JN=pe({\u0275pipe:pe}),HN=pe({\u0275mod:pe}),BB=pe({\u0275fac:pe}),aa=pe({__NG_ELEMENT_ID__:pe}),bf=pe({__NG_ENV_ID__:pe});function Ig(e){return typeof e=="string"?e:e==null?"":String(e)}function TN(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():Ig(e)}function yw(e,t){throw new P(-200,e)}function th(e,t){throw new P(-201,!1)}var zA=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(zA||{}),ql;function Mw(){return ql}function Lt(e){let t=ql;return ql=e,t}function bw(e,t,A){let i=HB(e);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(A&zA.Optional)return null;if(t!==void 0)return t;th(e,"Injector")}var ON={},sg=ON,Vl="__NG_DI_FLAG__",cB=class{injector;constructor(t){this.injector=t}retrieve(t,A){let i=A;return this.injector.get(t,i.optional?vC:sg,i)}},QB="ngTempTokenPath",PN="ngTokenPath",ZN=/\n/gm,qN="\u0275",Rf="__source";function VN(e,t=zA.Default){if(Xs()===void 0)throw new P(-203,!1);if(Xs()===null)return bw(e,void 0,t);{let A=Xs(),i;return A instanceof cB?i=A.injector:i=A,i.get(e,t&zA.Optional?null:void 0,t)}}function eA(e,t=zA.Default){return(Mw()||VN)(Ct(e),t)}function C(e,t=zA.Default){return eA(e,TB(t))}function TB(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Wl(e){let t=[];for(let A=0;A ");else if(typeof t=="object"){let n=[];for(let g in t)if(t.hasOwnProperty(g)){let r=t[g];n.push(g+":"+(typeof r=="string"?JSON.stringify(r):Kt(r)))}o=`{${n.join(", ")}}`}return`${A}${i?"("+i+")":""}[${o}]: ${e.replace(ZN,` - `)}`}var Dg=Rw(uw("Optional"),8);var ua=Rw(uw("SkipSelf"),4);function Cg(e,t){let A=e.hasOwnProperty(BB);return A?e[BB]:null}function XN(e,t,A){if(e.length!==t.length)return!1;for(let i=0;iArray.isArray(A)?ih(A,t):t(A))}function kw(e,t,A){t>=e.length?e.push(A):e.splice(t,0,A)}function EB(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function AG(e,t){let A=[];for(let i=0;it;){let n=o-2;e[o]=e[n],o--}e[t]=A,e[t+1]=i}}function OB(e,t,A){let i=ma(e,t);return i>=0?e[i|1]=A:(i=~i,eG(e,i,t,A)),i}function Fl(e,t){let A=ma(e,t);if(A>=0)return e[A|1]}function ma(e,t){return tG(e,t,1)}function tG(e,t,A){let i=0,o=e.length>>A;for(;o!==i;){let n=i+(o-i>>1),g=e[n<t?o=n:i=n+1}return~(o<{A.push(g)};return ih(t,g=>{let r=g;zl(r,n,[],i)&&(o||=[],o.push(r))}),o!==void 0&&_w(o,n),A}function _w(e,t){for(let A=0;A{t(n,i)})}}function zl(e,t,A,i){if(e=Ct(e),!e)return!1;let o=null,n=yf(e),g=!n&&fn(e);if(!n&&!g){let s=e.ngModule;if(n=yf(s),n)o=s;else return!1}else{if(g&&!g.standalone)return!1;o=e}let r=i.has(o);if(g){if(r)return!1;if(i.add(o),g.dependencies){let s=typeof g.dependencies=="function"?g.dependencies():g.dependencies;for(let a of s)zl(a,t,A,i)}}else if(n){if(n.imports!=null&&!r){i.add(o);let a;try{ih(n.imports,c=>{zl(c,t,A,i)&&(a||=[],a.push(c))})}finally{}a!==void 0&&_w(a,t)}if(!r){let a=Cg(o)||(()=>new o);t({provide:o,useFactory:a,deps:Mt},o),t({provide:Sw,useValue:o,multi:!0},o),t({provide:yr,useValue:()=>eA(o),multi:!0},o)}let s=n.providers;if(s!=null&&!r){let a=e;oh(s,c=>{t(c,a)})}}else return!1;return o!==e&&e.providers!==void 0}function oh(e,t){for(let A of e)ww(A)&&(A=A.\u0275providers),Array.isArray(A)?oh(A,t):t(A)}var nG=pe({provide:String,useValue:pe});function Lw(e){return e!==null&&typeof e=="object"&&nG in e}function gG(e){return!!(e&&e.useExisting)}function rG(e){return!!(e&&e.useFactory)}function Mr(e){return typeof e=="function"}function sG(e){return!!e.useClass}var PB=new b(""),rB={},kf={},Nl;function ZB(){return Nl===void 0&&(Nl=new lB),Nl}var qe=class{},Ca=class extends qe{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,A,i,o){super(),this.parent=A,this.source=i,this.scopes=o,Xl(t,g=>this.processProvider(g)),this.records.set(vw,ur(void 0,this)),o.has("environment")&&this.records.set(qe,ur(void 0,this));let n=this.records.get(PB);n!=null&&typeof n.value=="string"&&this.scopes.add(n.value),this.injectorDefTypes=new Set(this.get(Sw,Mt,zA.Self))}retrieve(t,A){let i=A;return this.get(t,i.optional?vC:sg,i)}destroy(){ra(this),this._destroyed=!0;let t=XA(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),XA(t)}}onDestroy(t){return ra(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){ra(this);let A=Lo(this),i=Lt(void 0),o;try{return t()}finally{Lo(A),Lt(i)}}get(t,A=sg,i=zA.Default){if(ra(this),t.hasOwnProperty(bf))return t[bf](this);i=TB(i);let o,n=Lo(this),g=Lt(void 0);try{if(!(i&zA.SkipSelf)){let s=this.records.get(t);if(s===void 0){let a=cG(t)&&HB(t);a&&this.injectableDefInScope(a)?s=ur(jl(t),rB):s=null,this.records.set(t,s)}if(s!=null)return this.hydrate(t,s,i)}let r=i&zA.Self?ZB():this.parent;return A=i&zA.Optional&&A===sg?null:A,r.get(t,A)}catch(r){if(r.name==="NullInjectorError"){if((r[QB]=r[QB]||[]).unshift(Kt(t)),n)throw r;return zN(r,t,"R3InjectorError",this.source)}else throw r}finally{Lt(g),Lo(n)}}resolveInjectorInitializers(){let t=XA(null),A=Lo(this),i=Lt(void 0),o;try{let n=this.get(yr,Mt,zA.Self);for(let g of n)g()}finally{Lo(A),Lt(i),XA(t)}}toString(){let t=[],A=this.records;for(let i of A.keys())t.push(Kt(i));return`R3Injector[${t.join(", ")}]`}processProvider(t){t=Ct(t);let A=Mr(t)?t:Ct(t&&t.provide),i=IG(t);if(!Mr(t)&&t.multi===!0){let o=this.records.get(A);o||(o=ur(void 0,rB,!0),o.factory=()=>Wl(o.multi),this.records.set(A,o)),A=t,o.multi.push(t)}this.records.set(A,i)}hydrate(t,A,i){let o=XA(null);try{return A.value===kf?yw(Kt(t)):A.value===rB&&(A.value=kf,A.value=A.factory(void 0,i)),typeof A.value=="object"&&A.value&&BG(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{XA(o)}}injectableDefInScope(t){if(!t.providedIn)return!1;let A=Ct(t.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(t){let A=this._onDestroyHooks.indexOf(t);A!==-1&&this._onDestroyHooks.splice(A,1)}};function jl(e){let t=HB(e),A=t!==null?t.factory:Cg(e);if(A!==null)return A;if(e instanceof b)throw new P(204,!1);if(e instanceof Function)return aG(e);throw new P(204,!1)}function aG(e){if(e.length>0)throw new P(204,!1);let A=KN(e);return A!==null?()=>A.factory(e):()=>new e}function IG(e){if(Lw(e))return ur(void 0,e.useValue);{let t=Kw(e);return ur(t,rB)}}function Kw(e,t,A){let i;if(Mr(e)){let o=Ct(e);return Cg(o)||jl(o)}else if(Lw(e))i=()=>Ct(e.useValue);else if(rG(e))i=()=>e.useFactory(...Wl(e.deps||[]));else if(gG(e))i=(o,n)=>eA(Ct(e.useExisting),n!==void 0&&n&zA.Optional?zA.Optional:void 0);else{let o=Ct(e&&(e.useClass||e.provide));if(CG(e))i=()=>new o(...Wl(e.deps));else return Cg(o)||jl(o)}return i}function ra(e){if(e.destroyed)throw new P(205,!1)}function ur(e,t,A=!1){return{factory:e,value:t,multi:A?[]:void 0}}function CG(e){return!!e.deps}function BG(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function cG(e){return typeof e=="function"||typeof e=="object"&&e instanceof b}function Xl(e,t){for(let A of e)Array.isArray(A)?Xl(A,t):A&&ww(A)?Xl(A.\u0275providers,t):t(A)}function Yt(e,t){let A;e instanceof Ca?(ra(e),A=e):A=new cB(e);let i,o=Lo(A),n=Lt(void 0);try{return t()}finally{Lo(o),Lt(n)}}function nh(){return Mw()!==void 0||Xs()!=null}function gh(e){if(!nh())throw new P(-203,!1)}function QG(e){let t=xt.ng;if(t&&t.\u0275compilerFacade)return t.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function EG(e){return typeof e=="function"}var co=0,ZA=1,YA=2,lt=3,Hi=4,Jt=5,br=6,dB=7,At=8,Rr=9,Jo=10,Fe=11,Ba=12,vf=13,Gr=14,oi=15,Bg=16,mr=17,Ho=18,qB=19,xw=20,pn=21,Gl=22,cg=23,wi=24,fr=25,et=26,rh=1;var Qg=7,hB=8,kr=9,Et=10;function Dn(e){return Array.isArray(e)&&typeof e[rh]=="object"}function Po(e){return Array.isArray(e)&&e[rh]===!0}function sh(e){return(e.flags&4)!==0}function _r(e){return e.componentOffset>-1}function VB(e){return(e.flags&1)===1}function Ti(e){return!!e.template}function uB(e){return(e[YA]&512)!==0}function Lr(e){return(e[YA]&256)===256}var $l=class{previousValue;currentValue;firstChange;constructor(t,A,i){this.previousValue=t,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function Uw(e,t,A,i){t!==null?t.applyValueToInputSignal(t,i):e[A]=i}var LA=(()=>{let e=()=>Yw;return e.ngInherit=!0,e})();function Yw(e){return e.type.prototype.ngOnChanges&&(e.setInput=dG),lG}function lG(){let e=Hw(this),t=e?.current;if(t){let A=e.previous;if(A===so)e.previous=t;else for(let i in t)A[i]=t[i];e.current=null,this.ngOnChanges(t)}}function dG(e,t,A,i,o){let n=this.declaredInputs[i],g=Hw(e)||hG(e,{previous:so,current:null}),r=g.current||(g.current={}),s=g.previous,a=s[n];r[n]=new $l(a&&a.currentValue,A,s===so),Uw(e,t,o,A)}var Jw="__ngSimpleChanges__";function Hw(e){return e[Jw]||null}function hG(e,t){return e[Jw]=t}var Sf=null;var Re=function(e,t=null,A){Sf?.(e,t,A)},Tw="svg",uG="math";function ao(e){for(;Array.isArray(e);)e=e[co];return e}function mG(e){for(;Array.isArray(e);){if(typeof e[rh]=="object")return e;e=e[co]}return null}function Ow(e,t){return ao(t[e])}function Qo(e,t){return ao(t[e.index])}function ah(e,t){return e.data[t]}function Ih(e,t){return e[t]}function pG(e,t,A,i){A>=e.data.length&&(e.data[A]=null,e.blueprint[A]=null),t[A]=i}function Io(e,t){let A=t[e];return Dn(A)?A:A[co]}function DG(e){return(e[YA]&4)===4}function Ch(e){return(e[YA]&128)===128}function fG(e){return Po(e[lt])}function wn(e,t){return t==null?null:e[t]}function Pw(e){e[mr]=0}function Zw(e){e[YA]&1024||(e[YA]|=1024,Ch(e)&&Kr(e))}function wG(e,t){for(;e>0;)t=t[Gr],e--;return t}function WB(e){return!!(e[YA]&9216||e[wi]?.dirty)}function Ad(e){e[Jo].changeDetectionScheduler?.notify(8),e[YA]&64&&(e[YA]|=1024),WB(e)&&Kr(e)}function Kr(e){e[Jo].changeDetectionScheduler?.notify(0);let t=Eg(e);for(;t!==null&&!(t[YA]&8192||(t[YA]|=8192,!Ch(t)));)t=Eg(t)}function qw(e,t){if(Lr(e))throw new P(911,!1);e[pn]===null&&(e[pn]=[]),e[pn].push(t)}function yG(e,t){if(e[pn]===null)return;let A=e[pn].indexOf(t);A!==-1&&e[pn].splice(A,1)}function Eg(e){let t=e[lt];return Po(t)?t[lt]:t}function Bh(e){return e[dB]??=[]}function ch(e){return e.cleanup??=[]}function MG(e,t,A,i){let o=Bh(t);o.push(A),e.firstCreatePass&&ch(e).push(i,o.length-1)}var VA={lFrame:$w(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var ed=!1;function bG(){return VA.lFrame.elementDepthCount}function RG(){VA.lFrame.elementDepthCount++}function kG(){VA.lFrame.elementDepthCount--}function Qh(){return VA.bindingsEnabled}function Vw(){return VA.skipHydrationRootTNode!==null}function vG(e){return VA.skipHydrationRootTNode===e}function SG(){VA.skipHydrationRootTNode=null}function _A(){return VA.lFrame.lView}function ve(){return VA.lFrame.tView}function K(e){return VA.lFrame.contextLView=e,e[At]}function x(e){return VA.lFrame.contextLView=null,e}function Bt(){let e=Ww();for(;e!==null&&e.type===64;)e=e.parent;return e}function Ww(){return VA.lFrame.currentTNode}function FG(){let e=VA.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function fg(e,t){let A=VA.lFrame;A.currentTNode=e,A.isParent=t}function Eh(){return VA.lFrame.isParent}function lh(){VA.lFrame.isParent=!1}function NG(){return VA.lFrame.contextLView}function zw(){return ed}function mB(e){let t=ed;return ed=e,t}function Da(){let e=VA.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function GG(){return VA.lFrame.bindingIndex}function _G(e){return VA.lFrame.bindingIndex=e}function yn(){return VA.lFrame.bindingIndex++}function dh(e){let t=VA.lFrame,A=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,A}function LG(){return VA.lFrame.inI18n}function KG(e,t){let A=VA.lFrame;A.bindingIndex=A.bindingRootIndex=e,td(t)}function xG(){return VA.lFrame.currentDirectiveIndex}function td(e){VA.lFrame.currentDirectiveIndex=e}function hh(e){let t=VA.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function uh(){return VA.lFrame.currentQueryIndex}function zB(e){VA.lFrame.currentQueryIndex=e}function UG(e){let t=e[ZA];return t.type===2?t.declTNode:t.type===1?e[Jt]:null}function jw(e,t,A){if(A&zA.SkipSelf){let o=t,n=e;for(;o=o.parent,o===null&&!(A&zA.Host);)if(o=UG(n),o===null||(n=n[Gr],o.type&10))break;if(o===null)return!1;t=o,e=n}let i=VA.lFrame=Xw();return i.currentTNode=t,i.lView=e,!0}function mh(e){let t=Xw(),A=e[ZA];VA.lFrame=t,t.currentTNode=A.firstChild,t.lView=e,t.tView=A,t.contextLView=e,t.bindingIndex=A.bindingStartIndex,t.inI18n=!1}function Xw(){let e=VA.lFrame,t=e===null?null:e.child;return t===null?$w(e):t}function $w(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function Ay(){let e=VA.lFrame;return VA.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var ey=Ay;function ph(){let e=Ay();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function YG(e){return(VA.lFrame.contextLView=wG(e,VA.lFrame.contextLView))[At]}function Zo(){return VA.lFrame.selectedIndex}function lg(e){VA.lFrame.selectedIndex=e}function fa(){let e=VA.lFrame;return ah(e.tView,e.selectedIndex)}function We(){VA.lFrame.currentNamespace=Tw}function wg(){JG()}function JG(){VA.lFrame.currentNamespace=null}function HG(){return VA.lFrame.currentNamespace}var ty=!0;function jB(){return ty}function XB(e){ty=e}function TG(e,t,A){let{ngOnChanges:i,ngOnInit:o,ngDoCheck:n}=t.type.prototype;if(i){let g=Yw(t);(A.preOrderHooks??=[]).push(e,g),(A.preOrderCheckHooks??=[]).push(e,g)}o&&(A.preOrderHooks??=[]).push(0-e,o),n&&((A.preOrderHooks??=[]).push(e,n),(A.preOrderCheckHooks??=[]).push(e,n))}function Dh(e,t){for(let A=t.directiveStart,i=t.directiveEnd;A=i)break}else t[s]<0&&(e[mr]+=65536),(r>14>16&&(e[YA]&3)===t&&(e[YA]+=16384,Ff(r,n)):Ff(r,n)}var wr=-1,dg=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,A,i){this.factory=t,this.canSeeViewProviders=A,this.injectImpl=i}};function PG(e){return(e.flags&8)!==0}function ZG(e){return(e.flags&16)!==0}function qG(e,t,A){let i=0;for(;it){g=n-1;break}}}for(;n>16}function DB(e,t){let A=WG(e),i=t;for(;A>0;)i=i[Gr],A--;return i}var id=!0;function fB(e){let t=id;return id=e,t}var zG=256,gy=zG-1,ry=5,jG=0,ro={};function XG(e,t,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(aa)&&(i=A[aa]),i==null&&(i=A[aa]=jG++);let o=i&gy,n=1<>ry)]|=n}function wB(e,t){let A=sy(e,t);if(A!==-1)return A;let i=t[ZA];i.firstCreatePass&&(e.injectorIndex=t.length,Ll(i.data,e),Ll(t,null),Ll(i.blueprint,null));let o=fh(e,t),n=e.injectorIndex;if(ny(o)){let g=pB(o),r=DB(o,t),s=r[ZA].data;for(let a=0;a<8;a++)t[n+a]=r[g+a]|s[g+a]}return t[n+8]=o,n}function Ll(e,t){e.push(0,0,0,0,0,0,0,0,t)}function sy(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function fh(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let A=0,i=null,o=t;for(;o!==null;){if(i=cy(o),i===null)return wr;if(A++,o=o[Gr],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return wr}function od(e,t,A){XG(e,t,A)}function $G(e,t){if(t==="class")return e.classes;if(t==="style")return e.styles;let A=e.attrs;if(A){let i=A.length,o=0;for(;o>20,h=i?r:r+c,p=o?r+c:a;for(let D=h;D=s&&w.type===A)return D}if(o){let D=g[s];if(D&&Ti(D)&&D.type===A)return s}return null}function ca(e,t,A,i,o){let n=e[A],g=t.data;if(n instanceof dg){let r=n;r.resolving&&yw(TN(g[A]));let s=fB(r.canSeeViewProviders);r.resolving=!0;let a,c=r.injectImpl?Lt(r.injectImpl):null,h=jw(e,i,zA.Default);try{n=e[A]=r.factory(void 0,o,g,e,i),t.firstCreatePass&&A>=i.directiveStart&&TG(A,g[A],t)}finally{c!==null&&Lt(c),fB(s),r.resolving=!1,ey()}}return n}function e_(e){if(typeof e=="string")return e.charCodeAt(0)||0;let t=e.hasOwnProperty(aa)?e[aa]:void 0;return typeof t=="number"?t>=0?t&gy:t_:t}function Gf(e,t,A){let i=1<>ry)]&i)}function _f(e,t){return!(e&zA.Self)&&!(e&zA.Host&&t)}var ag=class{_tNode;_lView;constructor(t,A){this._tNode=t,this._lView=A}get(t,A,i){return Cy(this._tNode,this._lView,t,TB(i),A)}};function t_(){return new ag(Bt(),_A())}function $A(e){return ha(()=>{let t=e.prototype.constructor,A=t[BB]||nd(t),i=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==i;){let n=o[BB]||nd(o);if(n&&n!==A)return n;o=Object.getPrototypeOf(o)}return n=>new n})}function nd(e){return mw(e)?()=>{let t=nd(Ct(e));return t&&t()}:Cg(e)}function i_(e,t,A,i,o){let n=e,g=t;for(;n!==null&&g!==null&&g[YA]&2048&&!uB(g);){let r=By(n,g,A,i|zA.Self,ro);if(r!==ro)return r;let s=n.parent;if(!s){let a=g[xw];if(a){let c=a.get(A,ro,i);if(c!==ro)return c}s=cy(g),g=g[Gr]}n=s}return o}function cy(e){let t=e[ZA],A=t.type;return A===2?t.declTNode:A===1?e[Jt]:null}function wh(e){return $G(Bt(),e)}function Lf(e,t=null,A=null,i){let o=Qy(e,t,A,i);return o.resolveInjectorInitializers(),o}function Qy(e,t=null,A=null,i,o=new Set){let n=[A||Mt,oG(e)];return i=i||(typeof e=="object"?void 0:Kt(e)),new Ca(n,t||ZB(),i||null,o)}var RA=class e{static THROW_IF_NOT_FOUND=sg;static NULL=new lB;static create(t,A){if(Array.isArray(t))return Lf({name:""},A,t,"");{let i=t.name??"";return Lf({name:i},t.parent,t.providers,i)}}static \u0275prov=G({token:e,providedIn:"any",factory:()=>eA(vw)});static __NG_ELEMENT_ID__=-1};var Ve=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>wh(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},o_=new b("");o_.__NG_ELEMENT_ID__=e=>{let t=Bt();if(t===null)throw new P(204,!1);if(t.type&2)return t.value;if(e&zA.Optional)return null;throw new P(204,!1)};var Ey=!1,Mn=(()=>{class e{static __NG_ELEMENT_ID__=n_;static __NG_ENV_ID__=A=>A}return e})(),yB=class extends Mn{_lView;constructor(t){super(),this._lView=t}onDestroy(t){let A=this._lView;return Lr(A)?(t(),()=>{}):(qw(A,t),()=>yG(A,t))}};function n_(){return new yB(_A())}var hg=class{},yh=new b("",{providedIn:"root",factory:()=>!1});var ly=new b(""),dy=new b(""),qo=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new PA(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=G({token:e,providedIn:"root",factory:()=>new e})}return e})();var gd=class extends J{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,nh()&&(this.destroyRef=C(Mn,{optional:!0})??void 0,this.pendingTasks=C(qo,{optional:!0})??void 0)}emit(t){let A=XA(null);try{super.next(t)}finally{XA(A)}}subscribe(t,A,i){let o=t,n=A||(()=>null),g=i;if(t&&typeof t=="object"){let s=t;o=s.next?.bind(s),n=s.error?.bind(s),g=s.complete?.bind(s)}this.__isAsync&&(n=this.wrapInTimeout(n),o&&(o=this.wrapInTimeout(o)),g&&(g=this.wrapInTimeout(g)));let r=super.subscribe({next:o,error:n,complete:g});return t instanceof FA&&t.add(r),r}wrapInTimeout(t){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{t(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},Z=gd;function Qa(...e){}function hy(e){let t,A;function i(){e=Qa;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{e(),i()})),()=>i()}function Kf(e){return queueMicrotask(()=>e()),()=>{e=Qa}}var Mh="isAngularZone",MB=Mh+"_ID",g_=0,AA=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Z(!1);onMicrotaskEmpty=new Z(!1);onStable=new Z(!1);onError=new Z(!1);constructor(t){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:n=Ey}=t;if(typeof Zone>"u")throw new P(908,!1);Zone.assertZonePatched();let g=this;g._nesting=0,g._outer=g._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(g._inner=g._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(g._inner=g._inner.fork(Zone.longStackTraceZoneSpec)),g.shouldCoalesceEventChangeDetection=!o&&i,g.shouldCoalesceRunChangeDetection=o,g.callbackScheduled=!1,g.scheduleInRootZone=n,a_(g)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Mh)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new P(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new P(909,!1)}run(t,A,i){return this._inner.run(t,A,i)}runTask(t,A,i,o){let n=this._inner,g=n.scheduleEventTask("NgZoneEvent: "+o,t,r_,Qa,Qa);try{return n.runTask(g,A,i)}finally{n.cancelTask(g)}}runGuarded(t,A,i){return this._inner.runGuarded(t,A,i)}runOutsideAngular(t){return this._outer.run(t)}},r_={};function bh(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function s_(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){hy(()=>{e.callbackScheduled=!1,rd(e),e.isCheckStableRunning=!0,bh(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),rd(e)}function a_(e){let t=()=>{s_(e)},A=g_++;e._inner=e._inner.fork({name:"angular",properties:{[Mh]:!0,[MB]:A,[MB+A]:!0},onInvokeTask:(i,o,n,g,r,s)=>{if(I_(s))return i.invokeTask(n,g,r,s);try{return xf(e),i.invokeTask(n,g,r,s)}finally{(e.shouldCoalesceEventChangeDetection&&g.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&t(),Uf(e)}},onInvoke:(i,o,n,g,r,s,a)=>{try{return xf(e),i.invoke(n,g,r,s,a)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!C_(s)&&t(),Uf(e)}},onHasTask:(i,o,n,g)=>{i.hasTask(n,g),o===n&&(g.change=="microTask"?(e._hasPendingMicrotasks=g.microTask,rd(e),bh(e)):g.change=="macroTask"&&(e.hasPendingMacrotasks=g.macroTask))},onHandleError:(i,o,n,g)=>(i.handleError(n,g),e.runOutsideAngular(()=>e.onError.emit(g)),!1)})}function rd(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function xf(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Uf(e){e._nesting--,bh(e)}var bB=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Z;onMicrotaskEmpty=new Z;onStable=new Z;onError=new Z;run(t,A,i){return t.apply(A,i)}runGuarded(t,A,i){return t.apply(A,i)}runOutsideAngular(t){return t()}runTask(t,A,i,o){return t.apply(A,i)}};function I_(e){return uy(e,"__ignore_ng_zone__")}function C_(e){return uy(e,"__scheduler_tick__")}function uy(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}function B_(e="zone.js",t){return e==="noop"?new bB:e==="zone.js"?new AA(t):e}var Ut=class{_console=console;handleError(t){this._console.error("ERROR",t)}},c_=new b("",{providedIn:"root",factory:()=>{let e=C(AA),t=C(Ut);return A=>e.runOutsideAngular(()=>t.handleError(A))}});function Yf(e,t){return hw(e,t)}function Q_(e){return hw(dw,e)}var my=(Yf.required=Q_,Yf);function E_(){return xr(Bt(),_A())}function xr(e,t){return new z(Qo(e,t))}var z=(()=>{class e{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=E_}return e})();function py(e){return e instanceof z?e.nativeElement:e}function bn(e){return typeof e=="function"&&e[Gt]!==void 0}function Ne(e,t){let A=Ql(e,t?.equal),i=A[Gt];return A.set=o=>js(i,o),A.update=o=>El(i,o),A.asReadonly=l_.bind(A),A}function l_(){let e=this[Gt];if(e.readonlyFn===void 0){let t=()=>this();t[Gt]=e,e.readonlyFn=t}return e.readonlyFn}function Dy(e){return bn(e)&&typeof e.set=="function"}function d_(){return this._results[Symbol.iterator]()}var yi=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new J}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,A){return this._results.reduce(t,A)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,A){this.dirty=!1;let i=$N(t);(this._changesDetected=!XN(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=d_};function fy(e){return(e.flags&128)===128}var wy=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}(wy||{}),yy=new Map,h_=0;function u_(){return h_++}function m_(e){yy.set(e[qB],e)}function sd(e){yy.delete(e[qB])}var Jf="__ngContext__";function Ur(e,t){Dn(t)?(e[Jf]=t[qB],m_(t)):e[Jf]=t}function My(e){return Ry(e[Ba])}function by(e){return Ry(e[Hi])}function Ry(e){for(;e!==null&&!Po(e);)e=e[Hi];return e}var ad;function ky(e){ad=e}function vy(){if(ad!==void 0)return ad;if(typeof document<"u")return document;throw new P(210,!1)}var Yr=new b("",{providedIn:"root",factory:()=>p_}),p_="ng",Rh=new b(""),Eo=new b("",{providedIn:"platform",factory:()=>"unknown"});var jA=new b(""),wa=new b("",{providedIn:"root",factory:()=>vy().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var D_="h",f_="b";var Sy=!1,w_=new b("",{providedIn:"root",factory:()=>Sy});var kh=function(e){return e[e.CHANGE_DETECTION=0]="CHANGE_DETECTION",e[e.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",e}(kh||{}),Jr=new b(""),Hf=new Set;function Vo(e){Hf.has(e)||(Hf.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var vh=(()=>{class e{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=y_}return e})();function y_(){return new vh(_A(),Bt())}var pr=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(pr||{}),Fy=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=G({token:e,providedIn:"root",factory:()=>new e})}return e})(),M_=[pr.EarlyRead,pr.Write,pr.MixedReadWrite,pr.Read],b_=(()=>{class e{ngZone=C(AA);scheduler=C(hg);errorHandler=C(Ut,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){C(Jr,{optional:!0})}execute(){let A=this.sequences.size>0;A&&Re(16),this.executing=!0;for(let i of M_)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[i]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let n=o.hooks[i];return n(o.pipelinedValue)},o.snapshot))}catch(n){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(n)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&Re(17)}register(A){let{view:i}=A;i!==void 0?((i[fr]??=[]).push(A),Kr(i),i[YA]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(kh.AFTER_NEXT_RENDER,A):A()}static \u0275prov=G({token:e,providedIn:"root",factory:()=>new e})}return e})(),Id=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,A,i,o,n,g=null){this.impl=t,this.hooks=A,this.view=i,this.once=o,this.snapshot=g,this.unregisterOnDestroy=n?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let t=this.view?.[fr];t&&(this.view[fr]=t.filter(A=>A!==this))}};function ya(e,t){!t?.injector&&gh(ya);let A=t?.injector??C(RA);return Vo("NgAfterRender"),Ny(e,A,t,!1)}function Le(e,t){!t?.injector&&gh(Le);let A=t?.injector??C(RA);return Vo("NgAfterNextRender"),Ny(e,A,t,!0)}function R_(e,t){if(e instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[t]=e,A}else return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function Ny(e,t,A,i){let o=t.get(Fy);o.impl??=t.get(b_);let n=t.get(Jr,null,{optional:!0}),g=A?.phase??pr.MixedReadWrite,r=A?.manualCleanup!==!0?t.get(Mn):null,s=t.get(vh,null,{optional:!0}),a=new Id(o.impl,R_(e,g),s?.view,i,r,n?.snapshot(null));return o.impl.register(a),a}var k_=(e,t,A,i)=>{};function v_(e,t,A,i){k_(e,t,A,i)}var S_=()=>null;function Gy(e,t,A=!1){return S_(e,t,A)}function _y(e,t){let A=e.contentQueries;if(A!==null){let i=XA(null);try{for(let o=0;oe,createScript:e=>e,createScriptURL:e=>e})}catch{}return tB}function $B(e){return F_()?.createHTML(e)||e}var iB;function N_(){if(iB===void 0&&(iB=null,xt.trustedTypes))try{iB=xt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return iB}function Tf(e){return N_()?.createHTML(e)||e}var To=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${lw})`}},Bd=class extends To{getTypeName(){return"HTML"}},cd=class extends To{getTypeName(){return"Style"}},Qd=class extends To{getTypeName(){return"Script"}},Ed=class extends To{getTypeName(){return"URL"}},ld=class extends To{getTypeName(){return"ResourceURL"}};function Oi(e){return e instanceof To?e.changingThisBreaksApplicationSecurity:e}function Rn(e,t){let A=G_(e);if(A!=null&&A!==t){if(A==="ResourceURL"&&t==="URL")return!0;throw new Error(`Required a safe ${t}, got a ${A} (see ${lw})`)}return A===t}function G_(e){return e instanceof To&&e.getTypeName()||null}function Ly(e){return new Bd(e)}function Ky(e){return new cd(e)}function xy(e){return new Qd(e)}function Uy(e){return new Ed(e)}function Yy(e){return new ld(e)}function __(e){let t=new hd(e);return L_()?new dd(t):t}var dd=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{let A=new window.DOMParser().parseFromString($B(t),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(t):(A.firstChild?.remove(),A)}catch{return null}}},hd=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){let A=this.inertDocument.createElement("template");return A.innerHTML=$B(t),A}};function L_(){try{return!!new window.DOMParser().parseFromString($B(""),"text/html")}catch{return!1}}var K_=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Ac(e){return e=String(e),e.match(K_)?e:"unsafe:"+e}function Wo(e){let t={};for(let A of e.split(","))t[A]=!0;return t}function Ma(...e){let t={};for(let A of e)for(let i in A)A.hasOwnProperty(i)&&(t[i]=!0);return t}var Jy=Wo("area,br,col,hr,img,wbr"),Hy=Wo("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ty=Wo("rp,rt"),x_=Ma(Ty,Hy),U_=Ma(Hy,Wo("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Y_=Ma(Ty,Wo("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Of=Ma(Jy,U_,Y_,x_),Oy=Wo("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),J_=Wo("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),H_=Wo("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),T_=Ma(Oy,J_,H_),O_=Wo("script,style,template"),ud=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let A=t.firstChild,i=!0,o=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){o.push(A),A=q_(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let n=Z_(A);if(n){A=n;break}A=o.pop()}}return this.buf.join("")}startElement(t){let A=Pf(t).toLowerCase();if(!Of.hasOwnProperty(A))return this.sanitizedSomething=!0,!O_.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=t.attributes;for(let o=0;o"),!0}endElement(t){let A=Pf(t).toLowerCase();Of.hasOwnProperty(A)&&!Jy.hasOwnProperty(A)&&(this.buf.push(""))}chars(t){this.buf.push(Zf(t))}};function P_(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function Z_(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw Py(t);return t}function q_(e){let t=e.firstChild;if(t&&P_(e,t))throw Py(t);return t}function Pf(e){let t=e.nodeName;return typeof t=="string"?t:"FORM"}function Py(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var V_=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,W_=/([^\#-~ |!])/g;function Zf(e){return e.replace(/&/g,"&").replace(V_,function(t){let A=t.charCodeAt(0),i=t.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(W_,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}var oB;function Fh(e,t){let A=null;try{oB=oB||__(e);let i=t?String(t):"";A=oB.getInertBodyElement(i);let o=5,n=i;do{if(o===0)throw new Error("Failed to sanitize html because the input is unstable");o--,i=n,n=A.innerHTML,A=oB.getInertBodyElement(i)}while(i!==n);let r=new ud().sanitizeChildren(qf(A)||A);return $B(r)}finally{if(A){let i=qf(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function qf(e){return"content"in e&&z_(e)?e.content:null}function z_(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var st=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(st||{});function yg(e){let t=Zy();return t?Tf(t.sanitize(st.HTML,e)||""):Rn(e,"HTML")?Tf(Oi(e)):Fh(vy(),Ig(e))}function ri(e){let t=Zy();return t?t.sanitize(st.URL,e)||"":Rn(e,"URL")?Oi(e):Ac(Ig(e))}function Zy(){let e=_A();return e&&e[Jo].sanitizer}var j_=/^>|^->||--!>|)/g,$_="\u200B$1\u200B";function AL(e){return e.replace(j_,t=>t.replace(X_,$_))}function ec(e){return e.ownerDocument.defaultView}function Hr(e){return e.ownerDocument}function qy(e){return e instanceof Function?e():e}function eL(e,t,A){let i=e.length;for(;;){let o=e.indexOf(t,A);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let n=t.length;if(o+n===i||e.charCodeAt(o+n)<=32)return o}A=o+1}}var Vy="ng-template";function tL(e,t,A,i){let o=0;if(i){for(;o-1){let n;for(;++on?h="":h=o[c+1].toLowerCase(),i&2&&a!==h){if(Yi(i))return!1;g=!0}}}}return Yi(i)||g}function Yi(e){return(e&1)===0}function nL(e,t,A,i){if(t===null)return-1;let o=0;if(i||!A){let n=!1;for(;o-1)for(A++;A0?'="'+r+'"':"")+"]"}else i&8?o+="."+g:i&4&&(o+=" "+g);else o!==""&&!Yi(g)&&(t+=Vf(n,o),o=""),i=g,n=n||!Yi(i);A++}return o!==""&&(t+=Vf(n,o)),t}function CL(e){return e.map(IL).join(",")}function BL(e){let t=[],A=[],i=1,o=2;for(;iet&&e0(e,t,et,!1),Re(g?2:0,o),A(i,o)}finally{lg(n),Re(g?3:1,o)}}function ic(e,t,A){bL(e,t,A),(A.flags&64)===64&&RL(e,t,A)}function Kh(e,t,A=Qo){let i=t.localNames;if(i!==null){let o=t.index+1;for(let n=0;nnull;function yL(e){return e==="class"?"className":e==="for"?"htmlFor":e==="formaction"?"formAction":e==="innerHtml"?"innerHTML":e==="readonly"?"readOnly":e==="tabindex"?"tabIndex":e}function oc(e,t,A,i,o,n,g,r){if(!r&&Uh(t,e,A,i,o)){_r(t)&&ML(A,t.index);return}if(t.type&3){let s=Qo(t,A);i=yL(i),o=g!=null?g(o,t.value||"",i):o,n.setProperty(s,i,o)}else t.type&12}function ML(e,t){let A=Io(t,e);A[YA]&16||(A[YA]|=64)}function bL(e,t,A){let i=A.directiveStart,o=A.directiveEnd;_r(A)&&pL(t,A,e.data[i+A.componentOffset]),e.firstCreatePass||wB(A,t);let n=A.initialInputs;for(let g=i;g=0?i[r]():i[-r].unsubscribe(),g+=2}else{let r=i[A[g+1]];A[g].call(r)}i!==null&&(t[dB]=null);let o=t[pn];if(o!==null){t[pn]=null;for(let g=0;g{Kr(e.lView)},consumerOnSignalRead(){this.lView[wi]=this}});function AK(e){let t=e[wi]??Object.create(eK);return t.lView=e,t}var eK=fA(v({},gr),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:e=>{let t=Eg(e.lView);for(;t&&!C0(t[ZA]);)t=Eg(t);t&&Zw(t)},consumerOnSignalRead(){this.lView[wi]=this}});function C0(e){return e.type!==2}function B0(e){if(e[cg]===null)return;let t=!0;for(;t;){let A=!1;for(let i of e[cg])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));t=A&&!!(e[YA]&8192)}}var tK=100;function c0(e,t=!0,A=0){let o=e[Jo].rendererFactory,n=!1;n||o.begin?.();try{iK(e,A)}catch(g){throw t&&NL(e,g),g}finally{n||o.end?.()}}function iK(e,t){let A=zw();try{mB(!0),Dd(e,t);let i=0;for(;WB(e);){if(i===tK)throw new P(103,!1);i++,Dd(e,1)}}finally{mB(A)}}function oK(e,t,A,i){if(Lr(t))return;let o=t[YA],n=!1,g=!1;mh(t);let r=!0,s=null,a=null;n||(C0(e)?(a=zL(t),s=Ws(a)):al()===null?(r=!1,a=AK(t),s=Ws(a)):t[wi]&&(zs(t[wi]),t[wi]=null));try{Pw(t),_G(e.bindingStartIndex),A!==null&&t0(e,t,A,2,i);let c=(o&3)===3;if(!n)if(c){let D=e.preOrderCheckHooks;D!==null&&sB(t,D,null)}else{let D=e.preOrderHooks;D!==null&&aB(t,D,0,null),_l(t,0)}if(g||nK(t),B0(t),Q0(t,0),e.contentQueries!==null&&_y(e,t),!n)if(c){let D=e.contentCheckHooks;D!==null&&sB(t,D)}else{let D=e.contentHooks;D!==null&&aB(t,D,1),_l(t,1)}rK(e,t);let h=e.components;h!==null&&l0(t,h,0);let p=e.viewQuery;if(p!==null&&Cd(2,p,i),!n)if(c){let D=e.viewCheckHooks;D!==null&&sB(t,D)}else{let D=e.viewHooks;D!==null&&aB(t,D,2),_l(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[Gl]){for(let D of t[Gl])D();t[Gl]=null}n||(a0(t),t[YA]&=-73)}catch(c){throw n||Kr(t),c}finally{a!==null&&(wC(a,s),r&&XL(a)),ph()}}function Q0(e,t){for(let A=My(e);A!==null;A=by(A))for(let i=Et;i0&&(e[A-1][Hi]=i[Hi]);let n=EB(e,Et+t);xL(i[ZA],i);let g=n[Ho];g!==null&&g.detachView(n[ZA]),i[lt]=null,i[Hi]=null,i[YA]&=-129}return i}function sK(e,t,A,i){let o=Et+i,n=A.length;i>0&&(A[o-1][Hi]=t),i-1&&(Ea(t,i),EB(A,i))}this._attachedToViewContainer=!1}nc(this._lView[ZA],this._lView)}onDestroy(t){qw(this._lView,t)}markForCheck(){Ph(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[YA]&=-129}reattach(){Ad(this._lView),this._lView[YA]|=128}detectChanges(){this._lView[YA]|=1024,c0(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new P(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=uB(this._lView),A=this._lView[Bg];A!==null&&!t&&Th(A,this._lView),o0(this._lView[ZA],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new P(902,!1);this._appRef=t;let A=uB(this._lView),i=this._lView[Bg];i!==null&&!A&&m0(i,this._lView),Ad(this._lView)}};var ae=(()=>{class e{static __NG_ELEMENT_ID__=CK}return e})(),aK=ae,IK=class extends aK{_declarationLView;_declarationTContainer;elementRef;constructor(t,A,i){super(),this._declarationLView=t,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,A){return this.createEmbeddedViewImpl(t,A)}createEmbeddedViewImpl(t,A,i){let o=ba(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:A,dehydratedView:i});return new la(o)}};function CK(){return sc(Bt(),_A())}function sc(e,t){return e.type&4?new IK(t,e,xr(e,t)):null}function ka(e,t,A,i,o){let n=e.data[t];if(n===null)n=BK(e,t,A,i,o),LG()&&(n.flags|=32);else if(n.type&64){n.type=A,n.value=i,n.attrs=o;let g=FG();n.injectorIndex=g===null?-1:g.injectorIndex}return fg(n,!0),n}function BK(e,t,A,i,o){let n=Ww(),g=Eh(),r=g?n:n&&n.parent,s=e.data[t]=QK(e,r,A,t,i,o);return cK(e,s,n,g),s}function cK(e,t,A,i){e.firstChild===null&&(e.firstChild=t),A!==null&&(i?A.child==null&&t.parent!==null&&(A.child=t):A.next===null&&(A.next=t,t.prev=A))}function QK(e,t,A,i,o,n){let g=t?t.injectorIndex:-1,r=0;return Vw()&&(r|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:g,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:r,providerIndexes:0,value:o,attrs:n,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var D7=new RegExp(`^(\\d+)*(${f_}|${D_})*(.*)`);var EK=()=>null;function Fr(e,t){return EK(e,t)}var lK=class{},p0=class{},fd=class{resolveComponentFactory(t){throw Error(`No component factory found for ${Kt(t)}.`)}},ac=class{static NULL=new fd},dt=class{},ie=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>dK()}return e})();function dK(){let e=_A(),t=Bt(),A=Io(t.index,e);return(Dn(A)?A:e)[Fe]}var hK=(()=>{class e{static \u0275prov=G({token:e,providedIn:"root",factory:()=>null})}return e})();var xl={},wd=class{injector;parentInjector;constructor(t,A){this.injector=t,this.parentInjector=A}get(t,A,i){i=TB(i);let o=this.injector.get(t,xl,i);return o!==xl||A===xl?o:this.parentInjector.get(t,A,i)}};function yd(e,t,A){let i=A?e.styles:null,o=A?e.classes:null,n=0;if(t!==null)for(let g=0;g0&&(A.directiveToIndex=new Map);for(let p=0;p0;){let A=e[--t];if(typeof A=="number"&&A<0)return A}return 0}function RK(e,t,A){if(A){if(t.exportAs)for(let i=0;i{let[A,i,o]=e[t],n={propName:A,templateName:t,isSignal:(i&tc.SignalBased)!==0};return o&&(n.transform=o),n})}function SK(e){return Object.keys(e).map(t=>({propName:e[t],templateName:t}))}function FK(e,t,A){let i=t instanceof qe?t:t?.injector;return i&&e.getStandaloneInjector!==null&&(i=e.getStandaloneInjector(i)||i),i?new wd(A,i):A}function NK(e){let t=e.get(dt,null);if(t===null)throw new P(407,!1);let A=e.get(hK,null),i=e.get(hg,null);return{rendererFactory:t,sanitizer:A,changeDetectionScheduler:i}}function GK(e,t){let A=(e.selectors[0][0]||"div").toLowerCase();return zy(t,A,A==="svg"?Tw:A==="math"?uG:null)}var ug=class extends p0{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=vK(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=SK(this.componentDef.outputs),this.cachedOutputs}constructor(t,A){super(),this.componentDef=t,this.ngModule=A,this.componentType=t.type,this.selector=CL(t.selectors),this.ngContentSelectors=t.ngContentSelectors??[],this.isBoundToModule=!!A}create(t,A,i,o){Re(22);let n=XA(null);try{let g=this.componentDef,r=i?["ng-version","19.2.14"]:BL(this.componentDef.selectors[0]),s=Gh(0,null,null,1,0,null,null,null,null,[r],null),a=FK(g,o||this.ngModule,t),c=NK(a),h=c.rendererFactory.createRenderer(null,g),p=i?DL(h,i,g.encapsulation,a):GK(g,h),D=_h(null,s,null,512|$y(g),null,null,c,h,a,null,Gy(p,a,!0));D[et]=p,mh(D);let w=null;try{let R=w0(et,s,D,"#host",()=>[this.componentDef],!0,0);p&&(Xy(h,p,R),Ur(p,D)),ic(s,D,R),Sh(s,R,D),y0(s,R),A!==void 0&&_K(R,this.ngContentSelectors,A),w=Io(R.index,D),D[At]=w[At],Yh(s,D,null)}catch(R){throw w!==null&&sd(w),sd(D),R}finally{Re(23),ph()}return new Md(this.componentType,D)}finally{XA(n)}}},Md=class extends lK{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(t,A){super(),this._rootLView=A,this._tNode=ah(A[ZA],et),this.location=xr(this._tNode,A),this.instance=Io(this._tNode.index,A)[At],this.hostView=this.changeDetectorRef=new la(A,void 0,!1),this.componentType=t}setInput(t,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(t)&&Object.is(this.previousInputValues.get(t),A))return;let o=this._rootLView,n=Uh(i,o[ZA],o,t,A);this.previousInputValues.set(t,A);let g=Io(i.index,o);Ph(g,1)}get injector(){return new ag(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}};function _K(e,t,A){let i=e.projection=[];for(let o=0;o{class e{static __NG_ELEMENT_ID__=LK}return e})();function LK(){let e=Bt();return b0(e,_A())}var KK=Ee,M0=class extends KK{_lContainer;_hostTNode;_hostLView;constructor(t,A,i){super(),this._lContainer=t,this._hostTNode=A,this._hostLView=i}get element(){return xr(this._hostTNode,this._hostLView)}get injector(){return new ag(this._hostTNode,this._hostLView)}get parentInjector(){let t=fh(this._hostTNode,this._hostLView);if(ny(t)){let A=DB(t,this._hostLView),i=pB(t),o=A[ZA].data[i+8];return new ag(o,A)}else return new ag(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let A=Aw(this._lContainer);return A!==null&&A[t]||null}get length(){return this._lContainer.length-Et}createEmbeddedView(t,A,i){let o,n;typeof i=="number"?o=i:i!=null&&(o=i.index,n=i.injector);let g=Fr(this._lContainer,t.ssrId),r=t.createEmbeddedViewImpl(A||{},n,g);return this.insertImpl(r,o,Sr(this._hostTNode,g)),r}createComponent(t,A,i,o,n){let g=t&&!EG(t),r;if(g)r=A;else{let w=A||{};r=w.index,i=w.injector,o=w.projectableNodes,n=w.environmentInjector||w.ngModuleRef}let s=g?t:new ug(fn(t)),a=i||this.parentInjector;if(!n&&s.ngModule==null){let R=(g?a:this.parentInjector).get(qe,null);R&&(n=R)}let c=fn(s.componentType??{}),h=Fr(this._lContainer,c?.id??null),p=h?.firstChild??null,D=s.create(a,o,p,n);return this.insertImpl(D.hostView,r,Sr(this._hostTNode,h)),D}insert(t,A){return this.insertImpl(t,A,!0)}insertImpl(t,A,i){let o=t._lView;if(fG(o)){let r=this.indexOf(t);if(r!==-1)this.detach(r);else{let s=o[lt],a=new M0(s,s[Jt],s[lt]);a.detach(a.indexOf(t))}}let n=this._adjustIndex(A),g=this._lContainer;return Ra(g,o,n,i),t.attachToViewContainerRef(),kw(Ul(g),n,t),t}move(t,A){return this.insert(t,A)}indexOf(t){let A=Aw(this._lContainer);return A!==null?A.indexOf(t):-1}remove(t){let A=this._adjustIndex(t,-1),i=Ea(this._lContainer,A);i&&(EB(Ul(this._lContainer),A),nc(i[ZA],i))}detach(t){let A=this._adjustIndex(t,-1),i=Ea(this._lContainer,A);return i&&EB(Ul(this._lContainer),A)!=null?new la(i):null}_adjustIndex(t,A=0){return t??this.length+A}};function Aw(e){return e[hB]}function Ul(e){return e[hB]||(e[hB]=[])}function b0(e,t){let A,i=t[e.index];return Po(i)?A=i:(A=d0(i,t,null,e),t[e.index]=A,Lh(t,A)),UK(A,t,e,i),new M0(A,e,t)}function xK(e,t){let A=e[Fe],i=A.createComment(""),o=Qo(t,e),n=A.parentNode(o);return RB(A,n,i,A.nextSibling(o),!1),i}var UK=HK,YK=()=>!1;function JK(e,t,A){return YK(e,t,A)}function HK(e,t,A,i){if(e[Qg])return;let o;A.type&8?o=ao(i):o=xK(t,A),e[Qg]=o}var bd=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},Rd=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let A=t.queries;if(A!==null){let i=t.contentQueries!==null?t.contentQueries[0]:A.length,o=[];for(let n=0;n0)i.push(g[r/2]);else{let a=n[r+1],c=t[-s];for(let h=Et;ht.trim())}function S0(e,t,A){e.queries===null&&(e.queries=new kd),e.queries.track(new vd(t,A))}function WK(e,t){let A=e.contentQueries||(e.contentQueries=[]),i=A.length?A[A.length-1]:-1;t!==i&&A.push(e.queries.length-1,t)}function Vh(e,t){return e.queries.getByIndex(t)}function F0(e,t){let A=e[ZA],i=Vh(A,t);return i.crossesNgTemplate?Sd(A,e,t,[]):R0(A,e,i,t)}function N0(e,t,A){let i,o=RC(()=>{i._dirtyCounter();let n=$K(i,e);if(t&&n===void 0)throw new P(-951,!1);return n});return i=o[Gt],i._dirtyCounter=Ne(0),i._flatValue=void 0,o}function zK(e){return N0(!0,!1,e)}function jK(e){return N0(!0,!0,e)}function XK(e,t){let A=e[Gt];A._lView=_A(),A._queryIndex=t,A._queryList=qh(A._lView,t),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function $K(e,t){let A=e._lView,i=e._queryIndex;if(A===void 0||i===void 0||A[YA]&4)return t?void 0:Mt;let o=qh(A,i),n=F0(A,i);return o.reset(n,py),t?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function ew(e,t){return zK(t)}function Ax(e,t){return jK(t)}var G0=(ew.required=Ax,ew);function ex(e){let t=[],A=new Map;function i(o){let n=A.get(o);if(!n){let g=e(o);A.set(o,n=g.then(nx))}return n}return FB.forEach((o,n)=>{let g=[];o.templateUrl&&g.push(i(o.templateUrl).then(a=>{o.template=a}));let r=typeof o.styles=="string"?[o.styles]:o.styles||[];if(o.styles=r,o.styleUrl&&o.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(o.styleUrls?.length){let a=o.styles.length,c=o.styleUrls;o.styleUrls.forEach((h,p)=>{r.push(""),g.push(i(h).then(D=>{r[a+p]=D,c.splice(c.indexOf(h),1),c.length==0&&(o.styleUrls=void 0)}))})}else o.styleUrl&&g.push(i(o.styleUrl).then(a=>{r.push(a),o.styleUrl=void 0}));let s=Promise.all(g).then(()=>gx(n));t.push(s)}),ix(),Promise.all(t).then(()=>{})}var FB=new Map,tx=new Set;function ix(){let e=FB;return FB=new Map,e}function ox(){return FB.size===0}function nx(e){return typeof e=="string"?e:e.text()}function gx(e){tx.delete(e)}var Oo=class{},Wh=class{};var NB=class extends Oo{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new vB(this);constructor(t,A,i,o=!0){super(),this.ngModuleType=t,this._parent=A;let n=Fw(t);this._bootstrapComponents=qy(n.bootstrap),this._r3Injector=Qy(t,A,[{provide:Oo,useValue:this},{provide:ac,useValue:this.componentFactoryResolver},...i],Kt(t),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}},GB=class extends Wh{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new NB(this.moduleType,t,[])}};function rx(e,t,A){return new NB(e,t,A,!1)}var Fd=class extends Oo{injector;componentFactoryResolver=new vB(this);instance=null;constructor(t){super();let A=new Ca([...t.providers,{provide:Oo,useValue:this},{provide:ac,useValue:this.componentFactoryResolver}],t.parent||ZB(),t.debugName,new Set(["environment"]));this.injector=A,t.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function va(e,t,A=null){return new Fd({providers:e,parent:t,debugName:A,runEnvironmentInitializers:!0}).injector}var sx=(()=>{class e{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=Gw(!1,A.type),o=i.length>0?va([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,o)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=G({token:e,providedIn:"environment",factory:()=>new e(eA(qe))})}return e})();function H(e){return ha(()=>{let t=_0(e),A=fA(v({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===wy.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(sx).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Co.Emulated,styles:e.styles||Mt,_:null,schemas:e.schemas||null,tView:null,id:""});t.standalone&&Vo("NgStandalone"),L0(A);let i=e.dependencies;return A.directiveDefs=tw(i,!1),A.pipeDefs=tw(i,!0),A.id=cx(A),A})}function ax(e){return fn(e)||Nw(e)}function Ix(e){return e!==null}function $(e){return ha(()=>({type:e.type,bootstrap:e.bootstrap||Mt,declarations:e.declarations||Mt,imports:e.imports||Mt,exports:e.exports||Mt,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Cx(e,t){if(e==null)return so;let A={};for(let i in e)if(e.hasOwnProperty(i)){let o=e[i],n,g,r,s;Array.isArray(o)?(r=o[0],n=o[1],g=o[2]??n,s=o[3]||null):(n=o,g=o,r=tc.None,s=null),A[n]=[i,r,s],t[n]=g}return A}function Bx(e){if(e==null)return so;let t={};for(let A in e)e.hasOwnProperty(A)&&(t[e[A]]=A);return t}function T(e){return ha(()=>{let t=_0(e);return L0(t),t})}function Ic(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function _0(e){let t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputConfig:e.inputs||so,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||Mt,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Cx(e.inputs,t),outputs:Bx(e.outputs),debugInfo:null}}function L0(e){e.features?.forEach(t=>t(e))}function tw(e,t){if(!e)return null;let A=t?iG:ax;return()=>(typeof e=="function"?e():e).map(i=>A(i)).filter(Ix)}function cx(e){let t=0,A=typeof e.consts=="function"?"":e.consts,i=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,A,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let n of i.join("|"))t=Math.imul(31,t)+n.charCodeAt(0)<<0;return t+=2147483648,"c"+t}function Qx(e){return Object.getPrototypeOf(e.prototype).constructor}function lA(e){let t=Qx(e.type),A=!0,i=[e];for(;t;){let o;if(Ti(e))o=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new P(903,!1);o=t.\u0275dir}if(o){if(A){i.push(o);let g=e;g.inputs=Yl(e.inputs),g.declaredInputs=Yl(e.declaredInputs),g.outputs=Yl(e.outputs);let r=o.hostBindings;r&&ux(e,r);let s=o.viewQuery,a=o.contentQueries;if(s&&dx(e,s),a&&hx(e,a),Ex(e,o),_N(e.outputs,o.outputs),Ti(o)&&o.data.animation){let c=e.data;c.animation=(c.animation||[]).concat(o.data.animation)}}let n=o.features;if(n)for(let g=0;g=0;i--){let o=e[i];o.hostVars=t+=o.hostVars,o.hostAttrs=vr(o.hostAttrs,A=vr(A,o.hostAttrs))}}function Yl(e){return e===so?{}:e===Mt?[]:e}function dx(e,t){let A=e.viewQuery;A?e.viewQuery=(i,o)=>{t(i,o),A(i,o)}:e.viewQuery=t}function hx(e,t){let A=e.contentQueries;A?e.contentQueries=(i,o,n)=>{t(i,o,n),A(i,o,n)}:e.contentQueries=t}function ux(e,t){let A=e.hostBindings;A?e.hostBindings=(i,o)=>{t(i,o),A(i,o)}:e.hostBindings=t}function K0(e){let t=A=>{let i=Array.isArray(e);A.hostDirectives===null?(A.findHostDirectiveDefs=x0,A.hostDirectives=i?e.map(Nd):[e]):i?A.hostDirectives.unshift(...e.map(Nd)):A.hostDirectives.unshift(e)};return t.ngInherit=!0,t}function x0(e,t,A){if(e.hostDirectives!==null)for(let i of e.hostDirectives)if(typeof i=="function"){let o=i();for(let n of o)iw(Nd(n),t,A)}else iw(i,t,A)}function iw(e,t,A){let i=Nw(e.directive);mx(i.declaredInputs,e.inputs),x0(i,t,A),A.set(i,e),t.push(i)}function Nd(e){return typeof e=="function"?{directive:Ct(e),inputs:so,outputs:so}:{directive:Ct(e.directive),inputs:ow(e.inputs),outputs:ow(e.outputs)}}function ow(e){if(e===void 0||e.length===0)return so;let t={};for(let A=0;A{class e{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();var $h=new b(""),Sa=new b(""),Cc=(()=>{class e{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(A,i,o){this._ngZone=A,this.registry=i,nh()&&(this._destroyRef=C(Mn,{optional:!0})??void 0),Au||(Mx(o),o.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let A=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{AA.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{A.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,o){let n=-1;i&&i>0&&(n=setTimeout(()=>{this._callbacks=this._callbacks.filter(g=>g.timeoutId!==n),A()},i)),this._callbacks.push({doneCb:A,timeoutId:n,updateCb:o})}whenStable(A,i,o){if(o&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,o),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,o){return[]}static \u0275fac=function(i){return new(i||e)(eA(AA),eA(Bc),eA(Sa))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),Bc=(()=>{class e{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return Au?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function Mx(e){Au=e}var Au,J0=(()=>{class e{static \u0275prov=G({token:e,providedIn:"root",factory:()=>new Gd})}return e})(),Gd=class{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}remove(t){let A=t.zone,i=this.queues.get(A);i.has(t)&&(i.delete(t),this.queuedEffectCount--)}enqueue(t){let A=t.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(t)||(this.queuedEffectCount++,i.add(t))}flush(){for(;this.queuedEffectCount>0;)for(let[t,A]of this.queues)t===null?this.flushQueue(A):t.run(()=>this.flushQueue(A))}flushQueue(t){for(let A of t)t.delete(A),this.queuedEffectCount--,A.run()}};function kn(e){return!!e&&typeof e.then=="function"}function eu(e){return!!e&&typeof e.subscribe=="function"}var H0=new b("");function tu(e){return pa([{provide:H0,multi:!0,useValue:e}])}var T0=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=C(H0,{optional:!0})??[];injector=C(RA);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let o of this.appInits){let n=Yt(this.injector,o);if(kn(n))A.push(n);else if(eu(n)){let g=new Promise((r,s)=>{n.subscribe({complete:r,error:s})});A.push(g)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(o=>{this.reject(o)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),iu=new b("");function bx(){cl(()=>{throw new P(600,!1)})}function Rx(e){return e.isBoundToModule}var kx=10;function O0(e,t){return Array.isArray(t)?t.reduce(O0,e):v(v({},e),t)}var gi=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=C(c_);afterRenderManager=C(Fy);zonelessEnabled=C(yh);rootEffectScheduler=C(J0);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new J;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=C(qo).hasPendingTasks.pipe(CA(A=>!A));constructor(){C(Jr,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:o=>{o&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=C(qe);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,o=RA.NULL){Re(10);let n=A instanceof p0;if(!this._injector.get(T0).done){let D="";throw new P(405,D)}let r;n?r=A:r=this._injector.get(ac).resolveComponentFactory(A),this.componentTypes.push(r.componentType);let s=Rx(r)?void 0:this._injector.get(Oo),a=i||r.selector,c=r.create(o,[],a,s),h=c.location.nativeElement,p=c.injector.get($h,null);return p?.registerApplication(h),c.onDestroy(()=>{this.detachView(c.hostView),CB(this.components,c),p?.unregisterApplication(h)}),this._loadComponent(c),Re(11,c),c}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Re(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(kh.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new P(101,!1);let A=XA(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,XA(A),this.afterTick.next(),Re(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(dt,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++WB(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;CB(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(iu,[]).forEach(o=>o(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>CB(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new P(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function CB(e,t){let A=e.indexOf(t);A>-1&&e.splice(A,1)}function vx(e,t,A,i){if(!A&&!WB(e))return;c0(e,t,A&&!i?0:1)}function sA(e,t,A,i){let o=_A(),n=yn();if(ni(o,n,t)){let g=ve(),r=fa();vL(r,o,e,t,A,i)}return sA}function P0(e,t,A,i){return ni(e,yn(),A)?t+Ig(A)+i:si}function Sx(e,t,A,i,o,n){let g=GG(),r=Y0(e,g,A,o);return dh(2),r?t+Ig(A)+i+Ig(o)+n:si}function nB(e,t){return e<<17|t<<2}function mg(e){return e>>17&32767}function Fx(e){return(e&2)==2}function Nx(e,t){return e&131071|t<<17}function _d(e){return e|2}function Nr(e){return(e&131068)>>2}function Jl(e,t){return e&-131069|t<<2}function Gx(e){return(e&1)===1}function Ld(e){return e|1}function _x(e,t,A,i,o,n){let g=n?t.classBindings:t.styleBindings,r=mg(g),s=Nr(g);e[i]=A;let a=!1,c;if(Array.isArray(A)){let h=A;c=h[1],(c===null||ma(h,c)>0)&&(a=!0)}else c=A;if(o)if(s!==0){let p=mg(e[r+1]);e[i+1]=nB(p,r),p!==0&&(e[p+1]=Jl(e[p+1],i)),e[r+1]=Nx(e[r+1],i)}else e[i+1]=nB(r,0),r!==0&&(e[r+1]=Jl(e[r+1],i)),r=i;else e[i+1]=nB(s,0),r===0?r=i:e[s+1]=Jl(e[s+1],i),s=i;a&&(e[i+1]=_d(e[i+1])),nw(e,c,i,!0),nw(e,c,i,!1),Lx(t,c,e,i,n),g=nB(r,s),n?t.classBindings=g:t.styleBindings=g}function Lx(e,t,A,i,o){let n=o?e.residualClasses:e.residualStyles;n!=null&&typeof t=="string"&&ma(n,t)>=0&&(A[i+1]=Ld(A[i+1]))}function nw(e,t,A,i){let o=e[A+1],n=t===null,g=i?mg(o):Nr(o),r=!1;for(;g!==0&&(r===!1||n);){let s=e[g],a=e[g+1];Kx(s,t)&&(r=!0,e[g+1]=i?Ld(a):_d(a)),g=i?mg(a):Nr(a)}r&&(e[A+1]=i?_d(o):Ld(o))}function Kx(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t=="string"?ma(e,t)>=0:!1}var Ji={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function xx(e){return e.substring(Ji.key,Ji.keyEnd)}function Ux(e){return Yx(e),Z0(e,q0(e,0,Ji.textEnd))}function Z0(e,t){let A=Ji.textEnd;return A===t?-1:(t=Ji.keyEnd=Jx(e,Ji.key=t,A),q0(e,t,A))}function Yx(e){Ji.key=0,Ji.keyEnd=0,Ji.value=0,Ji.valueEnd=0,Ji.textEnd=e.length}function q0(e,t,A){for(;t32;)t++;return t}function N(e,t,A){let i=_A(),o=yn();if(ni(i,o,t)){let n=ve(),g=fa();oc(n,g,i,e,t,i[Fe],A,!1)}return N}function Kd(e,t,A,i,o){Uh(t,e,A,o?"class":"style",i)}function De(e,t,A){return W0(e,t,A,!1),De}function tA(e,t){return W0(e,t,null,!0),tA}function Ke(e){z0(qx,V0,e,!0)}function V0(e,t){for(let A=Ux(t);A>=0;A=Z0(t,A))OB(e,xx(t),!0)}function W0(e,t,A,i){let o=_A(),n=ve(),g=dh(2);if(n.firstUpdatePass&&X0(n,e,g,i),t!==si&&ni(o,g,t)){let r=n.data[Zo()];$0(n,r,o,o[Fe],e,o[g+1]=Wx(t,A),i,g)}}function z0(e,t,A,i){let o=ve(),n=dh(2);o.firstUpdatePass&&X0(o,null,n,i);let g=_A();if(A!==si&&ni(g,n,A)){let r=o.data[Zo()];if(AM(r,i)&&!j0(o,n)){let s=i?r.classesWithoutHost:r.stylesWithoutHost;s!==null&&(A=Zl(s,A||"")),Kd(o,r,g,A,i)}else Vx(o,r,g,g[Fe],g[n+1],g[n+1]=Zx(e,t,A),i,n)}}function j0(e,t){return t>=e.expandoStartIndex}function X0(e,t,A,i){let o=e.data;if(o[A+1]===null){let n=o[Zo()],g=j0(e,A);AM(n,i)&&t===null&&!g&&(t=!1),t=Hx(o,n,t,i),_x(o,n,t,A,g,i)}}function Hx(e,t,A,i){let o=hh(e),n=i?t.residualClasses:t.residualStyles;if(o===null)(i?t.classBindings:t.styleBindings)===0&&(A=Hl(null,e,t,A,i),A=da(A,t.attrs,i),n=null);else{let g=t.directiveStylingLast;if(g===-1||e[g]!==o)if(A=Hl(o,e,t,A,i),n===null){let s=Tx(e,t,i);s!==void 0&&Array.isArray(s)&&(s=Hl(null,e,t,s[1],i),s=da(s,t.attrs,i),Ox(e,t,i,s))}else n=Px(e,t,i)}return n!==void 0&&(i?t.residualClasses=n:t.residualStyles=n),A}function Tx(e,t,A){let i=A?t.classBindings:t.styleBindings;if(Nr(i)!==0)return e[mg(i)]}function Ox(e,t,A,i){let o=A?t.classBindings:t.styleBindings;e[mg(o)]=i}function Px(e,t,A){let i,o=t.directiveEnd;for(let n=1+t.directiveStylingLast;n0;){let s=e[o],a=Array.isArray(s),c=a?s[1]:s,h=c===null,p=A[o+1];p===si&&(p=h?Mt:void 0);let D=h?Fl(p,i):c===i?p:void 0;if(a&&!LB(D)&&(D=Fl(s,i)),LB(D)&&(r=D,g))return r;let w=e[o+1];o=g?mg(w):Nr(w)}if(t!==null){let s=n?t.residualClasses:t.residualStyles;s!=null&&(r=Fl(s,i))}return r}function LB(e){return e!==void 0}function Wx(e,t){return e==null||e===""||(typeof t=="string"?e=e+t:typeof e=="object"&&(e=Kt(Oi(e)))),e}function AM(e,t){return(e.flags&(t?8:16))!==0}function eM(e,t,A){let i=_A(),o=P0(i,e,t,A);z0(OB,V0,o,!0)}var xd=class{destroy(t){}updateValue(t,A){}swap(t,A){let i=Math.min(t,A),o=Math.max(t,A),n=this.detach(o);if(o-i>1){let g=this.detach(i);this.attach(i,n),this.attach(o,g)}else this.attach(i,n)}move(t,A){this.attach(A,this.detach(t))}};function Tl(e,t,A,i,o){return e===A&&Object.is(t,i)?1:Object.is(o(e,t),o(A,i))?-1:0}function zx(e,t,A){let i,o,n=0,g=e.length-1,r=void 0;if(Array.isArray(t)){let s=t.length-1;for(;n<=g&&n<=s;){let a=e.at(n),c=t[n],h=Tl(n,a,n,c,A);if(h!==0){h<0&&e.updateValue(n,c),n++;continue}let p=e.at(g),D=t[s],w=Tl(g,p,s,D,A);if(w!==0){w<0&&e.updateValue(g,D),g--,s--;continue}let R=A(n,a),q=A(g,p),iA=A(n,c);if(Object.is(iA,q)){let kA=A(s,D);Object.is(kA,R)?(e.swap(n,g),e.updateValue(g,D),s--,g--):e.move(g,n),e.updateValue(n,c),n++;continue}if(i??=new KB,o??=sw(e,n,g,A),Ud(e,i,n,iA))e.updateValue(n,c),n++,g++;else if(o.has(iA))i.set(R,e.detach(n)),g--;else{let kA=e.create(n,t[n]);e.attach(n,kA),n++,g++}}for(;n<=s;)rw(e,i,A,n,t[n]),n++}else if(t!=null){let s=t[Symbol.iterator](),a=s.next();for(;!a.done&&n<=g;){let c=e.at(n),h=a.value,p=Tl(n,c,n,h,A);if(p!==0)p<0&&e.updateValue(n,h),n++,a=s.next();else{i??=new KB,o??=sw(e,n,g,A);let D=A(n,h);if(Ud(e,i,n,D))e.updateValue(n,h),n++,g++,a=s.next();else if(!o.has(D))e.attach(n,e.create(n,h)),n++,g++,a=s.next();else{let w=A(n,c);i.set(w,e.detach(n)),g--}}}for(;!a.done;)rw(e,i,A,e.length,a.value),a=s.next()}for(;n<=g;)e.destroy(e.detach(g--));i?.forEach(s=>{e.destroy(s)})}function Ud(e,t,A,i){return t!==void 0&&t.has(i)?(e.attach(A,t.get(i)),t.delete(i),!0):!1}function rw(e,t,A,i,o){if(Ud(e,t,i,A(i,o)))e.updateValue(i,o);else{let n=e.create(i,o);e.attach(i,n)}}function sw(e,t,A,i){let o=new Set;for(let n=t;n<=A;n++)o.add(i(n,e.at(n)));return o}var KB=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let A=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(t,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,A){if(this.kvMap.has(t)){let i=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,A)}else this.kvMap.set(t,A)}forEach(t){for(let[A,i]of this.kvMap)if(t(i,A),this._vMap!==void 0){let o=this._vMap;for(;o.has(i);)i=o.get(i),t(i,A)}}};function _(e,t){Vo("NgControlFlow");let A=_A(),i=yn(),o=A[i]!==si?A[i]:-1,n=o!==-1?xB(A,et+o):void 0,g=0;if(ni(A,i,e)){let r=XA(null);try{if(n!==void 0&&u0(n,g),e!==-1){let s=et+e,a=xB(A,s),c=Td(A[ZA],s),h=Fr(a,c.tView.ssrId),p=ba(A,c,t,{dehydratedView:h});Ra(a,p,g,Sr(c,h))}}finally{XA(r)}}else if(n!==void 0){let r=h0(n,g);r!==void 0&&(r[At]=t)}}var Yd=class{lContainer;$implicit;$index;constructor(t,A,i){this.lContainer=t,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-Et}};function Tr(e){return e}function le(e,t){return t}var Jd=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,A,i){this.hasEmptyBlock=t,this.trackByFn=A,this.liveCollection=i}};function ne(e,t,A,i,o,n,g,r,s,a,c,h,p){Vo("NgControlFlow");let D=_A(),w=ve(),R=s!==void 0,q=_A(),iA=r?g.bind(q[oi][At]):g,kA=new Jd(R,iA);q[et+e]=kA,_B(D,w,e+1,t,A,i,o,wn(w.consts,n)),R&&_B(D,w,e+2,s,a,c,h,wn(w.consts,p))}var Hd=class extends xd{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,A,i){super(),this.lContainer=t,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-Et}at(t){return this.getLView(t)[At].$implicit}attach(t,A){let i=A[br];this.needsIndexUpdate||=t!==this.length,Ra(this.lContainer,A,t,Sr(this.templateTNode,i))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,jx(this.lContainer,t)}create(t,A){let i=Fr(this.lContainer,this.templateTNode.tView.ssrId),o=ba(this.hostLView,this.templateTNode,new Yd(this.lContainer,A,t),{dehydratedView:i});return this.operationsCounter?.recordCreate(),o}destroy(t){nc(t[ZA],t),this.operationsCounter?.recordDestroy()}updateValue(t,A){this.getLView(t)[At].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t(XB(!0),zy(i,o,HG()));function AU(e,t,A,i,o){let n=t.consts,g=wn(n,i),r=ka(t,e,8,"ng-container",g);g!==null&&yd(r,g,!0);let s=wn(n,o);return Qh()&&Zh(t,A,r,s,xh),r.mergedAttrs=vr(r.mergedAttrs,r.attrs),t.queries!==null&&t.queries.elementStart(t,r),r}function vn(e,t,A){let i=_A(),o=ve(),n=e+et,g=o.firstCreatePass?AU(n,o,i,t,A):o.data[n];fg(g,!0);let r=eU(o,i,g,e);return i[n]=r,jB()&&gc(o,i,r,g),Ur(r,i),VB(g)&&(ic(o,i,g),Sh(o,g,i)),A!=null&&Kh(i,g),vn}function Sn(){let e=Bt(),t=ve();return Eh()?lh():(e=e.parent,fg(e,!1)),t.firstCreatePass&&(Dh(t,e),sh(e)&&t.queries.elementEnd(e)),Sn}function tt(e,t,A){return vn(e,t,A),Sn(),tt}var eU=(e,t,A,i)=>(XB(!0),EL(t[Fe],""));function oA(){return _A()}function bt(e,t,A){let i=_A(),o=yn();if(ni(i,o,t)){let n=ve(),g=fa();oc(n,g,i,e,t,i[Fe],A,!0)}return bt}function ou(e,t,A){let i=_A(),o=yn();if(ni(i,o,t)){let n=ve(),g=fa(),r=hh(n.data),s=i0(r,g,i);oc(n,g,i,e,t,s,A,!0)}return ou}var UB="en-US";var tU=UB;function iU(e){typeof e=="string"&&(tU=e.toLowerCase().replace(/_/g,"-"))}function aw(e,t,A){return function i(o){if(o===Function)return A;let n=_r(e)?Io(e.index,t):t;Ph(n,5);let g=t[At],r=Iw(t,g,A,o),s=i.__ngNextListenerFn__;for(;s;)r=Iw(t,g,s,o)&&r,s=s.__ngNextListenerFn__;return r}}function Iw(e,t,A,i){let o=XA(null);try{return Re(6,t,A),A(i)!==!1}catch(n){return oU(e,n),!1}finally{Re(7,t,A),XA(o)}}function oU(e,t){let A=e[Rr],i=A?A.get(Ut,null):null;i&&i.handleError(t)}function Cw(e,t,A,i,o,n){let g=t[A],r=t[ZA],a=r.data[A].outputs[i],c=g[a],h=r.firstCreatePass?ch(r):null,p=Bh(t),D=c.subscribe(n),w=p.length;p.push(n,D),h&&h.push(o,e.index,w,-(w+1))}function S(e,t,A,i){let o=_A(),n=ve(),g=Bt();return gu(n,o,o[Fe],g,e,t,i),S}function nu(e,t){let A=Bt(),i=_A(),o=ve(),n=hh(o.data),g=i0(n,A,i);return gu(o,i,g,A,e,t),nu}function nU(e,t,A,i){let o=e.cleanup;if(o!=null)for(let n=0;ns?r[s]:null}typeof g=="string"&&(n+=2)}return null}function gu(e,t,A,i,o,n,g){let r=VB(i),a=e.firstCreatePass?ch(e):null,c=Bh(t),h=!0;if(i.type&3||g){let p=Qo(i,t),D=g?g(p):p,w=c.length,R=g?iA=>g(ao(iA[i.index])):i.index,q=null;if(!g&&r&&(q=nU(e,t,o,i.index)),q!==null){let iA=q.__ngLastListenerFn__||q;iA.__ngNextListenerFn__=n,q.__ngLastListenerFn__=n,h=!1}else{n=aw(i,t,n),v_(t,D,o,n);let iA=A.listen(D,o,n);c.push(n,iA),a&&a.push(o,R,w,w+1)}}else n=aw(i,t,n);if(h){let p=i.outputs?.[o],D=i.hostDirectiveOutputs?.[o];if(D&&D.length)for(let w=0;w(XB(!0),cL(t[Fe],i));function SA(e){return hA("",e,""),SA}function hA(e,t,A){let i=_A(),o=P0(i,e,t,A);return o!==si&&oM(i,Zo(),o),hA}function ru(e,t,A,i,o){let n=_A(),g=Sx(n,e,t,A,i,o);return g!==si&&oM(n,Zo(),g),ru}function oM(e,t,A){let i=Ow(t,e);QL(e[Fe],i,A)}function Ht(e,t,A){Dy(t)&&(t=t());let i=_A(),o=yn();if(ni(i,o,t)){let n=ve(),g=fa();oc(n,g,i,e,t,i[Fe],A,!1)}return Ht}function ai(e,t){let A=Dy(e);return A&&e.set(t),A}function Tt(e,t){let A=_A(),i=ve(),o=Bt();return gu(i,A,A[Fe],o,e,t),Tt}function aU(e,t,A){let i=ve();if(i.firstCreatePass){let o=Ti(e);Od(A,i.data,i.blueprint,o,!0),Od(t,i.data,i.blueprint,o,!1)}}function Od(e,t,A,i,o){if(e=Ct(e),Array.isArray(e))for(let n=0;n>20;if(Mr(e)||!e.multi){let D=new dg(a,o,O),w=Pl(s,t,o?c:c+p,h);w===-1?(od(wB(r,g),n,s),Ol(n,e,t.length),t.push(s),r.directiveStart++,r.directiveEnd++,o&&(r.providerIndexes+=1048576),A.push(D),g.push(D)):(A[w]=D,g[w]=D)}else{let D=Pl(s,t,c+p,h),w=Pl(s,t,c,c+p),R=D>=0&&A[D],q=w>=0&&A[w];if(o&&!q||!o&&!R){od(wB(r,g),n,s);let iA=BU(o?CU:IU,A.length,o,i,a);!o&&q&&(A[w].providerFactory=iA),Ol(n,e,t.length,0),t.push(s),r.directiveStart++,r.directiveEnd++,o&&(r.providerIndexes+=1048576),A.push(iA),g.push(iA)}else{let iA=nM(A[o?w:D],a,!o&&i);Ol(n,e,D>-1?D:w,iA)}!o&&i&&q&&A[w].componentProviders++}}}function Ol(e,t,A,i){let o=Mr(t),n=sG(t);if(o||n){let s=(n?Ct(t.useClass):t).prototype.ngOnDestroy;if(s){let a=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){let c=a.indexOf(A);c===-1?a.push(A,[i,s]):a[c+1].push(i,s)}else a.push(A,s)}}}function nM(e,t,A){return A&&e.componentProviders++,e.multi.push(t)-1}function Pl(e,t,A,i){for(let o=A;o{A.providersResolver=(i,o)=>aU(i,o?o(e):e,t)}}function gM(e,t,A){let i=Da()+e,o=_A();return o[i]===si?jh(o,i,A?t.call(A):t()):Dx(o,i)}function Ot(e,t,A,i){return sM(_A(),Da(),e,t,A,i)}function Fn(e,t,A,i,o){return aM(_A(),Da(),e,t,A,i,o)}function rM(e,t){let A=e[t];return A===si?void 0:A}function sM(e,t,A,i,o,n){let g=t+A;return ni(e,g,o)?jh(e,g+1,n?i.call(n,o):i(o)):rM(e,g+1)}function aM(e,t,A,i,o,n,g){let r=t+A;return Y0(e,r,o,n)?jh(e,r+2,g?i.call(g,o,n):i(o,n)):rM(e,r+2)}function Pi(e,t){let A=ve(),i,o=e+et;A.firstCreatePass?(i=cU(t,A.pipeRegistry),A.data[o]=i,i.onDestroy&&(A.destroyHooks??=[]).push(o,i.onDestroy)):i=A.data[o];let n=i.factory||(i.factory=Cg(i.type,!0)),g,r=Lt(O);try{let s=fB(!1),a=n();return fB(s),pG(A,_A(),o,a),a}finally{Lt(r)}}function cU(e,t){if(t)for(let A=t.length-1;A>=0;A--){let i=t[A];if(e===i.name)return i}}function Or(e,t,A){let i=e+et,o=_A(),n=Ih(o,i);return IM(o,i)?sM(o,Da(),t,n.transform,A,n):n.transform(A)}function Fa(e,t,A,i){let o=e+et,n=_A(),g=Ih(n,o);return IM(n,o)?aM(n,Da(),t,g.transform,A,i,g):g.transform(A,i)}function IM(e,t){return e[ZA].data[t].pure}function Na(e,t){return sc(e,t)}var gB=null;function QU(e){gB!==null&&(e.defaultEncapsulation!==gB.defaultEncapsulation||e.preserveWhitespaces!==gB.preserveWhitespaces)||(gB=e)}var pg=class{full;major;minor;patch;constructor(t){this.full=t;let A=t.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},su=new pg("19.2.14"),Zd=class{ngModuleFactory;componentFactories;constructor(t,A){this.ngModuleFactory=t,this.componentFactories=A}},CM=(()=>{class e{compileModuleSync(A){return new GB(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),o=Fw(A),n=qy(o.declarations).reduce((g,r)=>{let s=fn(r);return s&&g.push(new ug(s)),g},[]);return new Zd(i,n)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),EU=new b("");function lU(e,t,A){let i=new GB(A);return Promise.resolve(i)}function Bw(e){for(let t=e.length-1;t>=0;t--)if(e[t]!==void 0)return e[t]}var dU=(()=>{class e{zone=C(AA);changeDetectionScheduler=C(hg);applicationRef=C(gi);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function hU({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:A}){return e??=()=>new AA(fA(v({},BM()),{scheduleInRootZone:A})),[{provide:AA,useFactory:e},{provide:yr,multi:!0,useFactory:()=>{let i=C(dU,{optional:!0});return()=>i.initialize()}},{provide:yr,multi:!0,useFactory:()=>{let i=C(uU);return()=>{i.initialize()}}},t===!0?{provide:ly,useValue:!0}:[],{provide:dy,useValue:A??Ey}]}function BM(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var uU=(()=>{class e{subscription=new FA;initialized=!1;zone=C(AA);pendingTasks=C(qo);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{AA.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{AA.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var mU=(()=>{class e{appRef=C(gi);taskService=C(qo);ngZone=C(AA);zonelessEnabled=C(yh);tracing=C(Jr,{optional:!0});disableScheduling=C(ly,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new FA;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(MB):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(C(dy,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof bB||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let o=this.useMicrotaskScheduler?Kf:hy;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(MB+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,Kf(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function pU(){return typeof $localize<"u"&&$localize.locale||UB}var cc=new b("",{providedIn:"root",factory:()=>C(cc,zA.Optional|zA.SkipSelf)||pU()});var YB=new b(""),DU=new b("");function ga(e){return!e.moduleRef}function fU(e){let t=ga(e)?e.r3Injector:e.moduleRef.injector,A=t.get(AA);return A.run(()=>{ga(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let i=t.get(Ut,null),o;if(A.runOutsideAngular(()=>{o=A.onError.subscribe({next:n=>{i.handleError(n)}})}),ga(e)){let n=()=>t.destroy(),g=e.platformInjector.get(YB);g.add(n),t.onDestroy(()=>{o.unsubscribe(),g.delete(n)})}else{let n=()=>e.moduleRef.destroy(),g=e.platformInjector.get(YB);g.add(n),e.moduleRef.onDestroy(()=>{CB(e.allPlatformModules,e.moduleRef),o.unsubscribe(),g.delete(n)})}return yU(i,A,()=>{let n=t.get(T0);return n.runInitializers(),n.donePromise.then(()=>{let g=t.get(cc,UB);if(iU(g||UB),!t.get(DU,!0))return ga(e)?t.get(gi):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(ga(e)){let s=t.get(gi);return e.rootComponent!==void 0&&s.bootstrap(e.rootComponent),s}else return wU(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}function wU(e,t){let A=e.injector.get(gi);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(e.instance.ngDoBootstrap)e.instance.ngDoBootstrap(A);else throw new P(-403,!1);t.push(e)}function yU(e,t,A){try{let i=A();return kn(i)?i.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):i}catch(i){throw t.runOutsideAngular(()=>e.handleError(i)),i}}var cM=(()=>{class e{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(A){this._injector=A}bootstrapModuleFactory(A,i){let o=i?.scheduleInRootZone,n=()=>B_(i?.ngZone,fA(v({},BM({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing})),{scheduleInRootZone:o})),g=i?.ignoreChangesOutsideZone,r=[hU({ngZoneFactory:n,ignoreChangesOutsideZone:g}),{provide:hg,useExisting:mU}],s=rx(A.moduleType,this.injector,r);return fU({moduleRef:s,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(A,i=[]){let o=O0({},i);return lU(this.injector,o,A).then(n=>this.bootstrapModuleFactory(n,o))}onDestroy(A){this._destroyListeners.push(A)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new P(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());let A=this._injector.get(YB,null);A&&(A.forEach(i=>i()),A.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||e)(eA(RA))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),Ia=null,QM=new b("");function MU(e){if(Ia&&!Ia.get(QM,!1))throw new P(400,!1);bx(),Ia=e;let t=e.get(cM);return kU(e),t}function au(e,t,A=[]){let i=`Platform: ${t}`,o=new b(i);return(n=[])=>{let g=EM();if(!g||g.injector.get(QM,!1)){let r=[...A,...n,{provide:o,useValue:!0}];e?e(r):MU(bU(r,i))}return RU(o)}}function bU(e=[],t){return RA.create({name:t,providers:[{provide:PB,useValue:"platform"},{provide:YB,useValue:new Set([()=>Ia=null])},...e]})}function RU(e){let t=EM();if(!t)throw new P(401,!1);return t}function EM(){return Ia?.get(cM)??null}function kU(e){let t=e.get(Rh,null);Yt(e,()=>{t?.forEach(A=>A())})}var DA=(()=>{class e{static __NG_ELEMENT_ID__=vU}return e})();function vU(e){return SU(Bt(),_A(),(e&16)===16)}function SU(e,t,A){if(_r(e)&&!A){let i=Io(e.index,t);return new la(i,i)}else if(e.type&175){let i=t[oi];return new la(i,t)}return null}var qd=class{constructor(){}supports(t){return U0(t)}create(t){return new Vd(t)}},FU=(e,t)=>t,Vd=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||FU}forEachItem(t){let A;for(A=this._itHead;A!==null;A=A._next)t(A)}forEachOperation(t){let A=this._itHead,i=this._removalsHead,o=0,n=null;for(;A||i;){let g=!i||A&&A.currentIndex{g=this._trackByFn(o,r),A===null||!Object.is(A.trackById,g)?(A=this._mismatch(A,r,g,o),i=!0):(i&&(A=this._verifyReinsertion(A,r,g,o)),Object.is(A.item,r)||this._addIdentityChange(A,r)),A=A._next,o++}),this.length=o;return this._truncate(A),this.collection=t,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;t!==null;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;t!==null;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,A,i,o){let n;return t===null?n=this._itTail:(n=t._prev,this._remove(t)),t=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),t!==null?(Object.is(t.item,A)||this._addIdentityChange(t,A),this._reinsertAfter(t,n,o)):(t=this._linkedRecords===null?null:this._linkedRecords.get(i,o),t!==null?(Object.is(t.item,A)||this._addIdentityChange(t,A),this._moveAfter(t,n,o)):t=this._addAfter(new Wd(A,i),n,o)),t}_verifyReinsertion(t,A,i,o){let n=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return n!==null?t=this._reinsertAfter(n,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;t!==null;){let A=t._next;this._addToRemovals(this._unlink(t)),t=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(t);let o=t._prevRemoved,n=t._nextRemoved;return o===null?this._removalsHead=n:o._nextRemoved=n,n===null?this._removalsTail=o:n._prevRemoved=o,this._insertAfter(t,A,i),this._addToMoves(t,i),t}_moveAfter(t,A,i){return this._unlink(t),this._insertAfter(t,A,i),this._addToMoves(t,i),t}_addAfter(t,A,i){return this._insertAfter(t,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t}_insertAfter(t,A,i){let o=A===null?this._itHead:A._next;return t._next=o,t._prev=A,o===null?this._itTail=t:o._prev=t,A===null?this._itHead=t:A._next=t,this._linkedRecords===null&&(this._linkedRecords=new JB),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){this._linkedRecords!==null&&this._linkedRecords.remove(t);let A=t._prev,i=t._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,t}_addToMoves(t,A){return t.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t),t}_addToRemovals(t){return this._unlinkedRecords===null&&(this._unlinkedRecords=new JB),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,A){return t.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t}},Wd=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,A){this.item=t,this.trackById=A}},zd=class{_head=null;_tail=null;add(t){this._head===null?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){let A=t._prevDup,i=t._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},JB=class{map=new Map;put(t){let A=t.trackById,i=this.map.get(A);i||(i=new zd,this.map.set(A,i)),i.add(t)}get(t,A){let i=t,o=this.map.get(i);return o?o.get(t,A):null}remove(t){let A=t.trackById;return this.map.get(A).remove(t)&&this.map.delete(A),t}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function cw(e,t,A){let i=e.previousIndex;if(i===null)return i;let o=0;return A&&i{if(A&&A.key===o)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let n=this._getOrCreateRecordForKey(o,i);A=this._insertBeforeOrAppend(A,n)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,A){if(t){let i=t._prev;return A._next=t,A._prev=i,t._prev=A,i&&(i._next=A),t===this._mapHead&&(this._mapHead=A),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(t,A){if(this._records.has(t)){let o=this._records.get(t);this._maybeAddToChanges(o,A);let n=o._prev,g=o._next;return n&&(n._next=g),g&&(g._prev=n),o._next=null,o._prev=null,o}let i=new $d(t);return this._records.set(t,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;t!==null;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;t!=null;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,A){Object.is(A,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=A,this._addToChanges(t))}_addToAdditions(t){this._additionsHead===null?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){this._changesHead===null?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,A){t instanceof Map?t.forEach(A):Object.keys(t).forEach(i=>A(t[i],i))}},$d=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}};function Qw(){return new lo([new qd])}var lo=(()=>{class e{factories;static \u0275prov=G({token:e,providedIn:"root",factory:Qw});constructor(A){this.factories=A}static create(A,i){if(i!=null){let o=i.factories.slice();A=A.concat(o)}return new e(A)}static extend(A){return{provide:e,useFactory:i=>e.create(A,i||Qw()),deps:[[e,new ua,new Dg]]}}find(A){let i=this.factories.find(o=>o.supports(A));if(i!=null)return i;throw new P(901,!1)}}return e})();function Ew(){return new Qc([new jd])}var Qc=(()=>{class e{static \u0275prov=G({token:e,providedIn:"root",factory:Ew});factories;constructor(A){this.factories=A}static create(A,i){if(i){let o=i.factories.slice();A=A.concat(o)}return new e(A)}static extend(A){return{provide:e,useFactory:i=>e.create(A,i||Ew()),deps:[[e,new ua,new Dg]]}}find(A){let i=this.factories.find(o=>o.supports(A));if(i)return i;throw new P(901,!1)}}return e})();var lM=au(null,"core",[]),dM=(()=>{class e{constructor(A){}static \u0275fac=function(i){return new(i||e)(eA(gi))};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();function j(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}function Ae(e,t=NaN){return!isNaN(parseFloat(e))&&!isNaN(Number(e))?Number(e):t}function Pt(e){return ll(e)}function zo(e,t){return RC(e,t?.equal)}var Ah=class{[Gt];constructor(t){this[Gt]=t}destroy(){this[Gt].destroy()}};function Ga(e,t){!t?.injector&&gh(Ga);let A=t?.injector??C(RA),i=t?.manualCleanup!==!0?A.get(Mn):null,o,n=A.get(vh,null,{optional:!0}),g=A.get(hg);return n!==null&&!t?.forceRoot?(o=_U(n.view,g,e),i instanceof yB&&i._lView===n.view&&(i=null)):o=LU(e,A.get(J0),g),o.injector=A,i!==null&&(o.onDestroyFn=i.onDestroy(()=>o.destroy())),new Ah(o)}var hM=fA(v({},gr),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:Qa,run(){if(this.dirty=!1,this.hasRun&&!yC(this))return;this.hasRun=!0;let e=i=>(this.cleanupFns??=[]).push(i),t=Ws(this),A=mB(!1);try{this.maybeCleanup(),this.fn(e)}finally{mB(A),wC(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),NU=fA(v({},hM),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){zs(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),GU=fA(v({},hM),{consumerMarkedDirty(){this.view[YA]|=8192,Kr(this.view),this.notifier.notify(13)},destroy(){zs(this),this.onDestroyFn(),this.maybeCleanup(),this.view[cg]?.delete(this)}});function _U(e,t,A){let i=Object.create(GU);return i.view=e,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=t,i.fn=A,e[cg]??=new Set,e[cg].add(i),i.consumerMarkedDirty(i),i}function LU(e,t,A){let i=Object.create(NU);return i.fn=e,i.scheduler=t,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function Ec(e,t){let A=fn(e),i=t.elementInjector||ZB();return new ug(A).create(i,t.projectableNodes,t.hostElement,t.environmentInjector)}function uM(e){let t=fn(e);if(!t)return null;let A=new ug(t);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}var uA=new b("");var DM=null;function Ii(){return DM}function Iu(e){DM??=e}var _a=class{},La=(()=>{class e{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>C(fM),providedIn:"platform"})}return e})(),Cu=new b(""),fM=(()=>{class e extends La{_location;_history;_doc=C(uA);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Ii().getBaseHref(this._doc)}onPopState(A){let i=Ii().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=Ii().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,o){this._history.pushState(A,i,o)}replaceState(A,i,o){this._history.replaceState(A,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function lc(e,t){return e?t?e.endsWith("/")?t.startsWith("/")?e+t.slice(1):e+t:t.startsWith("/")?e+t:`${e}/${t}`:e:t}function mM(e){let t=e.search(/#|\?|$/);return e[t-1]==="/"?e.slice(0,t-1)+e.slice(t):e}function Zi(e){return e&&e[0]!=="?"?`?${e}`:e}var jo=(()=>{class e{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>C(hc),providedIn:"root"})}return e})(),dc=new b(""),hc=(()=>{class e extends jo{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??C(uA).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return lc(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+Zi(this._platformLocation.search),o=this._platformLocation.hash;return o&&A?`${i}${o}`:i}pushState(A,i,o,n){let g=this.prepareExternalUrl(o+Zi(n));this._platformLocation.pushState(A,i,g)}replaceState(A,i,o,n){let g=this.prepareExternalUrl(o+Zi(n));this._platformLocation.replaceState(A,i,g)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||e)(eA(La),eA(dc,8))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ho=(()=>{class e{_subject=new J;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=UU(mM(pM(i))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+Zi(i))}normalize(A){return e.stripTrailingSlash(xU(this._basePath,pM(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",o=null){this._locationStrategy.pushState(o,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Zi(i)),o)}replaceState(A,i="",o=null){this._locationStrategy.replaceState(o,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Zi(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(o=>o(A,i))}subscribe(A,i,o){return this._subject.subscribe({next:A,error:i??void 0,complete:o??void 0})}static normalizeQueryParams=Zi;static joinWithSlash=lc;static stripTrailingSlash=mM;static \u0275fac=function(i){return new(i||e)(eA(jo))};static \u0275prov=G({token:e,factory:()=>KU(),providedIn:"root"})}return e})();function KU(){return new ho(eA(jo))}function xU(e,t){if(!e||!t.startsWith(e))return t;let A=t.substring(e.length);return A===""||["/",";","?","#"].includes(A[0])?A:t}function pM(e){return e.replace(/\/index.html$/,"")}function UU(e){if(new RegExp("^(https?:)?//").test(e)){let[,A]=e.split(/\/\/[^\/]+/);return A}return e}var Eu=(()=>{class e extends jo{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=lc(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,o,n){let g=this.prepareExternalUrl(o+Zi(n))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,g)}replaceState(A,i,o,n){let g=this.prepareExternalUrl(o+Zi(n))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,g)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||e)(eA(La),eA(dc,8))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();var Bu=/\s+/,wM=[],Ci=(()=>{class e{_ngEl;_renderer;initialClasses=wM;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(Bu):wM}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(Bu):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let o=this.stateMap.get(A);o!==void 0?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],o=A[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(Bu).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(i){return new(i||e)(O(z),O(ie))};static \u0275dir=T({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var uc=class{$implicit;ngForOf;index;count;constructor(t,A,i,o){this.$implicit=t,this.ngForOf=A,this.index=i,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},pc=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,o){this._viewContainer=A,this._template=i,this._differs=o}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((o,n,g)=>{if(o.previousIndex==null)i.createEmbeddedView(this._template,new uc(o.item,this._ngForOf,-1,-1),g===null?void 0:g);else if(g==null)i.remove(n===null?void 0:n);else if(n!==null){let r=i.get(n);i.move(r,g),yM(r,o)}});for(let o=0,n=i.length;o{let n=i.get(o.currentIndex);yM(n,o)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||e)(O(Ee),O(ae),O(lo))};static \u0275dir=T({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function yM(e,t){e.context.$implicit=t.item}var Ka=(()=>{class e{_viewContainer;_context=new mc;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){MM(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){MM(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||e)(O(Ee),O(ae))};static \u0275dir=T({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),mc=class{$implicit=null;ngIf=null};function MM(e,t){if(e&&!e.createEmbeddedView)throw new P(2020,!1)}var xa=(()=>{class e{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,o){this._ngEl=A,this._differs=i,this._renderer=o}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[o,n]=A.split("."),g=o.indexOf("-")===-1?void 0:Bo.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,o,n?`${i}${n}`:i,g):this._renderer.removeStyle(this._ngEl.nativeElement,o,g)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||e)(O(z),O(Qc),O(ie))};static \u0275dir=T({type:e,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return e})(),Ua=(()=>{class e{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,o)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,o):!1,get:(A,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static \u0275fac=function(i){return new(i||e)(O(Ee))};static \u0275dir=T({type:e,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[LA]})}return e})();function YU(e,t){return new P(2100,!1)}var cu=class{createSubscription(t,A){return Pt(()=>t.subscribe({next:A,error:i=>{throw i}}))}dispose(t){Pt(()=>t.unsubscribe())}},Qu=class{createSubscription(t,A){return t.then(i=>A?.(i),i=>{throw i}),{unsubscribe:()=>{A=null}}}dispose(t){t.unsubscribe()}},JU=new Qu,HU=new cu,Ya=(()=>{class e{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(kn(A))return JU;if(eu(A))return HU;throw YU(e,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||e)(O(DA,16))};static \u0275pipe=Ic({name:"async",type:e,pure:!1})}return e})();function TU(e,t){return{key:e,value:t}}var Ja=(()=>{class e{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=bM;transform(A,i=bM){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let o=this.differ.diff(A),n=i!==this.compareFn;return o&&(this.keyValues=[],o.forEachItem(g=>{this.keyValues.push(TU(g.key,g.currentValue))})),(o||n)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||e)(O(Qc,16))};static \u0275pipe=Ic({name:"keyvalue",type:e,pure:!1})}return e})();function bM(e,t){let A=e.key,i=t.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();function Ha(e,t){t=encodeURIComponent(t);for(let A of e.split(";")){let i=A.indexOf("="),[o,n]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(o.trim()===t)return decodeURIComponent(n)}return null}var Dc="browser",RM="server";function uo(e){return e===Dc}function fc(e){return e===RM}var Mg=class{};var kM=(()=>{class e{static \u0275prov=G({token:e,providedIn:"root",factory:()=>new lu(C(uA),window)})}return e})(),lu=class{document;window;offset=()=>[0,0];constructor(t,A){this.document=t,this.window=A}setOffset(t){Array.isArray(t)?this.offset=()=>t:this.offset=t}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(t){this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){let A=OU(this.document,t);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(t){this.window.history.scrollRestoration=t}scrollToElement(t){let A=t.getBoundingClientRect(),i=A.left+this.window.pageXOffset,o=A.top+this.window.pageYOffset,n=this.offset();this.window.scrollTo(i-n[0],o-n[1])}};function OU(e,t){let A=e.getElementById(t)||e.getElementsByName(t)[0];if(A)return A;if(typeof e.createTreeWalker=="function"&&e.body&&typeof e.body.attachShadow=="function"){let i=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),o=i.currentNode;for(;o;){let n=o.shadowRoot;if(n){let g=n.getElementById(t)||n.querySelector(`[name="${t}"]`);if(g)return g}o=i.nextNode()}}return null}var Mc=new b(""),mu=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(o=>{o.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,o,n){return this._findPluginFor(i).addEventListener(A,i,o,n)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(n=>n.supports(A)),!i)throw new P(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||e)(eA(Mc),eA(AA))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),Ta=class{_doc;constructor(t){this._doc=t}manager},wc="ng-app-id";function vM(e){for(let t of e)t.remove()}function SM(e,t){let A=t.createElement("style");return A.textContent=e,A}function PU(e,t,A,i){let o=e.head?.querySelectorAll(`style[${wc}="${t}"],link[${wc}="${t}"]`);if(o)for(let n of o)n.removeAttribute(wc),n instanceof HTMLLinkElement?i.set(n.href.slice(n.href.lastIndexOf("/")+1),{usage:0,elements:[n]}):n.textContent&&A.set(n.textContent,{usage:0,elements:[n]})}function hu(e,t){let A=t.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",e),A}var pu=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,o,n={}){this.doc=A,this.appId=i,this.nonce=o,this.isServer=fc(n),PU(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let o of A)this.addUsage(o,this.inline,SM);i?.forEach(o=>this.addUsage(o,this.external,hu))}removeStyles(A,i){for(let o of A)this.removeUsage(o,this.inline);i?.forEach(o=>this.removeUsage(o,this.external))}addUsage(A,i,o){let n=i.get(A);n?n.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(g=>this.addElement(g,o(A,this.doc)))})}removeUsage(A,i){let o=i.get(A);o&&(o.usage--,o.usage<=0&&(vM(o.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])vM(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:o}]of this.inline)o.push(this.addElement(A,SM(i,this.doc)));for(let[i,{elements:o}]of this.external)o.push(this.addElement(A,hu(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(wc,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||e)(eA(uA),eA(Yr),eA(wa,8),eA(Eo))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),du={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Du=/%COMP%/g;var NM="%COMP%",ZU=`_nghost-${NM}`,qU=`_ngcontent-${NM}`,VU=!0,WU=new b("",{providedIn:"root",factory:()=>VU});function zU(e){return qU.replace(Du,e)}function jU(e){return ZU.replace(Du,e)}function GM(e,t){return t.map(A=>A.replace(Du,e))}var Za=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,o,n,g,r,s,a=null,c=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=n,this.doc=g,this.platformId=r,this.ngZone=s,this.nonce=a,this.tracingService=c,this.platformIsServer=fc(r),this.defaultRenderer=new Oa(A,g,s,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Co.ShadowDom&&(i=fA(v({},i),{encapsulation:Co.Emulated}));let o=this.getOrCreateRenderer(A,i);return o instanceof yc?o.applyToHost(A):o instanceof Pa&&o.applyStyles(),o}getOrCreateRenderer(A,i){let o=this.rendererByCompId,n=o.get(i.id);if(!n){let g=this.doc,r=this.ngZone,s=this.eventManager,a=this.sharedStylesHost,c=this.removeStylesOnCompDestroy,h=this.platformIsServer,p=this.tracingService;switch(i.encapsulation){case Co.Emulated:n=new yc(s,a,i,this.appId,c,g,r,h,p);break;case Co.ShadowDom:return new uu(s,a,A,i,g,r,this.nonce,h,p);default:n=new Pa(s,a,i,c,g,r,h,p);break}o.set(i.id,n)}return n}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||e)(eA(mu),eA(pu),eA(Yr),eA(WU),eA(uA),eA(Eo),eA(AA),eA(wa),eA(Jr,8))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),Oa=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,A,i,o,n){this.eventManager=t,this.doc=A,this.ngZone=i,this.platformIsServer=o,this.tracingService=n}destroy(){}destroyNode=null;createElement(t,A){return A?this.doc.createElementNS(du[A]||A,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,A){(FM(t)?t.content:t).appendChild(A)}insertBefore(t,A,i){t&&(FM(t)?t.content:t).insertBefore(A,i)}removeChild(t,A){A.remove()}selectRootElement(t,A){let i=typeof t=="string"?this.doc.querySelector(t):t;if(!i)throw new P(-5104,!1);return A||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,A,i,o){if(o){A=o+":"+A;let n=du[o];n?t.setAttributeNS(n,A,i):t.setAttribute(A,i)}else t.setAttribute(A,i)}removeAttribute(t,A,i){if(i){let o=du[i];o?t.removeAttributeNS(o,A):t.removeAttribute(`${i}:${A}`)}else t.removeAttribute(A)}addClass(t,A){t.classList.add(A)}removeClass(t,A){t.classList.remove(A)}setStyle(t,A,i,o){o&(Bo.DashCase|Bo.Important)?t.style.setProperty(A,i,o&Bo.Important?"important":""):t.style[A]=i}removeStyle(t,A,i){i&Bo.DashCase?t.style.removeProperty(A):t.style[A]=""}setProperty(t,A,i){t!=null&&(t[A]=i)}setValue(t,A){t.nodeValue=A}listen(t,A,i,o){if(typeof t=="string"&&(t=Ii().getGlobalEventTarget(this.doc,t),!t))throw new P(5102,!1);let n=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(n=this.tracingService.wrapEventListener(t,A,n)),this.eventManager.addEventListener(t,A,n,o)}decoratePreventDefault(t){return A=>{if(A==="__ngUnwrap__")return t;(this.platformIsServer?this.ngZone.runGuarded(()=>t(A)):t(A))===!1&&A.preventDefault()}}};function FM(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var uu=class extends Oa{sharedStylesHost;hostEl;shadowRoot;constructor(t,A,i,o,n,g,r,s,a){super(t,n,g,s,a),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let c=o.styles;c=GM(o.id,c);for(let p of c){let D=document.createElement("style");r&&D.setAttribute("nonce",r),D.textContent=p,this.shadowRoot.appendChild(D)}let h=o.getExternalStyles?.();if(h)for(let p of h){let D=hu(p,n);r&&D.setAttribute("nonce",r),this.shadowRoot.appendChild(D)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,A){return super.appendChild(this.nodeOrShadowRoot(t),A)}insertBefore(t,A,i){return super.insertBefore(this.nodeOrShadowRoot(t),A,i)}removeChild(t,A){return super.removeChild(null,A)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},Pa=class extends Oa{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,A,i,o,n,g,r,s,a){super(t,n,g,r,s),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=o;let c=i.styles;this.styles=a?GM(a,c):c,this.styleUrls=i.getExternalStyles?.(a)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},yc=class extends Pa{contentAttr;hostAttr;constructor(t,A,i,o,n,g,r,s,a){let c=o+"-"+i.id;super(t,A,i,n,g,r,s,a,c),this.contentAttr=zU(c),this.hostAttr=jU(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,A){let i=super.createElement(t,A);return super.setAttribute(i,this.contentAttr,""),i}};var bc=class e extends _a{supportsDOMEvents=!0;static makeCurrent(){Iu(new e)}onAndCancel(t,A,i,o){return t.addEventListener(A,i,o),()=>{t.removeEventListener(A,i,o)}}dispatchEvent(t,A){t.dispatchEvent(A)}remove(t){t.remove()}createElement(t,A){return A=A||this.getDefaultDocument(),A.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,A){return A==="window"?window:A==="document"?t:A==="body"?t.body:null}getBaseHref(t){let A=XU();return A==null?null:$U(A)}resetBaseElement(){qa=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return Ha(document.cookie,t)}},qa=null;function XU(){return qa=qa||document.head.querySelector("base"),qa?qa.getAttribute("href"):null}function $U(e){return new URL(e,document.baseURI).pathname}var Rc=class{addToWindow(t){xt.getAngularTestability=(i,o=!0)=>{let n=t.findTestabilityInTree(i,o);if(n==null)throw new P(5103,!1);return n},xt.getAllAngularTestabilities=()=>t.getAllTestabilities(),xt.getAllAngularRootElements=()=>t.getAllRootElements();let A=i=>{let o=xt.getAllAngularTestabilities(),n=o.length,g=function(){n--,n==0&&i()};o.forEach(r=>{r.whenStable(g)})};xt.frameworkStabilizers||(xt.frameworkStabilizers=[]),xt.frameworkStabilizers.push(A)}findTestabilityInTree(t,A,i){if(A==null)return null;let o=t.getTestability(A);return o??(i?Ii().isShadowRoot(A)?this.findTestabilityInTree(t,A.host,!0):this.findTestabilityInTree(t,A.parentElement,!0):null)}},AY=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),LM=(()=>{class e extends Ta{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,o,n){return A.addEventListener(i,o,n),()=>this.removeEventListener(A,i,o,n)}removeEventListener(A,i,o,n){return A.removeEventListener(i,o,n)}static \u0275fac=function(i){return new(i||e)(eA(uA))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),_M=["alt","control","meta","shift"],eY={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},tY={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},KM=(()=>{class e extends Ta{constructor(A){super(A)}supports(A){return e.parseEventName(A)!=null}addEventListener(A,i,o,n){let g=e.parseEventName(i),r=e.eventCallback(g.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ii().onAndCancel(A,g.domEventName,r,n))}static parseEventName(A){let i=A.toLowerCase().split("."),o=i.shift();if(i.length===0||!(o==="keydown"||o==="keyup"))return null;let n=e._normalizeKey(i.pop()),g="",r=i.indexOf("code");if(r>-1&&(i.splice(r,1),g="code."),_M.forEach(a=>{let c=i.indexOf(a);c>-1&&(i.splice(c,1),g+=a+".")}),g+=n,i.length!=0||n.length===0)return null;let s={};return s.domEventName=o,s.fullKey=g,s}static matchEventFullKeyCode(A,i){let o=eY[A.key]||A.key,n="";return i.indexOf("code.")>-1&&(o=A.code,n="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),_M.forEach(g=>{if(g!==o){let r=tY[g];r(A)&&(n+=g+".")}}),n+=o,n===i)}static eventCallback(A,i,o){return n=>{e.matchEventFullKeyCode(n,A)&&o.runGuarded(()=>i(n))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||e)(eA(uA))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();function iY(){bc.makeCurrent()}function oY(){return new Ut}function nY(){return ky(document),document}var gY=[{provide:Eo,useValue:Dc},{provide:Rh,useValue:iY,multi:!0},{provide:uA,useFactory:nY}],kc=au(lM,"browser",gY);var rY=[{provide:Sa,useClass:Rc},{provide:$h,useClass:Cc,deps:[AA,Bc,Sa]},{provide:Cc,useClass:Cc,deps:[AA,Bc,Sa]}],sY=[{provide:PB,useValue:"root"},{provide:Ut,useFactory:oY},{provide:Mc,useClass:LM,multi:!0,deps:[uA]},{provide:Mc,useClass:KM,multi:!0,deps:[uA]},Za,pu,mu,{provide:dt,useExisting:Za},{provide:Mg,useClass:AY},[]],Va=(()=>{class e{constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[...sY,...rY],imports:[Xo,dM]})}return e})();var Zr=class{},Wa=class{},Gn=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(` -`).forEach(A=>{let i=A.indexOf(":");if(i>0){let o=A.slice(0,i),n=A.slice(i+1).trim();this.addHeaderEntry(o,n)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let A=this.headers.get(t.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,A){return this.clone({name:t,value:A,op:"a"})}set(t,A){return this.clone({name:t,value:A,op:"s"})}delete(t,A){return this.clone({name:t,value:A,op:"d"})}maybeSetNormalizedName(t,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,t)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(A=>{this.headers.set(A,t.headers.get(A)),this.normalizedNames.set(A,t.normalizedNames.get(A))})}clone(t){let A=new e;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([t]),A}applyUpdate(t){let A=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(t.name,A);let o=(t.op==="a"?this.headers.get(A):void 0)||[];o.push(...i),this.headers.set(A,o);break;case"d":let n=t.value;if(!n)this.headers.delete(A),this.normalizedNames.delete(A);else{let g=this.headers.get(A);if(!g)return;g=g.filter(r=>n.indexOf(r)===-1),g.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,g)}break}}addHeaderEntry(t,A){let i=t.toLowerCase();this.maybeSetNormalizedName(t,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(t,A){let i=(Array.isArray(A)?A:[A]).map(n=>n.toString()),o=t.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>t(this.normalizedNames.get(A),this.headers.get(A)))}};var Sc=class{encodeKey(t){return xM(t)}encodeValue(t){return xM(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function aY(e,t){let A=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{let n=o.indexOf("="),[g,r]=n==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,n)),t.decodeValue(o.slice(n+1))],s=A.get(g)||[];s.push(r),A.set(g,s)}),A}var IY=/%(\d[a-f0-9])/gi,CY={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function xM(e){return encodeURIComponent(e).replace(IY,(t,A)=>CY[A]??t)}function vc(e){return`${e}`}var $o=class e{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new Sc,t.fromString){if(t.fromObject)throw new P(2805,!1);this.map=aY(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(A=>{let i=t.fromObject[A],o=Array.isArray(i)?i.map(vc):[vc(i)];this.map.set(A,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let A=this.map.get(t);return A?A[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,A){return this.clone({param:t,value:A,op:"a"})}appendAll(t){let A=[];return Object.keys(t).forEach(i=>{let o=t[i];Array.isArray(o)?o.forEach(n=>{A.push({param:i,value:n,op:"a"})}):A.push({param:i,value:o,op:"a"})}),this.clone(A)}set(t,A){return this.clone({param:t,value:A,op:"s"})}delete(t,A){return this.clone({param:t,value:A,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let A=this.encoder.encodeKey(t);return this.map.get(t).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let A=new e({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(t),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let A=(t.op==="a"?this.map.get(t.param):void 0)||[];A.push(vc(t.value)),this.map.set(t.param,A);break;case"d":if(t.value!==void 0){let i=this.map.get(t.param)||[],o=i.indexOf(vc(t.value));o!==-1&&i.splice(o,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};var Fc=class{map=new Map;set(t,A){return this.map.set(t,A),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}};function BY(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function UM(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function YM(e){return typeof Blob<"u"&&e instanceof Blob}function JM(e){return typeof FormData<"u"&&e instanceof FormData}function cY(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var HM="Content-Type",TM="Accept",PM="X-Request-URL",ZM="text/plain",qM="application/json",QY=`${qM}, ${ZM}, */*`,Pr=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(t,A,i,o){this.url=A,this.method=t.toUpperCase();let n;if(BY(this.method)||o?(this.body=i!==void 0?i:null,n=o):n=i,n&&(this.reportProgress=!!n.reportProgress,this.withCredentials=!!n.withCredentials,n.responseType&&(this.responseType=n.responseType),n.headers&&(this.headers=n.headers),n.context&&(this.context=n.context),n.params&&(this.params=n.params),this.transferCache=n.transferCache),this.headers??=new Gn,this.context??=new Fc,!this.params)this.params=new $o,this.urlWithParams=A;else{let g=this.params.toString();if(g.length===0)this.urlWithParams=A;else{let r=A.indexOf("?"),s=r===-1?"?":rp.set(D,t.setHeaders[D]),a)),t.setParams&&(c=Object.keys(t.setParams).reduce((p,D)=>p.set(D,t.setParams[D]),c)),new e(A,i,g,{params:c,headers:a,context:h,reportProgress:s,responseType:o,withCredentials:r,transferCache:n})}},bg=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(bg||{}),qr=class{headers;status;statusText;url;ok;type;constructor(t,A=200,i="OK"){this.headers=t.headers||new Gn,this.status=t.status!==void 0?t.status:A,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}},Nc=class e extends qr{constructor(t={}){super(t)}type=bg.ResponseHeader;clone(t={}){return new e({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},za=class e extends qr{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=bg.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},ja=class extends qr{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},EY=200,lY=204;function fu(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}var ht=(()=>{class e{handler;constructor(A){this.handler=A}request(A,i,o={}){let n;if(A instanceof Pr)n=A;else{let s;o.headers instanceof Gn?s=o.headers:s=new Gn(o.headers);let a;o.params&&(o.params instanceof $o?a=o.params:a=new $o({fromObject:o.params})),n=new Pr(A,i,o.body!==void 0?o.body:null,{headers:s,context:o.context,params:a,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}let g=gA(n).pipe(oo(s=>this.handler.handle(s)));if(A instanceof Pr||o.observe==="events")return g;let r=g.pipe(MA(s=>s instanceof za));switch(o.observe||"body"){case"body":switch(n.responseType){case"arraybuffer":return r.pipe(CA(s=>{if(s.body!==null&&!(s.body instanceof ArrayBuffer))throw new P(2806,!1);return s.body}));case"blob":return r.pipe(CA(s=>{if(s.body!==null&&!(s.body instanceof Blob))throw new P(2807,!1);return s.body}));case"text":return r.pipe(CA(s=>{if(s.body!==null&&typeof s.body!="string")throw new P(2808,!1);return s.body}));case"json":default:return r.pipe(CA(s=>s.body))}case"response":return r;default:throw new P(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new $o().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,o={}){return this.request("PATCH",A,fu(o,i))}post(A,i,o={}){return this.request("POST",A,fu(o,i))}put(A,i,o={}){return this.request("PUT",A,fu(o,i))}static \u0275fac=function(i){return new(i||e)(eA(Zr))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();var dY=new b("");function VM(e,t){return t(e)}function hY(e,t){return(A,i)=>t.intercept(A,{handle:o=>e(o,i)})}function uY(e,t,A){return(i,o)=>Yt(A,()=>t(i,n=>e(n,o)))}var WM=new b(""),yu=new b(""),zM=new b(""),Mu=new b("",{providedIn:"root",factory:()=>!0});function mY(){let e=null;return(t,A)=>{e===null&&(e=(C(WM,{optional:!0})??[]).reduceRight(hY,VM));let i=C(qo);if(C(Mu)){let n=i.add();return e(t,A).pipe(no(()=>i.remove(n)))}else return e(t,A)}}var Gc=(()=>{class e extends Zr{backend;injector;chain=null;pendingTasks=C(qo);contributeToStability=C(Mu);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(yu),...this.injector.get(zM,[])]));this.chain=i.reduceRight((o,n)=>uY(o,n,this.injector),VM)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,o=>this.backend.handle(o)).pipe(no(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||e)(eA(Wa),eA(qe))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();var pY=/^\)\]\}',?\n/,DY=RegExp(`^${PM}:`,"m");function fY(e){return"responseURL"in e&&e.responseURL?e.responseURL:DY.test(e.getAllResponseHeaders())?e.getResponseHeader(PM):null}var wu=(()=>{class e{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new P(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?de(i.\u0275loadImpl()):gA(null)).pipe(ue(()=>new EA(n=>{let g=i.build();if(g.open(A.method,A.urlWithParams),A.withCredentials&&(g.withCredentials=!0),A.headers.forEach((R,q)=>g.setRequestHeader(R,q.join(","))),A.headers.has(TM)||g.setRequestHeader(TM,QY),!A.headers.has(HM)){let R=A.detectContentTypeHeader();R!==null&&g.setRequestHeader(HM,R)}if(A.responseType){let R=A.responseType.toLowerCase();g.responseType=R!=="json"?R:"text"}let r=A.serializeBody(),s=null,a=()=>{if(s!==null)return s;let R=g.statusText||"OK",q=new Gn(g.getAllResponseHeaders()),iA=fY(g)||A.url;return s=new Nc({headers:q,status:g.status,statusText:R,url:iA}),s},c=()=>{let{headers:R,status:q,statusText:iA,url:kA}=a(),NA=null;q!==lY&&(NA=typeof g.response>"u"?g.responseText:g.response),q===0&&(q=NA?EY:0);let fe=q>=200&&q<300;if(A.responseType==="json"&&typeof NA=="string"){let ee=NA;NA=NA.replace(pY,"");try{NA=NA!==""?JSON.parse(NA):null}catch(je){NA=ee,fe&&(fe=!1,NA={error:je,text:NA})}}fe?(n.next(new za({body:NA,headers:R,status:q,statusText:iA,url:kA||void 0})),n.complete()):n.error(new ja({error:NA,headers:R,status:q,statusText:iA,url:kA||void 0}))},h=R=>{let{url:q}=a(),iA=new ja({error:R,status:g.status||0,statusText:g.statusText||"Unknown Error",url:q||void 0});n.error(iA)},p=!1,D=R=>{p||(n.next(a()),p=!0);let q={type:bg.DownloadProgress,loaded:R.loaded};R.lengthComputable&&(q.total=R.total),A.responseType==="text"&&g.responseText&&(q.partialText=g.responseText),n.next(q)},w=R=>{let q={type:bg.UploadProgress,loaded:R.loaded};R.lengthComputable&&(q.total=R.total),n.next(q)};return g.addEventListener("load",c),g.addEventListener("error",h),g.addEventListener("timeout",h),g.addEventListener("abort",h),A.reportProgress&&(g.addEventListener("progress",D),r!==null&&g.upload&&g.upload.addEventListener("progress",w)),g.send(r),n.next({type:bg.Sent}),()=>{g.removeEventListener("error",h),g.removeEventListener("abort",h),g.removeEventListener("load",c),g.removeEventListener("timeout",h),A.reportProgress&&(g.removeEventListener("progress",D),r!==null&&g.upload&&g.upload.removeEventListener("progress",w)),g.readyState!==g.DONE&&g.abort()}})))}static \u0275fac=function(i){return new(i||e)(eA(Mg))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),jM=new b(""),wY="XSRF-TOKEN",yY=new b("",{providedIn:"root",factory:()=>wY}),MY="X-XSRF-TOKEN",bY=new b("",{providedIn:"root",factory:()=>MY}),Xa=class{},RY=(()=>{class e{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i){this.doc=A,this.cookieName=i}getToken(){let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=Ha(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||e)(eA(uA),eA(yY))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();function kY(e,t){let A=e.url.toLowerCase();if(!C(jM)||e.method==="GET"||e.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return t(e);let i=C(Xa).getToken(),o=C(bY);return i!=null&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,i)})),t(e)}var bu=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(bu||{});function vY(e,t){return{\u0275kind:e,\u0275providers:t}}function XM(...e){let t=[ht,wu,Gc,{provide:Zr,useExisting:Gc},{provide:Wa,useFactory:()=>C(dY,{optional:!0})??C(wu)},{provide:yu,useValue:kY,multi:!0},{provide:jM,useValue:!0},{provide:Xa,useClass:RY}];for(let A of e)t.push(...A.\u0275providers);return pa(t)}var OM=new b("");function $M(){return vY(bu.LegacyInterceptors,[{provide:OM,useFactory:mY},{provide:yu,useExisting:OM,multi:!0}])}var Ru=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[XM($M())]})}return e})();var Ab=(()=>{class e{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||e)(eA(uA))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var qi=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:function(i){let o=null;return i?o=new(i||e):o=eA(SY),o},providedIn:"root"})}return e})(),SY=(()=>{class e extends qi{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case st.NONE:return i;case st.HTML:return Rn(i,"HTML")?Oi(i):Fh(this._doc,String(i)).toString();case st.STYLE:return Rn(i,"Style")?Oi(i):i;case st.SCRIPT:if(Rn(i,"Script"))return Oi(i);throw new P(5200,!1);case st.URL:return Rn(i,"URL")?Oi(i):Ac(String(i));case st.RESOURCE_URL:if(Rn(i,"ResourceURL"))return Oi(i);throw new P(5201,!1);default:throw new P(5202,!1)}}bypassSecurityTrustHtml(A){return Ly(A)}bypassSecurityTrustStyle(A){return Ky(A)}bypassSecurityTrustScript(A){return xy(A)}bypassSecurityTrustUrl(A){return Uy(A)}bypassSecurityTrustResourceUrl(A){return Yy(A)}static \u0275fac=function(i){return new(i||e)(eA(uA))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var sb=(()=>{class e{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||e)(O(ie),O(z))};static \u0275dir=T({type:e})}return e})(),FY=(()=>{class e extends sb{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,features:[lA]})}return e})(),Mi=new b("");var NY={provide:Mi,useExisting:Je(()=>bi),multi:!0};function GY(){let e=Ii()?Ii().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}var _Y=new b(""),bi=(()=>{class e extends sb{_compositionMode;_composing=!1;constructor(A,i,o){super(A,i),this._compositionMode=o,this._compositionMode==null&&(this._compositionMode=!GY())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||e)(O(ie),O(z),O(_Y,8))};static \u0275dir=T({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){i&1&&S("input",function(g){return o._handleInput(g.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(g){return o._compositionEnd(g.target.value)})},standalone:!1,features:[pA([NY]),lA]})}return e})();function Fu(e){return e==null||Nu(e)===0}function Nu(e){return e==null?null:Array.isArray(e)||typeof e=="string"?e.length:e instanceof Set?e.size:null}var en=new b(""),nI=new b(""),LY=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Bi=class{static min(t){return KY(t)}static max(t){return xY(t)}static required(t){return UY(t)}static requiredTrue(t){return YY(t)}static email(t){return JY(t)}static minLength(t){return HY(t)}static maxLength(t){return TY(t)}static pattern(t){return OY(t)}static nullValidator(t){return ab()}static compose(t){return Eb(t)}static composeAsync(t){return lb(t)}};function KY(e){return t=>{if(t.value==null||e==null)return null;let A=parseFloat(t.value);return!isNaN(A)&&A{if(t.value==null||e==null)return null;let A=parseFloat(t.value);return!isNaN(A)&&A>e?{max:{max:e,actual:t.value}}:null}}function UY(e){return Fu(e.value)?{required:!0}:null}function YY(e){return e.value===!0?null:{required:!0}}function JY(e){return Fu(e.value)||LY.test(e.value)?null:{email:!0}}function HY(e){return t=>{let A=t.value?.length??Nu(t.value);return A===null||A===0?null:A{let A=t.value?.length??Nu(t.value);return A!==null&&A>e?{maxlength:{requiredLength:e,actualLength:A}}:null}}function OY(e){if(!e)return ab;let t,A;return typeof e=="string"?(A="",e.charAt(0)!=="^"&&(A+="^"),A+=e,e.charAt(e.length-1)!=="$"&&(A+="$"),t=new RegExp(A)):(A=e.toString(),t=e),i=>{if(Fu(i.value))return null;let o=i.value;return t.test(o)?null:{pattern:{requiredPattern:A,actualValue:o}}}}function ab(e){return null}function Ib(e){return e!=null}function Cb(e){return kn(e)?de(e):e}function Bb(e){let t={};return e.forEach(A=>{t=A!=null?v(v({},t),A):t}),Object.keys(t).length===0?null:t}function cb(e,t){return t.map(A=>A(e))}function PY(e){return!e.validate}function Qb(e){return e.map(t=>PY(t)?t:A=>t.validate(A))}function Eb(e){if(!e)return null;let t=e.filter(Ib);return t.length==0?null:function(A){return Bb(cb(A,t))}}function Gu(e){return e!=null?Eb(Qb(e)):null}function lb(e){if(!e)return null;let t=e.filter(Ib);return t.length==0?null:function(A){let i=cb(A,t).map(Cb);return ia(i).pipe(CA(Bb))}}function _u(e){return e!=null?lb(Qb(e)):null}function eb(e,t){return e===null?[t]:Array.isArray(e)?[...e,t]:[e,t]}function db(e){return e._rawValidators}function hb(e){return e._rawAsyncValidators}function ku(e){return e?Array.isArray(e)?e:[e]:[]}function Lc(e,t){return Array.isArray(e)?e.includes(t):e===t}function tb(e,t){let A=ku(t);return ku(e).forEach(o=>{Lc(A,o)||A.push(o)}),A}function ib(e,t){return ku(t).filter(A=>!Lc(e,A))}var Kc=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=Gu(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=_u(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,A){return this.control?this.control.hasError(t,A):!1}getError(t,A){return this.control?this.control.getError(t,A):null}},An=class extends Kc{name;get formDirective(){return null}get path(){return null}},ci=class extends Kc{_parent=null;name=null;valueAccessor=null},xc=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},ZY={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},TeA=fA(v({},ZY),{"[class.ng-submitted]":"isSubmitted"}),Zt=(()=>{class e extends xc{constructor(A){super(A)}static \u0275fac=function(i){return new(i||e)(O(ci,2))};static \u0275dir=T({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){i&2&&tA("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},standalone:!1,features:[lA]})}return e})(),ub=(()=>{class e extends xc{constructor(A){super(A)}static \u0275fac=function(i){return new(i||e)(O(An,10))};static \u0275dir=T({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){i&2&&tA("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},standalone:!1,features:[lA]})}return e})();var $a="VALID",_c="INVALID",Vr="PENDING",AI="DISABLED",_n=class{},Uc=class extends _n{value;source;constructor(t,A){super(),this.value=t,this.source=A}},tI=class extends _n{pristine;source;constructor(t,A){super(),this.pristine=t,this.source=A}},iI=class extends _n{touched;source;constructor(t,A){super(),this.touched=t,this.source=A}},Wr=class extends _n{status;source;constructor(t,A){super(),this.status=t,this.source=A}},Yc=class extends _n{source;constructor(t){super(),this.source=t}},Jc=class extends _n{source;constructor(t){super(),this.source=t}};function Lu(e){return(Pc(e)?e.validators:e)||null}function qY(e){return Array.isArray(e)?Gu(e):e||null}function Ku(e,t){return(Pc(t)?t.asyncValidators:e)||null}function VY(e){return Array.isArray(e)?_u(e):e||null}function Pc(e){return e!=null&&!Array.isArray(e)&&typeof e=="object"}function mb(e,t,A){let i=e.controls;if(!(t?Object.keys(i):i).length)throw new P(1e3,"");if(!i[A])throw new P(1001,"")}function pb(e,t,A){e._forEachChild((i,o)=>{if(A[o]===void 0)throw new P(1002,"")})}var zr=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,A){this._assignValidators(t),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return Pt(this.statusReactive)}set status(t){Pt(()=>this.statusReactive.set(t))}_status=zo(()=>this.statusReactive());statusReactive=Ne(void 0);get valid(){return this.status===$a}get invalid(){return this.status===_c}get pending(){return this.status==Vr}get disabled(){return this.status===AI}get enabled(){return this.status!==AI}errors;get pristine(){return Pt(this.pristineReactive)}set pristine(t){Pt(()=>this.pristineReactive.set(t))}_pristine=zo(()=>this.pristineReactive());pristineReactive=Ne(!0);get dirty(){return!this.pristine}get touched(){return Pt(this.touchedReactive)}set touched(t){Pt(()=>this.touchedReactive.set(t))}_touched=zo(()=>this.touchedReactive());touchedReactive=Ne(!1);get untouched(){return!this.touched}_events=new J;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(tb(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(tb(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(ib(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(ib(t,this._rawAsyncValidators))}hasValidator(t){return Lc(this._rawValidators,t)}hasAsyncValidator(t){return Lc(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let A=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(fA(v({},t),{sourceControl:i})),A&&t.emitEvent!==!1&&this._events.next(new iI(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(t))}markAsUntouched(t={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),A&&t.emitEvent!==!1&&this._events.next(new iI(!1,i))}markAsDirty(t={}){let A=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(fA(v({},t),{sourceControl:i})),A&&t.emitEvent!==!1&&this._events.next(new tI(!1,i))}markAsPristine(t={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),A&&t.emitEvent!==!1&&this._events.next(new tI(!0,i))}markAsPending(t={}){this.status=Vr;let A=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Wr(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(fA(v({},t),{sourceControl:A}))}disable(t={}){let A=this._parentMarkedDirty(t.onlySelf);this.status=AI,this.errors=null,this._forEachChild(o=>{o.disable(fA(v({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Uc(this.value,i)),this._events.next(new Wr(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(fA(v({},t),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(o=>o(!0))}enable(t={}){let A=this._parentMarkedDirty(t.onlySelf);this.status=$a,this._forEachChild(i=>{i.enable(fA(v({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(fA(v({},t),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,A){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===$a||this.status===Vr)&&this._runAsyncValidator(i,t.emitEvent)}let A=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Uc(this.value,A)),this._events.next(new Wr(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(fA(v({},t),{sourceControl:A}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?AI:$a}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,A){if(this.asyncValidator){this.status=Vr,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=Cb(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:A,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,A={}){this.errors=t,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(t){let A=t;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,o)=>i&&i._find(o),this)}getError(t,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[t]:null}hasError(t,A){return!!this.getError(t,A)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,A,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new Wr(this.status,A)),this._parent&&this._parent._updateControlsErrors(t,A,i)}_initObservables(){this.valueChanges=new Z,this.statusChanges=new Z}_calculateStatus(){return this._allControlsDisabled()?AI:this.errors?_c:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Vr)?Vr:this._anyControlsHaveStatus(_c)?_c:$a}_anyControlsHaveStatus(t){return this._anyControls(A=>A.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,A){let i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,A),o&&this._events.next(new tI(this.pristine,A))}_updateTouched(t={},A){this.touched=this._anyControlsTouched(),this._events.next(new iI(this.touched,A)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,A)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Pc(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let A=this._parent&&this._parent.dirty;return!t&&!!A&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=qY(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=VY(this._rawAsyncValidators)}},jr=class extends zr{constructor(t,A,i){super(Lu(A),Ku(i,A)),this.controls=t,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,A){return this.controls[t]?this.controls[t]:(this.controls[t]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(t,A,i={}){this.registerControl(t,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,A={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(t,A,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],A&&this.registerControl(t,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,A={}){pb(this,!0,t),Object.keys(t).forEach(i=>{mb(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(t,A={}){t!=null&&(Object.keys(t).forEach(i=>{let o=this.controls[i];o&&o.patchValue(t[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(t={},A={}){this._forEachChild((i,o)=>{i.reset(t?t[o]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(t,A,i)=>(t[i]=A.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&t(i,A)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(A,i,o)=>((i.enabled||this.disabled)&&(A[o]=i.value),A))}_reduceChildren(t,A){let i=t;return this._forEachChild((o,n)=>{i=A(i,o,n)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var vu=class extends jr{};var Xr=new b("",{providedIn:"root",factory:()=>Zc}),Zc="always";function Db(e,t){return[...t.path,e]}function oI(e,t,A=Zc){xu(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||A==="always")&&t.valueAccessor.setDisabledState?.(e.disabled),zY(e,t),XY(e,t),jY(e,t),WY(e,t)}function Hc(e,t,A=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),Oc(e,t),e&&(t._invokeOnDestroyCallbacks(),e._registerOnCollectionChange(()=>{}))}function Tc(e,t){e.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(t)})}function WY(e,t){if(t.valueAccessor.setDisabledState){let A=i=>{t.valueAccessor.setDisabledState(i)};e.registerOnDisabledChange(A),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(A)})}}function xu(e,t){let A=db(e);t.validator!==null?e.setValidators(eb(A,t.validator)):typeof A=="function"&&e.setValidators([A]);let i=hb(e);t.asyncValidator!==null?e.setAsyncValidators(eb(i,t.asyncValidator)):typeof i=="function"&&e.setAsyncValidators([i]);let o=()=>e.updateValueAndValidity();Tc(t._rawValidators,o),Tc(t._rawAsyncValidators,o)}function Oc(e,t){let A=!1;if(e!==null){if(t.validator!==null){let o=db(e);if(Array.isArray(o)&&o.length>0){let n=o.filter(g=>g!==t.validator);n.length!==o.length&&(A=!0,e.setValidators(n))}}if(t.asyncValidator!==null){let o=hb(e);if(Array.isArray(o)&&o.length>0){let n=o.filter(g=>g!==t.asyncValidator);n.length!==o.length&&(A=!0,e.setAsyncValidators(n))}}}let i=()=>{};return Tc(t._rawValidators,i),Tc(t._rawAsyncValidators,i),A}function zY(e,t){t.valueAccessor.registerOnChange(A=>{e._pendingValue=A,e._pendingChange=!0,e._pendingDirty=!0,e.updateOn==="change"&&fb(e,t)})}function jY(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,e.updateOn==="blur"&&e._pendingChange&&fb(e,t),e.updateOn!=="submit"&&e.markAsTouched()})}function fb(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function XY(e,t){let A=(i,o)=>{t.valueAccessor.writeValue(i),o&&t.viewToModelUpdate(i)};e.registerOnChange(A),t._registerOnDestroy(()=>{e._unregisterOnChange(A)})}function wb(e,t){e==null,xu(e,t)}function $Y(e,t){return Oc(e,t)}function Uu(e,t){if(!e.hasOwnProperty("model"))return!1;let A=e.model;return A.isFirstChange()?!0:!Object.is(t,A.currentValue)}function AJ(e){return Object.getPrototypeOf(e.constructor)===FY}function yb(e,t){e._syncPendingControls(),t.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function Yu(e,t){if(!t)return null;Array.isArray(t);let A,i,o;return t.forEach(n=>{n.constructor===bi?A=n:AJ(n)?i=n:o=n}),o||i||A||null}function eJ(e,t){let A=e.indexOf(t);A>-1&&e.splice(A,1)}var tJ={provide:An,useExisting:Je(()=>gI)},eI=Promise.resolve(),gI=(()=>{class e extends An{callSetDisabledState;get submitted(){return Pt(this.submittedReactive)}_submitted=zo(()=>this.submittedReactive());submittedReactive=Ne(!1);_directives=new Set;form;ngSubmit=new Z;options;constructor(A,i,o){super(),this.callSetDisabledState=o,this.form=new jr({},Gu(A),_u(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){eI.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),oI(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){eI.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){eI.then(()=>{let i=this._findContainer(A.path),o=new jr({});wb(o,A),i.registerControl(A.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){eI.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){eI.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),yb(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new Yc(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new Jc(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||e)(O(en,10),O(nI,10),O(Xr,8))};static \u0275dir=T({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){i&1&&S("submit",function(g){return o.onSubmit(g)})("reset",function(){return o.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[pA([tJ]),lA]})}return e})();function ob(e,t){let A=e.indexOf(t);A>-1&&e.splice(A,1)}function nb(e){return typeof e=="object"&&e!==null&&Object.keys(e).length===2&&"value"in e&&"disabled"in e}var vg=class extends zr{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,A,i){super(Lu(A),Ku(i,A)),this._applyFormState(t),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Pc(A)&&(A.nonNullable||A.initialValueIsDefault)&&(nb(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,A={}){this.value=this._pendingValue=t,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(t,A={}){this.setValue(t,A)}reset(t=this.defaultValue,A={}){this._applyFormState(t),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){ob(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){ob(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){nb(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}};var iJ=e=>e instanceof vg;var oJ={provide:ci,useExisting:Je(()=>Qi)},gb=Promise.resolve(),Qi=(()=>{class e extends ci{_changeDetectorRef;callSetDisabledState;control=new vg;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new Z;constructor(A,i,o,n,g,r){super(),this._changeDetectorRef=g,this.callSetDisabledState=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=Yu(this,n)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),Uu(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){oI(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){gb.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,o=i!==0&&j(i);gb.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?Db(A,this._parent):[A]}static \u0275fac=function(i){return new(i||e)(O(An,9),O(en,10),O(nI,10),O(Mi,10),O(DA,8),O(Xr,8))};static \u0275dir=T({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[pA([oJ]),lA,LA]})}return e})();var Mb=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return e})();var Ju=new b(""),nJ={provide:ci,useExisting:Je(()=>Hu)},Hu=(()=>{class e extends ci{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new Z;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,o,n,g){super(),this._ngModelWarningConfig=n,this.callSetDisabledState=g,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=Yu(this,o)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&Hc(i,this,!1),oI(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}Uu(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Hc(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||e)(O(en,10),O(nI,10),O(Mi,10),O(Ju,8),O(Xr,8))};static \u0275dir=T({type:e,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[pA([nJ]),lA,LA]})}return e})(),gJ={provide:An,useExisting:Je(()=>Sg)},Sg=(()=>{class e extends An{callSetDisabledState;get submitted(){return Pt(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=zo(()=>this._submittedReactive());_submittedReactive=Ne(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new Z;constructor(A,i,o){super(),this.callSetDisabledState=o,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Oc(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return oI(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){Hc(A.control||null,A,!1),eJ(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),yb(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new Yc(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new Jc(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,o=this.form.get(A.path);i!==o&&(Hc(i||null,A),iJ(o)&&(oI(o,A,this.callSetDisabledState),A.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);wb(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&$Y(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){xu(this.form,this),this._oldForm&&Oc(this._oldForm,this)}static \u0275fac=function(i){return new(i||e)(O(en,10),O(nI,10),O(Xr,8))};static \u0275dir=T({type:e,selectors:[["","formGroup",""]],hostBindings:function(i,o){i&1&&S("submit",function(g){return o.onSubmit(g)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[pA([gJ]),lA,LA]})}return e})();var rJ={provide:ci,useExisting:Je(()=>Tu)},Tu=(()=>{class e extends ci{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new Z;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,o,n,g){super(),this._ngModelWarningConfig=g,this._parent=A,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=Yu(this,n)}ngOnChanges(A){this._added||this._setUpControl(),Uu(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return Db(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||e)(O(An,13),O(en,10),O(nI,10),O(Mi,10),O(Ju,8))};static \u0275dir=T({type:e,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[pA([rJ]),lA,LA]})}return e})();var bb=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})(),Su=class extends zr{constructor(t,A,i){super(Lu(A),Ku(i,A)),this.controls=t,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,A={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(t,A,i={}){this.controls.splice(t,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,A={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(t,A,i={}){let o=this._adjustIndex(t);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),A&&(this.controls.splice(o,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,A={}){pb(this,!1,t),t.forEach((i,o)=>{mb(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(t,A={}){t!=null&&(t.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(t=[],A={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((A,i)=>{t(A,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(A=>A.enabled&&t(A))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}};function rb(e){return!!e&&(e.asyncValidators!==void 0||e.validators!==void 0||e.updateOn!==void 0)}var Rb=(()=>{class e{useNonNullable=!1;get nonNullable(){let A=new e;return A.useNonNullable=!0,A}group(A,i=null){let o=this._reduceControls(A),n={};return rb(i)?n=i:i!==null&&(n.validators=i.validator,n.asyncValidators=i.asyncValidator),new jr(o,n)}record(A,i=null){let o=this._reduceControls(A);return new vu(o,i)}control(A,i,o){let n={};return this.useNonNullable?(rb(i)?n=i:(n.validators=i,n.asyncValidators=o),new vg(A,fA(v({},n),{nonNullable:!0}))):new vg(A,i,o)}array(A,i,o){let n=A.map(g=>this._createControl(g));return new Su(n,i,o)}_reduceControls(A){let i={};return Object.keys(A).forEach(o=>{i[o]=this._createControl(A[o])}),i}_createControl(A){if(A instanceof vg)return A;if(A instanceof zr)return A;if(Array.isArray(A)){let i=A[0],o=A.length>1?A[1]:null,n=A.length>2?A[2]:null;return this.control(i,o,n)}else return this.control(A)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var qc=(()=>{class e{static withConfig(A){return{ngModule:e,providers:[{provide:Xr,useValue:A.callSetDisabledState??Zc}]}}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[bb]})}return e})(),kb=(()=>{class e{static withConfig(A){return{ngModule:e,providers:[{provide:Ju,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:Xr,useValue:A.callSetDisabledState??Zc}]}}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[bb]})}return e})();var WA="primary",uI=Symbol("RouteTitle"),Vu=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let A=this.params[t];return Array.isArray(A)?A[0]:A}return null}getAll(t){if(this.has(t)){let A=this.params[t];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function _g(e){return new Vu(e)}function Kb(e,t,A){let i=A.path.split("/");if(i.length>e.length||A.pathMatch==="full"&&(t.hasChildren()||i.lengthi[n]===o)}else return e===t}function Ub(e){return e.length>0?e[e.length-1]:null}function Un(e){return dn(e)?e:kn(e)?de(Promise.resolve(e)):gA(e)}var aJ={exact:Jb,subset:Hb},Yb={exact:IJ,subset:CJ,ignored:()=>!0};function vb(e,t,A){return aJ[A.paths](e.root,t.root,A.matrixParams)&&Yb[A.queryParams](e.queryParams,t.queryParams)&&!(A.fragment==="exact"&&e.fragment!==t.fragment)}function IJ(e,t){return mo(e,t)}function Jb(e,t,A){if(!Ng(e.segments,t.segments)||!zc(e.segments,t.segments,A)||e.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!e.children[i]||!Jb(e.children[i],t.children[i],A))return!1;return!0}function CJ(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(A=>xb(e[A],t[A]))}function Hb(e,t,A){return Tb(e,t,t.segments,A)}function Tb(e,t,A,i){if(e.segments.length>A.length){let o=e.segments.slice(0,A.length);return!(!Ng(o,A)||t.hasChildren()||!zc(o,A,i))}else if(e.segments.length===A.length){if(!Ng(e.segments,A)||!zc(e.segments,A,i))return!1;for(let o in t.children)if(!e.children[o]||!Hb(e.children[o],t.children[o],i))return!1;return!0}else{let o=A.slice(0,e.segments.length),n=A.slice(e.segments.length);return!Ng(e.segments,o)||!zc(e.segments,o,i)||!e.children[WA]?!1:Tb(e.children[WA],t,n,i)}}function zc(e,t,A){return t.every((i,o)=>Yb[A](e[o].parameters,i.parameters))}var Do=class{root;queryParams;fragment;_queryParamMap;constructor(t=new Ie([],{}),A={},i=null){this.root=t,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=_g(this.queryParams),this._queryParamMap}toString(){return QJ.serialize(this)}},Ie=class{segments;children;parent=null;constructor(t,A){this.segments=t,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return jc(this)}},Ln=class{path;parameters;_parameterMap;constructor(t,A){this.path=t,this.parameters=A}get parameterMap(){return this._parameterMap??=_g(this.parameters),this._parameterMap}toString(){return Pb(this)}};function BJ(e,t){return Ng(e,t)&&e.every((A,i)=>mo(A.parameters,t[i].parameters))}function Ng(e,t){return e.length!==t.length?!1:e.every((A,i)=>A.path===t[i].path)}function cJ(e,t){let A=[];return Object.entries(e.children).forEach(([i,o])=>{i===WA&&(A=A.concat(t(o,i)))}),Object.entries(e.children).forEach(([i,o])=>{i!==WA&&(A=A.concat(t(o,i)))}),A}var Lg=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>new Kn,providedIn:"root"})}return e})(),Kn=class{parse(t){let A=new ju(t);return new Do(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(t){let A=`/${rI(t.root,!0)}`,i=dJ(t.queryParams),o=typeof t.fragment=="string"?`#${EJ(t.fragment)}`:"";return`${A}${i}${o}`}},QJ=new Kn;function jc(e){return e.segments.map(t=>Pb(t)).join("/")}function rI(e,t){if(!e.hasChildren())return jc(e);if(t){let A=e.children[WA]?rI(e.children[WA],!1):"",i=[];return Object.entries(e.children).forEach(([o,n])=>{o!==WA&&i.push(`${o}:${rI(n,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=cJ(e,(i,o)=>o===WA?[rI(e.children[WA],!1)]:[`${o}:${rI(i,!1)}`]);return Object.keys(e.children).length===1&&e.children[WA]!=null?`${jc(e)}/${A[0]}`:`${jc(e)}/(${A.join("//")})`}}function Ob(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Vc(e){return Ob(e).replace(/%3B/gi,";")}function EJ(e){return encodeURI(e)}function zu(e){return Ob(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Xc(e){return decodeURIComponent(e)}function Sb(e){return Xc(e.replace(/\+/g,"%20"))}function Pb(e){return`${zu(e.path)}${lJ(e.parameters)}`}function lJ(e){return Object.entries(e).map(([t,A])=>`;${zu(t)}=${zu(A)}`).join("")}function dJ(e){let t=Object.entries(e).map(([A,i])=>Array.isArray(i)?i.map(o=>`${Vc(A)}=${Vc(o)}`).join("&"):`${Vc(A)}=${Vc(i)}`).filter(A=>A);return t.length?`?${t.join("&")}`:""}var hJ=/^[^\/()?;#]+/;function Ou(e){let t=e.match(hJ);return t?t[0]:""}var uJ=/^[^\/()?;=#]+/;function mJ(e){let t=e.match(uJ);return t?t[0]:""}var pJ=/^[^=?&#]+/;function DJ(e){let t=e.match(pJ);return t?t[0]:""}var fJ=/^[^&#]+/;function wJ(e){let t=e.match(fJ);return t?t[0]:""}var ju=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ie([],{}):new Ie([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(A).length>0)&&(i[WA]=new Ie(t,A)),i}parseSegment(){let t=Ou(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new P(4009,!1);return this.capture(t),new Ln(Xc(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let A=mJ(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let o=Ou(this.remaining);o&&(i=o,this.capture(i))}t[Xc(A)]=Xc(i)}parseQueryParam(t){let A=DJ(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let g=wJ(this.remaining);g&&(i=g,this.capture(i))}let o=Sb(A),n=Sb(i);if(t.hasOwnProperty(o)){let g=t[o];Array.isArray(g)||(g=[g],t[o]=g),g.push(n)}else t[o]=n}parseParens(t){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=Ou(this.remaining),o=this.remaining[i.length];if(o!=="/"&&o!==")"&&o!==";")throw new P(4010,!1);let n;i.indexOf(":")>-1?(n=i.slice(0,i.indexOf(":")),this.capture(n),this.capture(":")):t&&(n=WA);let g=this.parseChildren();A[n]=Object.keys(g).length===1?g[WA]:new Ie([],g),this.consumeOptional("//")}return A}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new P(4011,!1)}};function Zb(e){return e.segments.length>0?new Ie([],{[WA]:e}):e}function qb(e){let t={};for(let[i,o]of Object.entries(e.children)){let n=qb(o);if(i===WA&&n.segments.length===0&&n.hasChildren())for(let[g,r]of Object.entries(n.children))t[g]=r;else(n.segments.length>0||n.hasChildren())&&(t[i]=n)}let A=new Ie(e.segments,t);return yJ(A)}function yJ(e){if(e.numberOfChildren===1&&e.children[WA]){let t=e.children[WA];return new Ie(e.segments.concat(t.segments),t.children)}return e}function is(e){return e instanceof Do}function Vb(e,t,A=null,i=null){let o=Wb(e);return zb(o,t,A,i)}function Wb(e){let t;function A(n){let g={};for(let s of n.children){let a=A(s);g[s.outlet]=a}let r=new Ie(n.url,g);return n===e&&(t=r),r}let i=A(e.root),o=Zb(i);return t??o}function zb(e,t,A,i){let o=e;for(;o.parent;)o=o.parent;if(t.length===0)return Pu(o,o,o,A,i);let n=MJ(t);if(n.toRoot())return Pu(o,o,new Ie([],{}),A,i);let g=bJ(n,o,e),r=g.processChildren?aI(g.segmentGroup,g.index,n.commands):Xb(g.segmentGroup,g.index,n.commands);return Pu(o,g.segmentGroup,r,A,i)}function AQ(e){return typeof e=="object"&&e!=null&&!e.outlets&&!e.segmentPath}function CI(e){return typeof e=="object"&&e!=null&&e.outlets}function Pu(e,t,A,i,o){let n={};i&&Object.entries(i).forEach(([s,a])=>{n[s]=Array.isArray(a)?a.map(c=>`${c}`):`${a}`});let g;e===t?g=A:g=jb(e,t,A);let r=Zb(qb(g));return new Do(r,n,o)}function jb(e,t,A){let i={};return Object.entries(e.children).forEach(([o,n])=>{n===t?i[o]=A:i[o]=jb(n,t,A)}),new Ie(e.segments,i)}var eQ=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,A,i){if(this.isAbsolute=t,this.numberOfDoubleDots=A,this.commands=i,t&&i.length>0&&AQ(i[0]))throw new P(4003,!1);let o=i.find(CI);if(o&&o!==Ub(i))throw new P(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function MJ(e){if(typeof e[0]=="string"&&e.length===1&&e[0]==="/")return new eQ(!0,0,e);let t=0,A=!1,i=e.reduce((o,n,g)=>{if(typeof n=="object"&&n!=null){if(n.outlets){let r={};return Object.entries(n.outlets).forEach(([s,a])=>{r[s]=typeof a=="string"?a.split("/"):a}),[...o,{outlets:r}]}if(n.segmentPath)return[...o,n.segmentPath]}return typeof n!="string"?[...o,n]:g===0?(n.split("/").forEach((r,s)=>{s==0&&r==="."||(s==0&&r===""?A=!0:r===".."?t++:r!=""&&o.push(r))}),o):[...o,n]},[]);return new eQ(A,t,i)}var es=class{segmentGroup;processChildren;index;constructor(t,A,i){this.segmentGroup=t,this.processChildren=A,this.index=i}};function bJ(e,t,A){if(e.isAbsolute)return new es(t,!0,0);if(!A)return new es(t,!1,NaN);if(A.parent===null)return new es(A,!0,0);let i=AQ(e.commands[0])?0:1,o=A.segments.length-1+i;return RJ(A,o,e.numberOfDoubleDots)}function RJ(e,t,A){let i=e,o=t,n=A;for(;n>o;){if(n-=o,i=i.parent,!i)throw new P(4005,!1);o=i.segments.length}return new es(i,!1,o-n)}function kJ(e){return CI(e[0])?e[0].outlets:{[WA]:e}}function Xb(e,t,A){if(e??=new Ie([],{}),e.segments.length===0&&e.hasChildren())return aI(e,t,A);let i=vJ(e,t,A),o=A.slice(i.commandIndex);if(i.match&&i.pathIndexn!==WA)&&e.children[WA]&&e.numberOfChildren===1&&e.children[WA].segments.length===0){let n=aI(e.children[WA],t,A);return new Ie(e.segments,n.children)}return Object.entries(i).forEach(([n,g])=>{typeof g=="string"&&(g=[g]),g!==null&&(o[n]=Xb(e.children[n],t,g))}),Object.entries(e.children).forEach(([n,g])=>{i[n]===void 0&&(o[n]=g)}),new Ie(e.segments,o)}}function vJ(e,t,A){let i=0,o=t,n={match:!1,pathIndex:0,commandIndex:0};for(;o=A.length)return n;let g=e.segments[o],r=A[i];if(CI(r))break;let s=`${r}`,a=i0&&s===void 0)break;if(s&&a&&typeof a=="object"&&a.outlets===void 0){if(!Nb(s,a,g))return n;i+=2}else{if(!Nb(s,{},g))return n;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}function Xu(e,t,A){let i=e.segments.slice(0,t),o=0;for(;o{typeof i=="string"&&(i=[i]),i!==null&&(t[A]=Xu(new Ie([],{}),0,i))}),t}function Fb(e){let t={};return Object.entries(e).forEach(([A,i])=>t[A]=`${i}`),t}function Nb(e,t,A){return e==A.path&&mo(t,A.parameters)}var $c="imperative",it=function(e){return e[e.NavigationStart=0]="NavigationStart",e[e.NavigationEnd=1]="NavigationEnd",e[e.NavigationCancel=2]="NavigationCancel",e[e.NavigationError=3]="NavigationError",e[e.RoutesRecognized=4]="RoutesRecognized",e[e.ResolveStart=5]="ResolveStart",e[e.ResolveEnd=6]="ResolveEnd",e[e.GuardsCheckStart=7]="GuardsCheckStart",e[e.GuardsCheckEnd=8]="GuardsCheckEnd",e[e.RouteConfigLoadStart=9]="RouteConfigLoadStart",e[e.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",e[e.ChildActivationStart=11]="ChildActivationStart",e[e.ChildActivationEnd=12]="ChildActivationEnd",e[e.ActivationStart=13]="ActivationStart",e[e.ActivationEnd=14]="ActivationEnd",e[e.Scroll=15]="Scroll",e[e.NavigationSkipped=16]="NavigationSkipped",e}(it||{}),li=class{id;url;constructor(t,A){this.id=t,this.url=A}},xn=class extends li{type=it.NavigationStart;navigationTrigger;restoredState;constructor(t,A,i="imperative",o=null){super(t,A),this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},di=class extends li{urlAfterRedirects;type=it.NavigationEnd;constructor(t,A,i){super(t,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},qt=function(e){return e[e.Redirect=0]="Redirect",e[e.SupersededByNewNavigation=1]="SupersededByNewNavigation",e[e.NoDataFromResolver=2]="NoDataFromResolver",e[e.GuardRejected=3]="GuardRejected",e}(qt||{}),os=function(e){return e[e.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",e[e.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",e}(os||{}),po=class extends li{reason;code;type=it.NavigationCancel;constructor(t,A,i,o){super(t,A),this.reason=i,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},fo=class extends li{reason;code;type=it.NavigationSkipped;constructor(t,A,i,o){super(t,A),this.reason=i,this.code=o}},ns=class extends li{error;target;type=it.NavigationError;constructor(t,A,i,o){super(t,A),this.error=i,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},BI=class extends li{urlAfterRedirects;state;type=it.RoutesRecognized;constructor(t,A,i,o){super(t,A),this.urlAfterRedirects=i,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},tQ=class extends li{urlAfterRedirects;state;type=it.GuardsCheckStart;constructor(t,A,i,o){super(t,A),this.urlAfterRedirects=i,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},iQ=class extends li{urlAfterRedirects;state;shouldActivate;type=it.GuardsCheckEnd;constructor(t,A,i,o,n){super(t,A),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=n}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},oQ=class extends li{urlAfterRedirects;state;type=it.ResolveStart;constructor(t,A,i,o){super(t,A),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},nQ=class extends li{urlAfterRedirects;state;type=it.ResolveEnd;constructor(t,A,i,o){super(t,A),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},gQ=class{route;type=it.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},rQ=class{route;type=it.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},sQ=class{snapshot;type=it.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},aQ=class{snapshot;type=it.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},IQ=class{snapshot;type=it.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},CQ=class{snapshot;type=it.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},gs=class{routerEvent;position;anchor;type=it.Scroll;constructor(t,A,i){this.routerEvent=t,this.position=A,this.anchor=i}toString(){let t=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${t}')`}},cI=class{},rs=class{url;navigationBehaviorOptions;constructor(t,A){this.url=t,this.navigationBehaviorOptions=A}};function FJ(e,t){return e.providers&&!e._injector&&(e._injector=va(e.providers,t,`Route: ${e.path}`)),e._injector??t}function Vi(e){return e.outlet||WA}function NJ(e,t){let A=e.filter(i=>Vi(i)===t);return A.push(...e.filter(i=>Vi(i)!==t)),A}function mI(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){let A=t.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var BQ=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return mI(this.route?.snapshot)??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new Kg(this.rootInjector)}},Kg=(()=>{class e{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let o=this.getOrCreateContext(A);o.outlet=i,this.contexts.set(A,o)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new BQ(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||e)(eA(qe))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),cQ=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let A=this.pathFromRoot(t);return A.length>1?A[A.length-2]:null}children(t){let A=$u(t,this._root);return A?A.children.map(i=>i.value):[]}firstChild(t){let A=$u(t,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(t){let A=Am(t,this._root);return A.length<2?[]:A[A.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return Am(t,this._root).map(A=>A.value)}};function $u(e,t){if(e===t.value)return t;for(let A of t.children){let i=$u(e,A);if(i)return i}return null}function Am(e,t){if(e===t.value)return[t];for(let A of t.children){let i=Am(e,A);if(i.length)return i.unshift(t),i}return[]}var Ei=class{value;children;constructor(t,A){this.value=t,this.children=A}toString(){return`TreeNode(${this.value})`}};function As(e){let t={};return e&&e.children.forEach(A=>t[A.value.outlet]=A),t}var QI=class extends cQ{snapshot;constructor(t,A){super(t),this.snapshot=A,sm(this,t)}toString(){return this.snapshot.toString()}};function $b(e){let t=GJ(e),A=new PA([new Ln("",{})]),i=new PA({}),o=new PA({}),n=new PA({}),g=new PA(""),r=new Vt(A,i,n,g,o,WA,e,t.root);return r.snapshot=t.root,new QI(new Ei(r,[]),t)}function GJ(e){let t={},A={},i={},o="",n=new Gg([],t,i,o,A,WA,e,null,{});return new EI("",new Ei(n,[]))}var Vt=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,A,i,o,n,g,r,s){this.urlSubject=t,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=n,this.outlet=g,this.component=r,this._futureSnapshot=s,this.title=this.dataSubject?.pipe(CA(a=>a[uI]))??gA(void 0),this.url=t,this.params=A,this.queryParams=i,this.fragment=o,this.data=n}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(CA(t=>_g(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(CA(t=>_g(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function QQ(e,t,A="emptyOnly"){let i,{routeConfig:o}=e;return t!==null&&(A==="always"||o?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:v(v({},t.params),e.params),data:v(v({},t.data),e.data),resolve:v(v(v(v({},e.data),t.data),o?.data),e._resolvedData)}:i={params:v({},e.params),data:v({},e.data),resolve:v(v({},e.data),e._resolvedData??{})},o&&eR(o)&&(i.resolve[uI]=o.title),i}var Gg=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[uI]}constructor(t,A,i,o,n,g,r,s,a){this.url=t,this.params=A,this.queryParams=i,this.fragment=o,this.data=n,this.outlet=g,this.component=r,this.routeConfig=s,this._resolve=a}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=_g(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=_g(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${A}')`}},EI=class extends cQ{url;constructor(t,A){super(A),this.url=t,sm(this,A)}toString(){return AR(this._root)}};function sm(e,t){t.value._routerState=e,t.children.forEach(A=>sm(e,A))}function AR(e){let t=e.children.length>0?` { ${e.children.map(AR).join(", ")} } `:"";return`${e.value}${t}`}function Zu(e){if(e.snapshot){let t=e.snapshot,A=e._futureSnapshot;e.snapshot=A,mo(t.queryParams,A.queryParams)||e.queryParamsSubject.next(A.queryParams),t.fragment!==A.fragment&&e.fragmentSubject.next(A.fragment),mo(t.params,A.params)||e.paramsSubject.next(A.params),sJ(t.url,A.url)||e.urlSubject.next(A.url),mo(t.data,A.data)||e.dataSubject.next(A.data)}else e.snapshot=e._futureSnapshot,e.dataSubject.next(e._futureSnapshot.data)}function em(e,t){let A=mo(e.params,t.params)&&BJ(e.url,t.url),i=!e.parent!=!t.parent;return A&&!i&&(!e.parent||em(e.parent,t.parent))}function eR(e){return typeof e.title=="string"||e.title===null}var tR=new b(""),am=(()=>{class e{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=WA;activateEvents=new Z;deactivateEvents=new Z;attachEvents=new Z;detachEvents=new Z;routerOutletData=my(void 0);parentContexts=C(Kg);location=C(Ee);changeDetector=C(DA);inputBinder=C(pI,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:o}=A.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new P(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new P(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new P(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new P(4013,!1);this._activatedRoute=A;let o=this.location,g=A.snapshot.component,r=this.parentContexts.getOrCreateContext(this.name).children,s=new tm(A,r,o.injector,this.routerOutletData);this.activated=o.createComponent(g,{index:o.length,injector:s,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[LA]})}return e})(),tm=class{route;childContexts;parent;outletData;constructor(t,A,i,o){this.route=t,this.childContexts=A,this.parent=i,this.outletData=o}get(t,A){return t===Vt?this.route:t===Kg?this.childContexts:t===tR?this.outletData:this.parent.get(t,A)}},pI=new b(""),Im=(()=>{class e{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,o=yt([i.queryParams,i.params,i.data]).pipe(ue(([n,g,r],s)=>(r=v(v(v({},n),g),r),s===0?gA(r):Promise.resolve(r)))).subscribe(n=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let g=uM(i.component);if(!g){this.unsubscribeFromRouteData(A);return}for(let{templateName:r}of g.inputs)A.activatedComponentRef.setInput(r,n[r])});this.outletDataSubscriptions.set(A,o)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),Cm=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,o){i&1&&Y(0,"router-outlet")},dependencies:[am],encapsulation:2})}return e})();function Bm(e){let t=e.children&&e.children.map(Bm),A=t?fA(v({},e),{children:t}):v({},e);return!A.component&&!A.loadComponent&&(t||A.loadChildren)&&A.outlet&&A.outlet!==WA&&(A.component=Cm),A}function _J(e,t,A){let i=lI(e,t._root,A?A._root:void 0);return new QI(i,t)}function lI(e,t,A){if(A&&e.shouldReuseRoute(t.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=t.value;let o=LJ(e,t,A);return new Ei(i,o)}else{if(e.shouldAttach(t.value)){let n=e.retrieve(t.value);if(n!==null){let g=n.route;return g.value._futureSnapshot=t.value,g.children=t.children.map(r=>lI(e,r)),g}}let i=KJ(t.value),o=t.children.map(n=>lI(e,n));return new Ei(i,o)}}function LJ(e,t,A){return t.children.map(i=>{for(let o of A.children)if(e.shouldReuseRoute(i.value,o.value.snapshot))return lI(e,i,o);return lI(e,i)})}function KJ(e){return new Vt(new PA(e.url),new PA(e.params),new PA(e.queryParams),new PA(e.fragment),new PA(e.data),e.outlet,e.component,e)}var ss=class{redirectTo;navigationBehaviorOptions;constructor(t,A){this.redirectTo=t,this.navigationBehaviorOptions=A}},iR="ngNavigationCancelingError";function EQ(e,t){let{redirectTo:A,navigationBehaviorOptions:i}=is(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=oR(!1,qt.Redirect);return o.url=A,o.navigationBehaviorOptions=i,o}function oR(e,t){let A=new Error(`NavigationCancelingError: ${e||""}`);return A[iR]=!0,A.cancellationCode=t,A}function xJ(e){return nR(e)&&is(e.url)}function nR(e){return!!e&&e[iR]}var UJ=(e,t,A,i)=>CA(o=>(new im(t,o.targetRouterState,o.currentRouterState,A,i).activate(e),o)),im=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,A,i,o,n){this.routeReuseStrategy=t,this.futureState=A,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=n}activate(t){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,t),Zu(this.futureState.root),this.activateChildRoutes(A,i,t)}deactivateChildRoutes(t,A,i){let o=As(A);t.children.forEach(n=>{let g=n.value.outlet;this.deactivateRoutes(n,o[g],i),delete o[g]}),Object.values(o).forEach(n=>{this.deactivateRouteAndItsChildren(n,i)})}deactivateRoutes(t,A,i){let o=t.value,n=A?A.value:null;if(o===n)if(o.component){let g=i.getContext(o.outlet);g&&this.deactivateChildRoutes(t,A,g.children)}else this.deactivateChildRoutes(t,A,i);else n&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(t,A){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,A):this.deactivateRouteAndOutlet(t,A)}detachAndStoreRouteSubtree(t,A){let i=A.getContext(t.value.outlet),o=i&&t.value.component?i.children:A,n=As(t);for(let g of Object.values(n))this.deactivateRouteAndItsChildren(g,o);if(i&&i.outlet){let g=i.outlet.detach(),r=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:g,route:t,contexts:r})}}deactivateRouteAndOutlet(t,A){let i=A.getContext(t.value.outlet),o=i&&t.value.component?i.children:A,n=As(t);for(let g of Object.values(n))this.deactivateRouteAndItsChildren(g,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,A,i){let o=As(A);t.children.forEach(n=>{this.activateRoutes(n,o[n.value.outlet],i),this.forwardEvent(new CQ(n.value.snapshot))}),t.children.length&&this.forwardEvent(new aQ(t.value.snapshot))}activateRoutes(t,A,i){let o=t.value,n=A?A.value:null;if(Zu(o),o===n)if(o.component){let g=i.getOrCreateContext(o.outlet);this.activateChildRoutes(t,A,g.children)}else this.activateChildRoutes(t,A,i);else if(o.component){let g=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){let r=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),g.children.onOutletReAttached(r.contexts),g.attachRef=r.componentRef,g.route=r.route.value,g.outlet&&g.outlet.attach(r.componentRef,r.route.value),Zu(r.route.value),this.activateChildRoutes(t,null,g.children)}else g.attachRef=null,g.route=o,g.outlet&&g.outlet.activateWith(o,g.injector),this.activateChildRoutes(t,null,g.children)}else this.activateChildRoutes(t,null,i)}},lQ=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},ts=class{component;route;constructor(t,A){this.component=t,this.route=A}};function YJ(e,t,A){let i=e._root,o=t?t._root:null;return sI(i,o,A,[i.value])}function JJ(e){let t=e.routeConfig?e.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:e,guards:t}}function Is(e,t){let A=Symbol(),i=t.get(e,A);return i===A?typeof e=="function"&&!pw(e)?e:t.get(e):i}function sI(e,t,A,i,o={canDeactivateChecks:[],canActivateChecks:[]}){let n=As(t);return e.children.forEach(g=>{HJ(g,n[g.value.outlet],A,i.concat([g.value]),o),delete n[g.value.outlet]}),Object.entries(n).forEach(([g,r])=>II(r,A.getContext(g),o)),o}function HJ(e,t,A,i,o={canDeactivateChecks:[],canActivateChecks:[]}){let n=e.value,g=t?t.value:null,r=A?A.getContext(e.value.outlet):null;if(g&&n.routeConfig===g.routeConfig){let s=TJ(g,n,n.routeConfig.runGuardsAndResolvers);s?o.canActivateChecks.push(new lQ(i)):(n.data=g.data,n._resolvedData=g._resolvedData),n.component?sI(e,t,r?r.children:null,i,o):sI(e,t,A,i,o),s&&r&&r.outlet&&r.outlet.isActivated&&o.canDeactivateChecks.push(new ts(r.outlet.component,g))}else g&&II(t,r,o),o.canActivateChecks.push(new lQ(i)),n.component?sI(e,null,r?r.children:null,i,o):sI(e,null,A,i,o);return o}function TJ(e,t,A){if(typeof A=="function")return A(e,t);switch(A){case"pathParamsChange":return!Ng(e.url,t.url);case"pathParamsOrQueryParamsChange":return!Ng(e.url,t.url)||!mo(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!em(e,t)||!mo(e.queryParams,t.queryParams);case"paramsChange":default:return!em(e,t)}}function II(e,t,A){let i=As(e),o=e.value;Object.entries(i).forEach(([n,g])=>{o.component?t?II(g,t.children.getContext(n),A):II(g,null,A):II(g,t,A)}),o.component?t&&t.outlet&&t.outlet.isActivated?A.canDeactivateChecks.push(new ts(t.outlet.component,o)):A.canDeactivateChecks.push(new ts(null,o)):A.canDeactivateChecks.push(new ts(null,o))}function DI(e){return typeof e=="function"}function OJ(e){return typeof e=="boolean"}function PJ(e){return e&&DI(e.canLoad)}function ZJ(e){return e&&DI(e.canActivate)}function qJ(e){return e&&DI(e.canActivateChild)}function VJ(e){return e&&DI(e.canDeactivate)}function WJ(e){return e&&DI(e.canMatch)}function gR(e){return e instanceof Uo||e?.name==="EmptyError"}var Wc=Symbol("INITIAL_VALUE");function as(){return ue(e=>yt(e.map(t=>t.pipe(he(1),be(Wc)))).pipe(CA(t=>{for(let A of t)if(A!==!0){if(A===Wc)return Wc;if(A===!1||zJ(A))return A}return!0}),MA(t=>t!==Wc),he(1)))}function zJ(e){return is(e)||e instanceof ss}function jJ(e,t){return _e(A=>{let{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:n,canDeactivateChecks:g}}=A;return g.length===0&&n.length===0?gA(fA(v({},A),{guardsResult:!0})):XJ(g,i,o,e).pipe(_e(r=>r&&OJ(r)?$J(i,n,e,t):gA(r)),CA(r=>fA(v({},A),{guardsResult:r})))})}function XJ(e,t,A,i){return de(e).pipe(_e(o=>oH(o.component,o.route,A,t,i)),go(o=>o!==!0,!0))}function $J(e,t,A,i){return de(t).pipe(oo(o=>un(eH(o.route.parent,i),AH(o.route,i),iH(e,o.path,A),tH(e,o.route,A))),go(o=>o!==!0,!0))}function AH(e,t){return e!==null&&t&&t(new IQ(e)),gA(!0)}function eH(e,t){return e!==null&&t&&t(new sQ(e)),gA(!0)}function tH(e,t,A){let i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||i.length===0)return gA(!0);let o=i.map(n=>io(()=>{let g=mI(t)??A,r=Is(n,g),s=ZJ(r)?r.canActivate(t,e):Yt(g,()=>r(t,e));return Un(s).pipe(go())}));return gA(o).pipe(as())}function iH(e,t,A){let i=t[t.length-1],n=t.slice(0,t.length-1).reverse().map(g=>JJ(g)).filter(g=>g!==null).map(g=>io(()=>{let r=g.guards.map(s=>{let a=mI(g.node)??A,c=Is(s,a),h=qJ(c)?c.canActivateChild(i,e):Yt(a,()=>c(i,e));return Un(h).pipe(go())});return gA(r).pipe(as())}));return gA(n).pipe(as())}function oH(e,t,A,i,o){let n=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!n||n.length===0)return gA(!0);let g=n.map(r=>{let s=mI(t)??o,a=Is(r,s),c=VJ(a)?a.canDeactivate(e,t,A,i):Yt(s,()=>a(e,t,A,i));return Un(c).pipe(go())});return gA(g).pipe(as())}function nH(e,t,A,i){let o=t.canLoad;if(o===void 0||o.length===0)return gA(!0);let n=o.map(g=>{let r=Is(g,e),s=PJ(r)?r.canLoad(t,A):Yt(e,()=>r(t,A));return Un(s)});return gA(n).pipe(as(),rR(i))}function rR(e){return fl(me(t=>{if(typeof t!="boolean")throw EQ(e,t)}),CA(t=>t===!0))}function gH(e,t,A,i){let o=t.canMatch;if(!o||o.length===0)return gA(!0);let n=o.map(g=>{let r=Is(g,e),s=WJ(r)?r.canMatch(t,A):Yt(e,()=>r(t,A));return Un(s)});return gA(n).pipe(as(),rR(i))}var dI=class{segmentGroup;constructor(t){this.segmentGroup=t||null}},hI=class extends Error{urlTree;constructor(t){super(),this.urlTree=t}};function $r(e){return ln(new dI(e))}function rH(e){return ln(new P(4e3,!1))}function sH(e){return ln(oR(!1,qt.GuardRejected))}var om=class{urlSerializer;urlTree;constructor(t,A){this.urlSerializer=t,this.urlTree=A}lineralizeSegments(t,A){let i=[],o=A.root;for(;;){if(i=i.concat(o.segments),o.numberOfChildren===0)return gA(i);if(o.numberOfChildren>1||!o.children[WA])return rH(`${t.redirectTo}`);o=o.children[WA]}}applyRedirectCommands(t,A,i,o,n){if(typeof A!="string"){let r=A,{queryParams:s,fragment:a,routeConfig:c,url:h,outlet:p,params:D,data:w,title:R}=o,q=Yt(n,()=>r({params:D,data:w,queryParams:s,fragment:a,routeConfig:c,url:h,outlet:p,title:R}));if(q instanceof Do)throw new hI(q);A=q}let g=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),t,i);if(A[0]==="/")throw new hI(g);return g}applyRedirectCreateUrlTree(t,A,i,o){let n=this.createSegmentGroup(t,A.root,i,o);return new Do(n,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(t,A){let i={};return Object.entries(t).forEach(([o,n])=>{if(typeof n=="string"&&n[0]===":"){let r=n.substring(1);i[o]=A[r]}else i[o]=n}),i}createSegmentGroup(t,A,i,o){let n=this.createSegments(t,A.segments,i,o),g={};return Object.entries(A.children).forEach(([r,s])=>{g[r]=this.createSegmentGroup(t,s,i,o)}),new Ie(n,g)}createSegments(t,A,i,o){return A.map(n=>n.path[0]===":"?this.findPosParam(t,n,o):this.findOrReturn(n,i))}findPosParam(t,A,i){let o=i[A.path.substring(1)];if(!o)throw new P(4001,!1);return o}findOrReturn(t,A){let i=0;for(let o of A){if(o.path===t.path)return A.splice(i),o;i++}return t}},nm={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function aH(e,t,A,i,o){let n=sR(e,t,A);return n.matched?(i=FJ(t,i),gH(i,t,A,o).pipe(CA(g=>g===!0?n:v({},nm)))):gA(n)}function sR(e,t,A){if(t.path==="**")return IH(A);if(t.path==="")return t.pathMatch==="full"&&(e.hasChildren()||A.length>0)?v({},nm):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let o=(t.matcher||Kb)(A,e,t);if(!o)return v({},nm);let n={};Object.entries(o.posParams??{}).forEach(([r,s])=>{n[r]=s.path});let g=o.consumed.length>0?v(v({},n),o.consumed[o.consumed.length-1].parameters):n;return{matched:!0,consumedSegments:o.consumed,remainingSegments:A.slice(o.consumed.length),parameters:g,positionalParamSegments:o.posParams??{}}}function IH(e){return{matched:!0,parameters:e.length>0?Ub(e).parameters:{},consumedSegments:e,remainingSegments:[],positionalParamSegments:{}}}function Gb(e,t,A,i){return A.length>0&&cH(e,A,i)?{segmentGroup:new Ie(t,BH(i,new Ie(A,e.children))),slicedSegments:[]}:A.length===0&&QH(e,A,i)?{segmentGroup:new Ie(e.segments,CH(e,A,i,e.children)),slicedSegments:A}:{segmentGroup:new Ie(e.segments,e.children),slicedSegments:A}}function CH(e,t,A,i){let o={};for(let n of A)if(hQ(e,t,n)&&!i[Vi(n)]){let g=new Ie([],{});o[Vi(n)]=g}return v(v({},i),o)}function BH(e,t){let A={};A[WA]=t;for(let i of e)if(i.path===""&&Vi(i)!==WA){let o=new Ie([],{});A[Vi(i)]=o}return A}function cH(e,t,A){return A.some(i=>hQ(e,t,i)&&Vi(i)!==WA)}function QH(e,t,A){return A.some(i=>hQ(e,t,i))}function hQ(e,t,A){return(e.hasChildren()||t.length>0)&&A.pathMatch==="full"?!1:A.path===""}function EH(e,t,A){return t.length===0&&!e.children[A]}var gm=class{};function lH(e,t,A,i,o,n,g="emptyOnly"){return new rm(e,t,A,i,o,g,n).recognize()}var dH=31,rm=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,A,i,o,n,g,r){this.injector=t,this.configLoader=A,this.rootComponentType=i,this.config=o,this.urlTree=n,this.paramsInheritanceStrategy=g,this.urlSerializer=r,this.applyRedirects=new om(this.urlSerializer,this.urlTree)}noMatchError(t){return new P(4002,`'${t.segmentGroup}'`)}recognize(){let t=Gb(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(t).pipe(CA(({children:A,rootSnapshot:i})=>{let o=new Ei(i,A),n=new EI("",o),g=Vb(i,[],this.urlTree.queryParams,this.urlTree.fragment);return g.queryParams=this.urlTree.queryParams,n.url=this.urlSerializer.serialize(g),{state:n,tree:g}}))}match(t){let A=new Gg([],Object.freeze({}),Object.freeze(v({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),WA,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,t,WA,A).pipe(CA(i=>({children:i,rootSnapshot:A})),$e(i=>{if(i instanceof hI)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof dI?this.noMatchError(i):i}))}processSegmentGroup(t,A,i,o,n){return i.segments.length===0&&i.hasChildren()?this.processChildren(t,A,i,n):this.processSegment(t,A,i,i.segments,o,!0,n).pipe(CA(g=>g instanceof Ei?[g]:[]))}processChildren(t,A,i,o){let n=[];for(let g of Object.keys(i.children))g==="primary"?n.unshift(g):n.push(g);return de(n).pipe(oo(g=>{let r=i.children[g],s=NJ(A,g);return this.processSegmentGroup(t,s,r,g,o)}),kl((g,r)=>(g.push(...r),g)),mn(null),Rl(),_e(g=>{if(g===null)return $r(i);let r=aR(g);return hH(r),gA(r)}))}processSegment(t,A,i,o,n,g,r){return de(A).pipe(oo(s=>this.processSegmentAgainstRoute(s._injector??t,A,s,i,o,n,g,r).pipe($e(a=>{if(a instanceof dI)return gA(null);throw a}))),go(s=>!!s),$e(s=>{if(gR(s))return EH(i,o,n)?gA(new gm):$r(i);throw s}))}processSegmentAgainstRoute(t,A,i,o,n,g,r,s){return Vi(i)!==g&&(g===WA||!hQ(o,n,i))?$r(o):i.redirectTo===void 0?this.matchSegmentAgainstRoute(t,o,i,n,g,s):this.allowRedirects&&r?this.expandSegmentAgainstRouteUsingRedirect(t,o,A,i,n,g,s):$r(o)}expandSegmentAgainstRouteUsingRedirect(t,A,i,o,n,g,r){let{matched:s,parameters:a,consumedSegments:c,positionalParamSegments:h,remainingSegments:p}=sR(A,o,n);if(!s)return $r(A);typeof o.redirectTo=="string"&&o.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>dH&&(this.allowRedirects=!1));let D=new Gg(n,a,Object.freeze(v({},this.urlTree.queryParams)),this.urlTree.fragment,_b(o),Vi(o),o.component??o._loadedComponent??null,o,Lb(o)),w=QQ(D,r,this.paramsInheritanceStrategy);D.params=Object.freeze(w.params),D.data=Object.freeze(w.data);let R=this.applyRedirects.applyRedirectCommands(c,o.redirectTo,h,D,t);return this.applyRedirects.lineralizeSegments(o,R).pipe(_e(q=>this.processSegment(t,i,A,q.concat(p),g,!1,r)))}matchSegmentAgainstRoute(t,A,i,o,n,g){let r=aH(A,i,o,t,this.urlSerializer);return i.path==="**"&&(A.children={}),r.pipe(ue(s=>s.matched?(t=i._injector??t,this.getChildConfig(t,i,o).pipe(ue(({routes:a})=>{let c=i._loadedInjector??t,{parameters:h,consumedSegments:p,remainingSegments:D}=s,w=new Gg(p,h,Object.freeze(v({},this.urlTree.queryParams)),this.urlTree.fragment,_b(i),Vi(i),i.component??i._loadedComponent??null,i,Lb(i)),R=QQ(w,g,this.paramsInheritanceStrategy);w.params=Object.freeze(R.params),w.data=Object.freeze(R.data);let{segmentGroup:q,slicedSegments:iA}=Gb(A,p,D,a);if(iA.length===0&&q.hasChildren())return this.processChildren(c,a,q,w).pipe(CA(NA=>new Ei(w,NA)));if(a.length===0&&iA.length===0)return gA(new Ei(w,[]));let kA=Vi(i)===n;return this.processSegment(c,a,q,iA,kA?WA:n,!0,w).pipe(CA(NA=>new Ei(w,NA instanceof Ei?[NA]:[])))}))):$r(A)))}getChildConfig(t,A,i){return A.children?gA({routes:A.children,injector:t}):A.loadChildren?A._loadedRoutes!==void 0?gA({routes:A._loadedRoutes,injector:A._loadedInjector}):nH(t,A,i,this.urlSerializer).pipe(_e(o=>o?this.configLoader.loadChildren(t,A).pipe(me(n=>{A._loadedRoutes=n.routes,A._loadedInjector=n.injector})):sH(A))):gA({routes:[],injector:t})}};function hH(e){e.sort((t,A)=>t.value.outlet===WA?-1:A.value.outlet===WA?1:t.value.outlet.localeCompare(A.value.outlet))}function uH(e){let t=e.value.routeConfig;return t&&t.path===""}function aR(e){let t=[],A=new Set;for(let i of e){if(!uH(i)){t.push(i);continue}let o=t.find(n=>i.value.routeConfig===n.value.routeConfig);o!==void 0?(o.children.push(...i.children),A.add(o)):t.push(i)}for(let i of A){let o=aR(i.children);t.push(new Ei(i.value,o))}return t.filter(i=>!A.has(i))}function _b(e){return e.data||{}}function Lb(e){return e.resolve||{}}function mH(e,t,A,i,o,n){return _e(g=>lH(e,t,A,i,g.extractedUrl,o,n).pipe(CA(({state:r,tree:s})=>fA(v({},g),{targetSnapshot:r,urlAfterRedirects:s}))))}function pH(e,t){return _e(A=>{let{targetSnapshot:i,guards:{canActivateChecks:o}}=A;if(!o.length)return gA(A);let n=new Set(o.map(s=>s.route)),g=new Set;for(let s of n)if(!g.has(s))for(let a of IR(s))g.add(a);let r=0;return de(g).pipe(oo(s=>n.has(s)?DH(s,i,e,t):(s.data=QQ(s,s.parent,e).resolve,gA(void 0))),me(()=>r++),hr(1),_e(s=>r===g.size?gA(A):Ye))})}function IR(e){let t=e.children.map(A=>IR(A)).flat();return[e,...t]}function DH(e,t,A,i){let o=e.routeConfig,n=e._resolve;return o?.title!==void 0&&!eR(o)&&(n[uI]=o.title),fH(n,e,t,i).pipe(CA(g=>(e._resolvedData=g,e.data=QQ(e,e.parent,A).resolve,null)))}function fH(e,t,A,i){let o=Wu(e);if(o.length===0)return gA({});let n={};return de(o).pipe(_e(g=>wH(e[g],t,A,i).pipe(go(),me(r=>{if(r instanceof ss)throw EQ(new Kn,r);n[g]=r}))),hr(1),CA(()=>n),$e(g=>gR(g)?Ye:ln(g)))}function wH(e,t,A,i){let o=mI(t)??i,n=Is(e,o),g=n.resolve?n.resolve(t,A):Yt(o,()=>n(t,A));return Un(g)}function qu(e){return ue(t=>{let A=e(t);return A?de(A).pipe(CA(()=>t)):gA(t)})}var cm=(()=>{class e{buildTitle(A){let i,o=A.root;for(;o!==void 0;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(n=>n.outlet===WA);return i}getResolvedTitleForRoute(A){return A.data[uI]}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>C(CR),providedIn:"root"})}return e})(),CR=(()=>{class e extends cm{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||e)(eA(Ab))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),xg=new b("",{providedIn:"root",factory:()=>({})}),Cs=new b(""),uQ=(()=>{class e{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=C(CM);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return gA(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=Un(A.loadComponent()).pipe(CA(cR),me(n=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=n}),no(()=>{this.componentLoaders.delete(A)})),o=new En(i,()=>new J).pipe(Cr());return this.componentLoaders.set(A,o),o}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return gA({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let n=BR(i,this.compiler,A,this.onLoadEndListener).pipe(no(()=>{this.childrenLoaders.delete(i)})),g=new En(n,()=>new J).pipe(Cr());return this.childrenLoaders.set(i,g),g}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function BR(e,t,A,i){return Un(e.loadChildren()).pipe(CA(cR),_e(o=>o instanceof Wh||Array.isArray(o)?gA(o):de(t.compileModuleAsync(o))),CA(o=>{i&&i(e);let n,g,r=!1;return Array.isArray(o)?(g=o,r=!0):(n=o.create(A).injector,g=n.get(Cs,[],{optional:!0,self:!0}).flat()),{routes:g.map(Bm),injector:n}}))}function yH(e){return e&&typeof e=="object"&&"default"in e}function cR(e){return yH(e)?e.default:e}var mQ=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>C(MH),providedIn:"root"})}return e})(),MH=(()=>{class e{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Qm=new b(""),Em=new b("");function QR(e,t,A){let i=e.get(Em),o=e.get(uA);return e.get(AA).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(a=>setTimeout(a));let n,g=new Promise(a=>{n=a}),r=o.startViewTransition(()=>(n(),bH(e))),{onViewTransitionCreated:s}=i;return s&&Yt(e,()=>s({transition:r,from:t,to:A})),g})}function bH(e){return new Promise(t=>{Le({read:()=>setTimeout(t)},{injector:e})})}var lm=new b(""),pQ=(()=>{class e{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new J;transitionAbortSubject=new J;configLoader=C(uQ);environmentInjector=C(qe);destroyRef=C(Mn);urlSerializer=C(Lg);rootContexts=C(Kg);location=C(ho);inputBindingEnabled=C(pI,{optional:!0})!==null;titleStrategy=C(cm);options=C(xg,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=C(mQ);createViewTransition=C(Qm,{optional:!0});navigationErrorHandler=C(lm,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>gA(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=o=>this.events.next(new gQ(o)),i=o=>this.events.next(new rQ(o));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(fA(v({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new PA(null),this.transitions.pipe(MA(i=>i!==null),ue(i=>{let o=!1,n=!1;return gA(i).pipe(ue(g=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",qt.SupersededByNewNavigation),Ye;this.currentTransition=i,this.currentNavigation={id:g.id,initialUrl:g.rawUrl,extractedUrl:g.extractedUrl,targetBrowserUrl:typeof g.extras.browserUrl=="string"?this.urlSerializer.parse(g.extras.browserUrl):g.extras.browserUrl,trigger:g.source,extras:g.extras,previousNavigation:this.lastSuccessfulNavigation?fA(v({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let r=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),s=g.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!r&&s!=="reload"){let a="";return this.events.next(new fo(g.id,this.urlSerializer.serialize(g.rawUrl),a,os.IgnoredSameUrlNavigation)),g.resolve(!1),Ye}if(this.urlHandlingStrategy.shouldProcessUrl(g.rawUrl))return gA(g).pipe(ue(a=>(this.events.next(new xn(a.id,this.urlSerializer.serialize(a.extractedUrl),a.source,a.restoredState)),a.id!==this.navigationId?Ye:Promise.resolve(a))),mH(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),me(a=>{i.targetSnapshot=a.targetSnapshot,i.urlAfterRedirects=a.urlAfterRedirects,this.currentNavigation=fA(v({},this.currentNavigation),{finalUrl:a.urlAfterRedirects});let c=new BI(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(c)}));if(r&&this.urlHandlingStrategy.shouldProcessUrl(g.currentRawUrl)){let{id:a,extractedUrl:c,source:h,restoredState:p,extras:D}=g,w=new xn(a,this.urlSerializer.serialize(c),h,p);this.events.next(w);let R=$b(this.rootComponentType).snapshot;return this.currentTransition=i=fA(v({},g),{targetSnapshot:R,urlAfterRedirects:c,extras:fA(v({},D),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=c,gA(i)}else{let a="";return this.events.next(new fo(g.id,this.urlSerializer.serialize(g.extractedUrl),a,os.IgnoredByUrlHandlingStrategy)),g.resolve(!1),Ye}}),me(g=>{let r=new tQ(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot);this.events.next(r)}),CA(g=>(this.currentTransition=i=fA(v({},g),{guards:YJ(g.targetSnapshot,g.currentSnapshot,this.rootContexts)}),i)),jJ(this.environmentInjector,g=>this.events.next(g)),me(g=>{if(i.guardsResult=g.guardsResult,g.guardsResult&&typeof g.guardsResult!="boolean")throw EQ(this.urlSerializer,g.guardsResult);let r=new iQ(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot,!!g.guardsResult);this.events.next(r)}),MA(g=>g.guardsResult?!0:(this.cancelNavigationTransition(g,"",qt.GuardRejected),!1)),qu(g=>{if(g.guards.canActivateChecks.length!==0)return gA(g).pipe(me(r=>{let s=new oQ(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),ue(r=>{let s=!1;return gA(r).pipe(pH(this.paramsInheritanceStrategy,this.environmentInjector),me({next:()=>s=!0,complete:()=>{s||this.cancelNavigationTransition(r,"",qt.NoDataFromResolver)}}))}),me(r=>{let s=new nQ(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}))}),qu(g=>{let r=s=>{let a=[];s.routeConfig?.loadComponent&&!s.routeConfig._loadedComponent&&a.push(this.configLoader.loadComponent(s.routeConfig).pipe(me(c=>{s.component=c}),CA(()=>{})));for(let c of s.children)a.push(...r(c));return a};return yt(r(g.targetSnapshot.root)).pipe(mn(null),he(1))}),qu(()=>this.afterPreactivation()),ue(()=>{let{currentSnapshot:g,targetSnapshot:r}=i,s=this.createViewTransition?.(this.environmentInjector,g.root,r.root);return s?de(s).pipe(CA(()=>i)):gA(i)}),CA(g=>{let r=_J(A.routeReuseStrategy,g.targetSnapshot,g.currentRouterState);return this.currentTransition=i=fA(v({},g),{targetRouterState:r}),this.currentNavigation.targetRouterState=r,i}),me(()=>{this.events.next(new cI)}),UJ(this.rootContexts,A.routeReuseStrategy,g=>this.events.next(g),this.inputBindingEnabled),he(1),me({next:g=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new di(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects))),this.titleStrategy?.updateTitle(g.targetRouterState.snapshot),g.resolve(!0)},complete:()=>{o=!0}}),bA(this.transitionAbortSubject.pipe(me(g=>{throw g}))),no(()=>{!o&&!n&&this.cancelNavigationTransition(i,"",qt.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),$e(g=>{if(this.destroyed)return i.resolve(!1),Ye;if(n=!0,nR(g))this.events.next(new po(i.id,this.urlSerializer.serialize(i.extractedUrl),g.message,g.cancellationCode)),xJ(g)?this.events.next(new rs(g.url,g.navigationBehaviorOptions)):i.resolve(!1);else{let r=new ns(i.id,this.urlSerializer.serialize(i.extractedUrl),g,i.targetSnapshot??void 0);try{let s=Yt(this.environmentInjector,()=>this.navigationErrorHandler?.(r));if(s instanceof ss){let{message:a,cancellationCode:c}=EQ(this.urlSerializer,s);this.events.next(new po(i.id,this.urlSerializer.serialize(i.extractedUrl),a,c)),this.events.next(new rs(s.redirectTo,s.navigationBehaviorOptions))}else throw this.events.next(r),g}catch(s){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(s)}}return Ye}))}))}cancelNavigationTransition(A,i,o){let n=new po(A.id,this.urlSerializer.serialize(A.extractedUrl),i,o);this.events.next(n),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function RH(e){return e!==$c}var ER=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>C(kH),providedIn:"root"})}return e})(),dQ=class{shouldDetach(t){return!1}store(t,A){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,A){return t.routeConfig===A.routeConfig}},kH=(()=>{class e extends dQ{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),lR=(()=>{class e{urlSerializer=C(Lg);options=C(xg,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=C(ho);urlHandlingStrategy=C(mQ);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new Do;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:o}){let n=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,g=o??n;return g instanceof Do?this.urlSerializer.serialize(g):g}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:o}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,o),this.routerState=A):this.rawUrlTree=o}routerState=$b(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:()=>C(vH),providedIn:"root"})}return e})(),vH=(()=>{class e extends lR{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof xn?this.updateStateMemento():A instanceof fo?this.commitTransition(i):A instanceof BI?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof cI?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof po&&(A.code===qt.GuardRejected||A.code===qt.NoDataFromResolver)?this.restoreHistory(i):A instanceof ns?this.restoreHistory(i,!0):A instanceof di&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:o}){let{replaceUrl:n,state:g}=i;if(this.location.isCurrentPathEqualTo(A)||n){let r=this.browserPageId,s=v(v({},g),this.generateNgRouterState(o,r));this.location.replaceState(A,"",s)}else{let r=v(v({},g),this.generateNgRouterState(o,this.browserPageId+1));this.location.go(A,"",r)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let o=this.browserPageId,n=this.currentPageId-o;n!==0?this.location.historyGo(n):this.getCurrentUrlTree()===A.finalUrl&&n===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function DQ(e,t){e.events.pipe(MA(A=>A instanceof di||A instanceof po||A instanceof ns||A instanceof fo),CA(A=>A instanceof di||A instanceof fo?0:(A instanceof po?A.code===qt.Redirect||A.code===qt.SupersededByNewNavigation:!1)?2:1),MA(A=>A!==2),he(1)).subscribe(()=>{t()})}var SH={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},FH={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},wo=(()=>{class e{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=C(Xh);stateManager=C(lR);options=C(xg,{optional:!0})||{};pendingTasks=C(qo);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=C(pQ);urlSerializer=C(Lg);location=C(ho);urlHandlingStrategy=C(mQ);_events=new J;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=C(ER);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=C(Cs,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!C(pI,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new FA;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let o=this.navigationTransitions.currentTransition,n=this.navigationTransitions.currentNavigation;if(o!==null&&n!==null){if(this.stateManager.handleRouterEvent(i,n),i instanceof po&&i.code!==qt.Redirect&&i.code!==qt.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof di)this.navigated=!0;else if(i instanceof rs){let g=i.navigationBehaviorOptions,r=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),s=v({browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||this.urlUpdateStrategy==="eager"||RH(o.source)},g);this.scheduleNavigation(r,$c,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}}GH(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),$c,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,o)=>{this.navigateToSyncWithBrowser(A,o,i)})}navigateToSyncWithBrowser(A,i,o){let n={replaceUrl:!0},g=o?.navigationId?o:null;if(o){let s=v({},o);delete s.navigationId,delete s.\u0275routerPageId,Object.keys(s).length!==0&&(n.state=s)}let r=this.parseUrl(A);this.scheduleNavigation(r,i,g,n)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(Bm),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:o,queryParams:n,fragment:g,queryParamsHandling:r,preserveFragment:s}=i,a=s?this.currentUrlTree.fragment:g,c=null;switch(r??this.options.defaultQueryParamsHandling){case"merge":c=v(v({},this.currentUrlTree.queryParams),n);break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=n||null}c!==null&&(c=this.removeEmptyProps(c));let h;try{let p=o?o.snapshot:this.routerState.snapshot.root;h=Wb(p)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),h=this.currentUrlTree.root}return zb(h,A,c,a??null)}navigateByUrl(A,i={skipLocationChange:!1}){let o=is(A)?A:this.parseUrl(A),n=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(n,$c,null,i)}navigate(A,i={skipLocationChange:!1}){return NH(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let o;if(i===!0?o=v({},SH):i===!1?o=v({},FH):o=i,is(A))return vb(this.currentUrlTree,A,o);let n=this.parseUrl(A);return vb(this.currentUrlTree,n,o)}removeEmptyProps(A){return Object.entries(A).reduce((i,[o,n])=>(n!=null&&(i[o]=n),i),{})}scheduleNavigation(A,i,o,n,g){if(this.disposed)return Promise.resolve(!1);let r,s,a;g?(r=g.resolve,s=g.reject,a=g.promise):a=new Promise((h,p)=>{r=h,s=p});let c=this.pendingTasks.add();return DQ(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(c))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:n,resolve:r,reject:s,promise:a,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),a.catch(h=>Promise.reject(h))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function NH(e){for(let t=0;t{class e{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,o,n){this.router=A,this.injector=i,this.preloadingStrategy=o,this.loader=n}setUpPreloading(){this.subscription=this.router.events.pipe(MA(A=>A instanceof di),oo(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let o=[];for(let n of i){n.providers&&!n._injector&&(n._injector=va(n.providers,A,`Route: ${n.path}`));let g=n._injector??A,r=n._loadedInjector??g;(n.loadChildren&&!n._loadedRoutes&&n.canLoad===void 0||n.loadComponent&&!n._loadedComponent)&&o.push(this.preloadConfig(g,n)),(n.children||n._loadedRoutes)&&o.push(this.processRoutes(r,n.children??n._loadedRoutes))}return de(o).pipe(hn())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let o;i.loadChildren&&i.canLoad===void 0?o=this.loader.loadChildren(A,i):o=gA(null);let n=o.pipe(_e(g=>g===null?gA(void 0):(i._loadedRoutes=g.routes,i._loadedInjector=g.injector,this.processRoutes(g.injector??A,g.routes))));if(i.loadComponent&&!i._loadedComponent){let g=this.loader.loadComponent(i);return de([n,g]).pipe(hn())}else return n})}static \u0275fac=function(i){return new(i||e)(eA(wo),eA(qe),eA(fI),eA(uQ))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),hR=new b(""),_H=(()=>{class e{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,o,n,g={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=o,this.zone=n,this.options=g,g.scrollPositionRestoration||="disabled",g.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof xn?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof di?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof fo&&A.code===os.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof gs&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new gs(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){D0()};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();function LH(e){return e.routerState.root}function wI(e,t){return{\u0275kind:e,\u0275providers:t}}function KH(){let e=C(RA);return t=>{let A=e.get(gi);if(t!==A.components[0])return;let i=e.get(wo),o=e.get(uR);e.get(hm)===1&&i.initialNavigation(),e.get(DR,null,zA.Optional)?.setUpPreloading(),e.get(hR,null,zA.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}var uR=new b("",{factory:()=>new J}),hm=new b("",{providedIn:"root",factory:()=>1});function mR(){let e=[{provide:hm,useValue:0},tu(()=>{let t=C(RA);return t.get(Cu,Promise.resolve()).then(()=>new Promise(i=>{let o=t.get(wo),n=t.get(uR);DQ(o,()=>{i(!0)}),t.get(pQ).afterPreactivation=()=>(i(!0),n.closed?gA(void 0):n),o.initialNavigation()}))})];return wI(2,e)}function pR(){let e=[tu(()=>{C(wo).setUpLocationChangeListener()}),{provide:hm,useValue:2}];return wI(3,e)}var DR=new b("");function fR(e){return wI(0,[{provide:DR,useExisting:dR},{provide:fI,useExisting:e}])}function wR(){return wI(8,[Im,{provide:pI,useExisting:Im}])}function yR(e){Vo("NgRouterViewTransitions");let t=[{provide:Qm,useValue:QR},{provide:Em,useValue:v({skipNextTransition:!!e?.skipInitialTransition},e)}];return wI(9,t)}var MR=[ho,{provide:Lg,useClass:Kn},wo,Kg,{provide:Vt,useFactory:LH,deps:[wo]},uQ,[]],fQ=(()=>{class e{constructor(){}static forRoot(A,i){return{ngModule:e,providers:[MR,[],{provide:Cs,multi:!0,useValue:A},[],i?.errorHandler?{provide:lm,useValue:i.errorHandler}:[],{provide:xg,useValue:i||{}},i?.useHash?UH():YH(),xH(),i?.preloadingStrategy?fR(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?JH(i):[],i?.bindToComponentInputs?wR().\u0275providers:[],i?.enableViewTransitions?yR().\u0275providers:[],HH()]}}static forChild(A){return{ngModule:e,providers:[{provide:Cs,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();function xH(){return{provide:hR,useFactory:()=>{let e=C(kM),t=C(AA),A=C(xg),i=C(pQ),o=C(Lg);return A.scrollOffset&&e.setOffset(A.scrollOffset),new _H(o,i,e,t,A)}}}function UH(){return{provide:jo,useClass:Eu}}function YH(){return{provide:jo,useClass:hc}}function JH(e){return[e.initialNavigation==="disabled"?pR().\u0275providers:[],e.initialNavigation==="enabledBlocking"?mR().\u0275providers:[]]}var dm=new b("");function HH(){return[{provide:dm,useFactory:KH},{provide:iu,multi:!0,useExisting:dm}]}var mm;try{mm=typeof Intl<"u"&&Intl.v8BreakIterator}catch{mm=!1}var JA=(()=>{class e{_platformId=C(Eo);isBrowser=this._platformId?uo(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||mm)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Bs,bR=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function pm(){if(Bs)return Bs;if(typeof document!="object"||!document)return Bs=new Set(bR),Bs;let e=document.createElement("input");return Bs=new Set(bR.filter(t=>(e.setAttribute("type",t),e.type===t))),Bs}var yI;function PH(){if(yI==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>yI=!0}))}finally{yI=yI||!1}return yI}function yo(e){return PH()?e:!!e.capture}var Wi=function(e){return e[e.NORMAL=0]="NORMAL",e[e.NEGATED=1]="NEGATED",e[e.INVERTED=2]="INVERTED",e}(Wi||{}),wQ,Ug;function yQ(){if(Ug==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return Ug=!1,Ug;if("scrollBehavior"in document.documentElement.style)Ug=!0;else{let e=Element.prototype.scrollTo;e?Ug=!/\{\s*\[native code\]\s*\}/.test(e.toString()):Ug=!1}}return Ug}function cs(){if(typeof document!="object"||!document)return Wi.NORMAL;if(wQ==null){let e=document.createElement("div"),t=e.style;e.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",e.appendChild(A),document.body.appendChild(e),wQ=Wi.NORMAL,e.scrollLeft===0&&(e.scrollLeft=1,wQ=e.scrollLeft===0?Wi.NEGATED:Wi.INVERTED),e.remove()}return wQ}var um;function ZH(){if(um==null){let e=typeof document<"u"?document.head:null;um=!!(e&&(e.createShadowRoot||e.attachShadow))}return um}function RR(e){if(ZH()){let t=e.getRootNode?e.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}function Qs(){let e=typeof document<"u"&&document?document.activeElement:null;for(;e&&e.shadowRoot;){let t=e.shadowRoot.activeElement;if(t===e)break;e=t}return e}function hi(e){return e.composedPath?e.composedPath()[0]:e.target}function Dm(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function fm(e,t,A,i,o){let n=parseInt(su.major),g=parseInt(su.minor);return n>19||n===19&&g>0||n===0&&g===0?e.listen(t,A,i,o):(t.addEventListener(A,i,o),()=>{t.removeEventListener(A,i,o)})}var MQ=new WeakMap,Be=(()=>{class e{_appRef;_injector=C(RA);_environmentInjector=C(qe);load(A){let i=this._appRef=this._appRef||this._injector.get(gi),o=MQ.get(i);o||(o={loaders:new Set,refs:[]},MQ.set(i,o),i.onDestroy(()=>{MQ.get(i)?.refs.forEach(n=>n.destroy()),MQ.delete(i)})),o.loaders.has(A)||(o.loaders.add(A),o.refs.push(Ec(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),MI=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,o){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return e})();function Te(e,...t){return t.length?t.some(A=>e[A]):e.altKey||e.shiftKey||e.ctrlKey||e.metaKey}function Ge(e){return e!=null&&`${e}`!="false"}function Rt(e,t=0){return wm(e)?Number(e):arguments.length===2?t:0}function wm(e){return!isNaN(parseFloat(e))&&!isNaN(Number(e))}function Es(e){return Array.isArray(e)?e:[e]}function Oe(e){return e==null?"":typeof e=="string"?e:`${e}px`}function Wt(e){return e instanceof z?e.nativeElement:e}function qH(e){if(e.type==="characterData"&&e.target instanceof Comment)return!0;if(e.type==="childList"){for(let t=0;t{class e{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),vR=(()=>{class e{_mutationObserverFactory=C(kR);_observedElements=new Map;_ngZone=C(AA);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=Wt(A);return new EA(o=>{let g=this._observeElement(i).pipe(CA(r=>r.filter(s=>!qH(s))),MA(r=>!!r.length)).subscribe(r=>{this._ngZone.run(()=>{o.next(r)})});return()=>{g.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new J,o=this._mutationObserverFactory.create(n=>i.next(n));o&&o.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:o,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:o}=this._observedElements.get(A);i&&i.disconnect(),o.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),bQ=(()=>{class e{_contentObserver=C(vR);_elementRef=C(z);event=new Z;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=Rt(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(xi(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",j],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return e})(),ls=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[kR]})}return e})();var SR=new Set,Yg,VH=(()=>{class e{_platform=C(JA);_nonce=C(wa,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):zH}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&WH(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function WH(e,t){if(!SR.has(e))try{Yg||(Yg=document.createElement("style"),t&&Yg.setAttribute("nonce",t),Yg.setAttribute("type","text/css"),document.head.appendChild(Yg)),Yg.sheet&&(Yg.sheet.insertRule(`@media ${e} {body{ }}`,0),SR.add(e))}catch(A){console.error(A)}}function zH(e){return{matches:e==="all"||e==="",media:e,addListener:()=>{},removeListener:()=>{}}}var RQ=(()=>{class e{_mediaMatcher=C(VH);_zone=C(AA);_queries=new Map;_destroySubject=new J;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return FR(Es(A)).some(o=>this._registerQuery(o).mql.matches)}observe(A){let o=FR(Es(A)).map(g=>this._registerQuery(g).observable),n=yt(o);return n=un(n.pipe(he(1)),n.pipe(rg(1),xi(0))),n.pipe(CA(g=>{let r={matches:!1,breakpoints:{}};return g.forEach(({matches:s,query:a})=>{r.matches=r.matches||s,r.breakpoints[a]=s}),r}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),n={observable:new EA(g=>{let r=s=>this._zone.run(()=>g.next(s));return i.addListener(r),()=>{i.removeListener(r)}}).pipe(be(i),CA(({matches:g})=>({query:A,matches:g})),bA(this._destroySubject)),mql:i};return this._queries.set(A,n),n}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function FR(e){return e.map(t=>t.split(",")).reduce((t,A)=>t.concat(A)).map(t=>t.trim())}var NR={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var xR=" ";function Fm(e,t,A){let i=FQ(e,t);A=A.trim(),!i.some(o=>o.trim()===A)&&(i.push(A),e.setAttribute(t,i.join(xR)))}function KQ(e,t,A){let i=FQ(e,t);A=A.trim();let o=i.filter(n=>n!==A);o.length?e.setAttribute(t,o.join(xR)):e.removeAttribute(t)}function FQ(e,t){return e.getAttribute(t)?.match(/\S+/g)??[]}var UR="cdk-describedby-message",kQ="cdk-describedby-host",Rm=0,YR=(()=>{class e{_platform=C(JA);_document=C(uA);_messageRegistry=new Map;_messagesContainer=null;_id=`${Rm++}`;constructor(){C(Be).load(MI),this._id=C(Yr)+"-"+Rm++}describe(A,i,o){if(!this._canBeDescribed(A,i))return;let n=ym(i,o);typeof i!="string"?(GR(i,this._id),this._messageRegistry.set(n,{messageElement:i,referenceCount:0})):this._messageRegistry.has(n)||this._createMessageElement(i,o),this._isElementDescribedByMessage(A,n)||this._addMessageReference(A,n)}removeDescription(A,i,o){if(!i||!this._isElementNode(A))return;let n=ym(i,o);if(this._isElementDescribedByMessage(A,n)&&this._removeMessageReference(A,n),typeof i=="string"){let g=this._messageRegistry.get(n);g&&g.referenceCount===0&&this._deleteMessageElement(n)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${kQ}="${this._id}"]`);for(let i=0;io.indexOf(UR)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let o=this._messageRegistry.get(i);Fm(A,"aria-describedby",o.messageElement.id),A.setAttribute(kQ,this._id),o.referenceCount++}_removeMessageReference(A,i){let o=this._messageRegistry.get(i);o.referenceCount--,KQ(A,"aria-describedby",o.messageElement.id),A.removeAttribute(kQ)}_isElementDescribedByMessage(A,i){let o=FQ(A,"aria-describedby"),n=this._messageRegistry.get(i),g=n&&n.messageElement.id;return!!g&&o.indexOf(g)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let o=i==null?"":`${i}`.trim(),n=A.getAttribute("aria-label");return o?!n||n.trim()!==o:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ym(e,t){return typeof e=="string"?`${t||""}/${e}`:e}function GR(e,t){e.id||(e.id=`${UR}-${t}-${Rm++}`)}var IT=200,km=class{_letterKeyStream=new J;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new J;selectedItem=this._selectedItem;constructor(t,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:IT;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){let A=t.keyCode;t.key&&t.key.length===1?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(me(A=>this._pressedLetters.push(A)),xi(t),MA(()=>this._pressedLetters.length>0),CA(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;it.disabled;constructor(t,A){this._items=t,t instanceof yi?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):bn(t)&&(this._effectRef=Ga(()=>this._itemsChanged(t()),{injector:A}))}tabOut=new J;change=new J;skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new km(A,{debounceInterval:typeof t=="number"?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,A=10){return this._pageUpAndDown={enabled:t,delta:A},this}setActiveItem(t){let A=this._activeItem();this.updateActiveItem(t),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(t){let A=t.keyCode,o=["altKey","ctrlKey","metaKey","shiftKey"].every(n=>!t[n]||this._allowedModifierKeys.indexOf(n)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&o){this.setNextItemActive();break}else return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&o){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&o){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&o){let n=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(n>0?n:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&o){let n=this._activeItemIndex+this._pageUpAndDown.delta,g=this._getItemsArray().length;this._setActiveItemByIndex(n-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},GQ=class extends NQ{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}},bI=class extends NQ{_origin="program";setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}};var vI=(()=>{class e{_platform=C(JA);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return BT(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=CT(mT(A));if(i&&(_R(i)===-1||!this.isVisible(i)))return!1;let o=A.nodeName.toLowerCase(),n=_R(A);return A.hasAttribute("contenteditable")?n!==-1:o==="iframe"||o==="object"||this._platform.WEBKIT&&this._platform.IOS&&!hT(A)?!1:o==="audio"?A.hasAttribute("controls")?n!==-1:!1:o==="video"?n===-1?!1:n!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return uT(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function CT(e){try{return e.frameElement}catch{return null}}function BT(e){return!!(e.offsetWidth||e.offsetHeight||typeof e.getClientRects=="function"&&e.getClientRects().length)}function cT(e){let t=e.nodeName.toLowerCase();return t==="input"||t==="select"||t==="button"||t==="textarea"}function QT(e){return lT(e)&&e.type=="hidden"}function ET(e){return dT(e)&&e.hasAttribute("href")}function lT(e){return e.nodeName.toLowerCase()=="input"}function dT(e){return e.nodeName.toLowerCase()=="a"}function JR(e){if(!e.hasAttribute("tabindex")||e.tabIndex===void 0)return!1;let t=e.getAttribute("tabindex");return!!(t&&!isNaN(parseInt(t,10)))}function _R(e){if(!JR(e))return null;let t=parseInt(e.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function hT(e){let t=e.nodeName.toLowerCase(),A=t==="input"&&e.type;return A==="text"||A==="password"||t==="select"||t==="textarea"}function uT(e){return QT(e)?!1:cT(e)||ET(e)||e.hasAttribute("contenteditable")||JR(e)}function mT(e){return e.ownerDocument&&e.ownerDocument.defaultView||window}var vm=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_enabled=!0;constructor(t,A,i,o,n=!1,g){this._element=t,this._checker=A,this._ngZone=i,this._document=o,this._injector=g,n||this.attachAnchors()}destroy(){let t=this._startAnchor,A=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let A=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return t=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(t),!!i}return A.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){let A=this._getRegionBoundary("start");return A&&A.focus(t),!!A}focusLastTabbableElement(t){let A=this._getRegionBoundary("end");return A&&A.focus(t),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let A=t.children;for(let i=0;i=0;i--){let o=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(o)return o}return null}_createAnchor(){let t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,A){t?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._injector?Le(t,{injector:this._injector}):setTimeout(t)}},xQ=(()=>{class e{_checker=C(vI);_ngZone=C(AA);_document=C(uA);_injector=C(RA);constructor(){C(Be).load(MI)}create(A,i=!1){return new vm(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Nm(e){return e.buttons===0||e.detail===0}function Gm(e){let t=e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0];return!!t&&t.identifier===-1&&(t.radiusX==null||t.radiusX===1)&&(t.radiusY==null||t.radiusY===1)}var pT=new b("cdk-input-modality-detector-options"),DT={ignoreKeys:[18,17,224,91,16]},HR=650,ds=yo({passive:!0,capture:!0}),fT=(()=>{class e{_platform=C(JA);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new PA(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=hi(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(Gm(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=hi(A)};constructor(){let A=C(AA),i=C(uA),o=C(pT,{optional:!0});this._options=v(v({},DT),o),this.modalityDetected=this._modality.pipe(rg(1)),this.modalityChanged=this.modalityDetected.pipe(Ui()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,ds),i.addEventListener("mousedown",this._onMousedown,ds),i.addEventListener("touchstart",this._onTouchstart,ds)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,ds),document.removeEventListener("mousedown",this._onMousedown,ds),document.removeEventListener("touchstart",this._onTouchstart,ds))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),wT=new b("liveAnnouncerElement",{providedIn:"root",factory:yT});function yT(){return null}var MT=new b("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),bT=0,UQ=(()=>{class e{_ngZone=C(AA);_defaultOptions=C(MT,{optional:!0});_liveElement;_document=C(uA);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=C(wT,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let o=this._defaultOptions,n,g;return i.length===1&&typeof i[0]=="number"?g=i[0]:[n,g]=i,this.clear(),clearTimeout(this._previousTimeout),n||(n=o&&o.politeness?o.politeness:"polite"),g==null&&o&&(g=o.duration),this._liveElement.setAttribute("aria-live",n),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(r=>this._currentResolve=r)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof g=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),g)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),o=this._document.createElement("div");for(let n=0;n .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class e{_ngZone=C(AA);_platform=C(JA);_inputModalityDetector=C(fT);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=C(uA,{optional:!0});_stopInputModalityDetector=new J;constructor(){let A=C(RT,{optional:!0});this._detectionMode=A?.detectionMode||SQ.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=hi(A);for(let o=i;o;o=o.parentElement)A.type==="focus"?this._onFocus(A,o):this._onBlur(A,o)};monitor(A,i=!1){let o=Wt(A);if(!this._platform.isBrowser||o.nodeType!==1)return gA();let n=RR(o)||this._getDocument(),g=this._elementInfo.get(o);if(g)return i&&(g.checkChildren=!0),g.subject;let r={checkChildren:i,subject:new J,rootNode:n};return this._elementInfo.set(o,r),this._registerGlobalListeners(r),r.subject}stopMonitoring(A){let i=Wt(A),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(A,i,o){let n=Wt(A),g=this._getDocument().activeElement;n===g?this._getClosestElementsInfo(n).forEach(([r,s])=>this._originChanged(r,i,s)):(this._setOrigin(i),typeof n.focus=="function"&&n.focus(o))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===SQ.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===SQ.IMMEDIATE){clearTimeout(this._originTimeoutId);let o=this._originFromTouchInteraction?HR:1;this._originTimeoutId=setTimeout(()=>this._origin=null,o)}})}_onFocus(A,i){let o=this._elementInfo.get(i),n=hi(A);!o||!o.checkChildren&&i!==n||this._originChanged(i,this._getFocusOrigin(n),o)}_onBlur(A,i){let o=this._elementInfo.get(i);!o||o.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,vQ),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,vQ)}),this._rootNodeFocusListenerCount.set(i,o+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(bA(this._stopInputModalityDetector)).subscribe(n=>{this._setOrigin(n,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,vQ),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,vQ),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,o){this._setClasses(A,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((o,n)=>{(n===A||o.checkChildren&&n.contains(A))&&i.push([n,o])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if(o!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let n=A.labels;if(n){for(let g=0;g{class e{_elementRef=C(z);_focusMonitor=C(at);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new Z;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return e})(),Jg=function(e){return e[e.NONE=0]="NONE",e[e.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",e[e.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",e}(Jg||{}),LR="cdk-high-contrast-black-on-white",KR="cdk-high-contrast-white-on-black",Mm="cdk-high-contrast-active",_m=(()=>{class e{_platform=C(JA);_hasCheckedHighContrastMode;_document=C(uA);_breakpointSubscription;constructor(){this._breakpointSubscription=C(RQ).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Jg.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(A):null,n=(o&&o.backgroundColor||"").replace(/ /g,"");switch(A.remove(),n){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Jg.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Jg.BLACK_ON_WHITE}return Jg.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(Mm,LR,KR),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===Jg.BLACK_ON_WHITE?A.add(Mm,LR):i===Jg.WHITE_ON_BLACK&&A.add(Mm,KR)}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),YQ=(()=>{class e{constructor(){C(_m)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[ls]})}return e})(),bm={},oe=(()=>{class e{_appId=C(Yr);getId(A){return this._appId!=="ng"&&(A+=this._appId),bm.hasOwnProperty(A)||(bm[A]=0),`${A}${bm[A]++}`}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var kT=new b("cdk-dir-doc",{providedIn:"root",factory:vT});function vT(){return C(uA)}var ST=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function FT(e){let t=e?.toLowerCase()||"";return t==="auto"&&typeof navigator<"u"&&navigator?.language?ST.test(navigator.language)?"rtl":"ltr":t==="rtl"?"rtl":"ltr"}var Se=(()=>{class e{value="ltr";change=new Z;constructor(){let A=C(kT,{optional:!0});if(A){let i=A.body?A.body.dir:null,o=A.documentElement?A.documentElement.dir:null;this.value=FT(i||o||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Yn=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();var NT=["text"],GT=[[["mat-icon"]],"*"],_T=["mat-icon","*"];function LT(e,t){if(e&1&&Y(0,"mat-pseudo-checkbox",1),e&2){let A=f();N("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function KT(e,t){if(e&1&&Y(0,"mat-pseudo-checkbox",3),e&2){let A=f();N("disabled",A.disabled)}}function xT(e,t){if(e&1&&(E(0,"span",4),M(1),d()),e&2){let A=f();u(),hA("(",A.group.label,")")}}var UT=["mat-internal-form-field",""],YT=["*"];var QA=(()=>{class e{constructor(){C(_m)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[Yn,Yn]})}return e})(),Hg=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(t,A,i,o,n){this._defaultMatcher=t,this.ngControl=A,this._parentFormGroup=i,this._parentForm=o,this._stateChanges=n}updateErrorState(){let t=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,o=this.ngControl?this.ngControl.control:null,n=i?.isErrorState(o,A)??!1;n!==t&&(this.errorState=n,this._stateChanges.next())}};var us=(()=>{class e{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ze=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,o){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return e})();var kt=function(e){return e[e.FADING_IN=0]="FADING_IN",e[e.VISIBLE=1]="VISIBLE",e[e.FADING_OUT=2]="FADING_OUT",e[e.HIDDEN=3]="HIDDEN",e}(kt||{}),xm=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=kt.HIDDEN;constructor(t,A,i,o=!1){this._renderer=t,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=o}fadeOut(){this._renderer.fadeOutRipple(this)}},OR=yo({passive:!0,capture:!0}),Um=class{_events=new Map;addHandler(t,A,i,o){let n=this._events.get(A);if(n){let g=n.get(i);g?g.add(o):n.set(i,new Set([o]))}else this._events.set(A,new Map([[i,new Set([o])]])),t.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,OR)})}removeHandler(t,A,i){let o=this._events.get(t);if(!o)return;let n=o.get(A);n&&(n.delete(i),n.size===0&&o.delete(A),o.size===0&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,OR)))}_delegateEventHandler=t=>{let A=hi(t);A&&this._events.get(t.type)?.forEach((i,o)=>{(o===A||o.contains(A))&&i.forEach(n=>n.handleEvent(t))})}},HQ={enterDuration:225,exitDuration:150},JT=800,PR=yo({passive:!0,capture:!0}),ZR=["mousedown","touchstart"],qR=["mouseup","mouseleave","touchend","touchcancel"],HT=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return e})(),hs=class e{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Um;constructor(t,A,i,o,n){this._target=t,this._ngZone=A,this._platform=o,o.isBrowser&&(this._containerElement=Wt(i)),n&&n.get(Be).load(HT)}fadeInRipple(t,A,i={}){let o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),n=v(v({},HQ),i.animation);i.centered&&(t=o.left+o.width/2,A=o.top+o.height/2);let g=i.radius||TT(t,A,o),r=t-o.left,s=A-o.top,a=n.enterDuration,c=document.createElement("div");c.classList.add("mat-ripple-element"),c.style.left=`${r-g}px`,c.style.top=`${s-g}px`,c.style.height=`${g*2}px`,c.style.width=`${g*2}px`,i.color!=null&&(c.style.backgroundColor=i.color),c.style.transitionDuration=`${a}ms`,this._containerElement.appendChild(c);let h=window.getComputedStyle(c),p=h.transitionProperty,D=h.transitionDuration,w=p==="none"||D==="0s"||D==="0s, 0s"||o.width===0&&o.height===0,R=new xm(this,c,i,w);c.style.transform="scale3d(1, 1, 1)",R.state=kt.FADING_IN,i.persistent||(this._mostRecentTransientRipple=R);let q=null;return!w&&(a||n.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let iA=()=>{q&&(q.fallbackTimer=null),clearTimeout(NA),this._finishRippleTransition(R)},kA=()=>this._destroyRipple(R),NA=setTimeout(kA,a+100);c.addEventListener("transitionend",iA),c.addEventListener("transitioncancel",kA),q={onTransitionEnd:iA,onTransitionCancel:kA,fallbackTimer:NA}}),this._activeRipples.set(R,q),(w||!a)&&this._finishRippleTransition(R),R}fadeOutRipple(t){if(t.state===kt.FADING_OUT||t.state===kt.HIDDEN)return;let A=t.element,i=v(v({},HQ),t.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",t.state=kt.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){let A=Wt(t);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,ZR.forEach(i=>{e._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(t){t.type==="mousedown"?this._onMousedown(t):t.type==="touchstart"?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{qR.forEach(A=>{this._triggerElement.addEventListener(A,this,PR)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===kt.FADING_IN?this._startFadeOutTransition(t):t.state===kt.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){let A=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=kt.VISIBLE,!i&&(!A||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){let A=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=kt.HIDDEN,A!==null&&(t.element.removeEventListener("transitionend",A.onTransitionEnd),t.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),t.element.remove()}_onMousedown(t){let A=Nm(t),i=this._lastTouchStartEvent&&Date.now(){let A=t.state===kt.VISIBLE||t.config.terminateOnPointerUp&&t.state===kt.FADING_IN;!t.config.persistent&&A&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let t=this._triggerElement;t&&(ZR.forEach(A=>e._eventManager.removeHandler(A,t,this)),this._pointerUpEventsRegistered&&(qR.forEach(A=>t.removeEventListener(A,this,PR)),this._pointerUpEventsRegistered=!1))}};function TT(e,t,A){let i=Math.max(Math.abs(e-A.left),Math.abs(e-A.right)),o=Math.max(Math.abs(t-A.top),Math.abs(t-A.bottom));return Math.sqrt(i*i+o*o)}var Jn=new b("mat-ripple-global-options"),vt=(()=>{class e{_elementRef=C(z);_animationMode=C(jA,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=C(AA),i=C(JA),o=C(Jn,{optional:!0}),n=C(RA);this._globalOptions=o||{},this._rippleRenderer=new hs(this,A,this._elementRef,i,n)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:v(v(v({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,o){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,v(v({},this.rippleConfig),o)):this._rippleRenderer.fadeInRipple(0,0,v(v({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mat-ripple-unbounded",o.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return e})(),ui=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,QA]})}return e})(),Jm=(()=>{class e{_animationMode=C(jA,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){i&2&&tA("mat-pseudo-checkbox-indeterminate",o.state==="indeterminate")("mat-pseudo-checkbox-checked",o.state==="checked")("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal",o.appearance==="minimal")("mat-pseudo-checkbox-full",o.appearance==="full")("_mat-animation-noopable",o._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,o){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return e})(),Hm=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA]})}return e})(),Tm=new b("MAT_OPTION_PARENT_COMPONENT"),Om=new b("MatOptgroup");var Ym=class{source;isUserInput;constructor(t,A=!1){this.source=t,this.isUserInput=A}},Hn=(()=>{class e{_element=C(z);_changeDetectorRef=C(DA);_parent=C(Tm,{optional:!0});group=C(Om,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=C(oe).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new Z;_text;_stateChanges=new J;constructor(){let A=C(Be);A.load(ze),A.load(MI),this._signalDisableRipple=!!this._parent&&bn(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let o=this._getHostElement();typeof o.focus=="function"&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!Te(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new Ym(this,A))}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-option"]],viewQuery:function(i,o){if(i&1&&IA(NT,7),i&2){let n;V(n=W())&&(o._text=n.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){i&1&&S("click",function(){return o._selectViaInteraction()})("keydown",function(g){return o._handleKeydown(g)}),i&2&&(bt("id",o.id),sA("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),tA("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",j]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:_T,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,o){i&1&&(KA(GT),L(0,LT,1,2,"mat-pseudo-checkbox",1),rA(1),E(2,"span",2,0),rA(4,1),d(),L(5,KT,1,1,"mat-pseudo-checkbox",3)(6,xT,2,1,"span",4),Y(7,"div",5)),i&2&&(_(o.multiple?0:-1),u(5),_(!o.multiple&&o.selected&&!o.hideSingleSelectionIndicator?5:-1),u(),_(o.group&&o.group._inert?6:-1),u(),N("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[Jm,vt],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return e})();function jR(e,t,A){if(A.length){let i=t.toArray(),o=A.toArray(),n=0;for(let g=0;gA+i?Math.max(0,e-i+t):A}var Pm=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[ui,QA,Hm]})}return e})(),VR={capture:!0},WR=["focus","mousedown","mouseenter","touchstart"],Lm="mat-ripple-loader-uninitialized",Km="mat-ripple-loader-class-name",zR="mat-ripple-loader-centered",JQ="mat-ripple-loader-disabled",Zm=(()=>{class e{_document=C(uA,{optional:!0});_animationMode=C(jA,{optional:!0});_globalRippleOptions=C(Jn,{optional:!0});_platform=C(JA);_ngZone=C(AA);_injector=C(RA);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of WR)this._document?.addEventListener(A,this._onInteraction,VR)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of WR)this._document?.removeEventListener(i,this._onInteraction,VR)}configureRipple(A,i){A.setAttribute(Lm,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(Km))&&A.setAttribute(Km,i.className||""),i.centered&&A.setAttribute(zR,""),i.disabled&&A.setAttribute(JQ,"")}setDisabled(A,i){let o=this._hosts.get(A);o?(o.target.rippleDisabled=i,!i&&!o.hasSetUpEvents&&(o.hasSetUpEvents=!0,o.renderer.setupTriggerEvents(A))):i?A.setAttribute(JQ,""):A.removeAttribute(JQ)}_onInteraction=A=>{let i=hi(A);if(i instanceof HTMLElement){let o=i.closest(`[${Lm}="${this._globalRippleOptions?.namespace??""}"]`);o&&this._createRipple(o)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(Km)),A.append(i);let o=this._animationMode==="NoopAnimations",n=this._globalRippleOptions,g=o?0:n?.animation?.enterDuration??HQ.enterDuration,r=o?0:n?.animation?.exitDuration??HQ.exitDuration,s={rippleDisabled:o||n?.disabled||A.hasAttribute(JQ),rippleConfig:{centered:A.hasAttribute(zR),terminateOnPointerUp:n?.terminateOnPointerUp,animation:{enterDuration:g,exitDuration:r}}},a=new hs(s,this._ngZone,i,this._platform,this._injector),c=!s.rippleDisabled;c&&a.setupTriggerEvents(A),this._hosts.set(A,{target:s,renderer:a,hasSetUpEvents:c}),A.removeAttribute(Lm)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ms=(()=>{class e{labelPosition;static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mdc-form-field--align-end",o.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:UT,ngContentSelectors:YT,decls:1,vars:0,template:function(i,o){i&1&&(KA(),rA(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return e})();var OT=["mat-button",""],qm=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],Vm=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var PT="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",ZT=["mat-fab",""],qT=["mat-mini-fab",""],VT='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',WT=["mat-icon-button",""],zT=["*"];var jT=new b("MAT_BUTTON_CONFIG");var XT=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],OQ=(()=>{class e{_elementRef=C(z);_ngZone=C(AA);_animationMode=C(jA,{optional:!0});_focusMonitor=C(at);_rippleLoader=C(Zm);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){C(Be).load(ze);let A=C(jT,{optional:!0}),i=this._elementRef.nativeElement,o=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:n,mdcClasses:g}of XT)i.hasAttribute(n)&&o.add(...g)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",j],disabled:[2,"disabled","disabled",j],ariaDisabled:[2,"aria-disabled","ariaDisabled",j],disabledInteractive:[2,"disabledInteractive","disabledInteractive",j]}})}return e})();var It=(()=>{class e extends OQ{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,o){i&2&&(sA("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled()),Ke(o.color?"mat-"+o.color:""),tA("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("_mat-animation-noopable",o._animationMode==="NoopAnimations")("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lA],attrs:OT,ngContentSelectors:Vm,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){i&1&&(KA(qm),Y(0,"span",0),rA(1),E(2,"span",1),rA(3,1),d(),rA(4,2),Y(5,"span",2)(6,"span",3)),i&2&&tA("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return e})();var Ak=new b("mat-mdc-fab-default-options",{providedIn:"root",factory:ek});function ek(){return{color:"accent"}}var TQ=ek(),tk=(()=>{class e extends OQ{_options=C(Ak,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||TQ,this.color=this._options.color||TQ.color}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,o){i&2&&(sA("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled()),Ke(o.color?"mat-"+o.color:""),tA("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("_mat-animation-noopable",o._animationMode==="NoopAnimations")("mat-unthemed",!o.color)("mat-mdc-button-base",!0)("mdc-fab--extended",o.extended)("mat-mdc-extended-fab",o.extended))},inputs:{extended:[2,"extended","extended",j]},exportAs:["matButton"],features:[lA],attrs:ZT,ngContentSelectors:Vm,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){i&1&&(KA(qm),Y(0,"span",0),rA(1),E(2,"span",1),rA(3,1),d(),rA(4,2),Y(5,"span",2)(6,"span",3)),i&2&&tA("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return e})(),ik=(()=>{class e extends OQ{_options=C(Ak,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||TQ,this.color=this._options.color||TQ.color}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,o){i&2&&(sA("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled()),Ke(o.color?"mat-"+o.color:""),tA("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("_mat-animation-noopable",o._animationMode==="NoopAnimations")("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lA],attrs:qT,ngContentSelectors:Vm,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){i&1&&(KA(qm),Y(0,"span",0),rA(1),E(2,"span",1),rA(3,1),d(),rA(4,2),Y(5,"span",2)(6,"span",3)),i&2&&tA("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:[VT],encapsulation:2,changeDetection:0})}return e})();var ps=(()=>{class e extends OQ{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,o){i&2&&(sA("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled()),Ke(o.color?"mat-"+o.color:""),tA("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("_mat-animation-noopable",o._animationMode==="NoopAnimations")("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lA],attrs:WT,ngContentSelectors:zT,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){i&1&&(KA(),Y(0,"span",0),rA(1),Y(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',PT],encapsulation:2,changeDetection:0})}return e})();var Tg=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,ui,QA]})}return e})();var PQ=class{};function ZQ(e){return e&&typeof e.connect=="function"&&!(e instanceof En)}var Ds=function(e){return e[e.REPLACED=0]="REPLACED",e[e.INSERTED=1]="INSERTED",e[e.MOVED=2]="MOVED",e[e.REMOVED=3]="REMOVED",e}(Ds||{}),SI=new b("_ViewRepeater"),fs=class{applyChanges(t,A,i,o,n){t.forEachOperation((g,r,s)=>{let a,c;if(g.previousIndex==null){let h=i(g,r,s);a=A.createEmbeddedView(h.templateRef,h.context,h.index),c=Ds.INSERTED}else s==null?(A.remove(r),c=Ds.REMOVED):(a=A.get(r),A.move(a,s),c=Ds.MOVED);n&&n({context:a?.context,operation:c,record:g})})}detach(){}};var Tn=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new J;constructor(t=!1,A,i=!0,o){this._multiple=t,this._emitChanges=i,this.compareWith=o,A&&A.length&&(t?A.forEach(n=>this._markSelected(n)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...t){this._verifyValueAssignment(t);let A=this.selected,i=new Set(t);t.forEach(n=>this._markSelected(n)),A.filter(n=>!i.has(this._getConcreteValue(n,i))).forEach(n=>this._unmarkSelected(n));let o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();let A=this._hasQueuedChanges();return t&&this._emitChangeEvent(),A}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){t.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(t,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(t,i))return i;return t}else return t}};var ws=(()=>{class e{_listeners=[];notify(A,i){for(let o of this._listeners)o(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var $T=20,On=(()=>{class e{_ngZone=C(AA);_platform=C(JA);_renderer=C(dt).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new J;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=$T){return this._platform.isBrowser?new EA(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let o=A>0?this._scrolled.pipe(lr(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):gA()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let o=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(MA(n=>!n||o.indexOf(n)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((o,n)=>{this._scrollableContainsElement(n,A)&&i.push(n)}),i}_scrollableContainsElement(A,i){let o=Wt(i),n=A.getElementRef().nativeElement;do if(o==n)return!0;while(o=o.parentElement);return!1}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),gn=(()=>{class e{elementRef=C(z);scrollDispatcher=C(On);ngZone=C(AA);dir=C(Se,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new J;_renderer=C(ie);_cleanupScroll;_elementScrolled=new J;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,o=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=o?A.end:A.start),A.right==null&&(A.right=o?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),o&&cs()!=Wi.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),cs()==Wi.INVERTED?A.left=A.right:cs()==Wi.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;yQ()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",o="right",n=this.elementRef.nativeElement;if(A=="top")return n.scrollTop;if(A=="bottom")return n.scrollHeight-n.clientHeight-n.scrollTop;let g=this.dir&&this.dir.value=="rtl";return A=="start"?A=g?o:i:A=="end"&&(A=g?i:o),g&&cs()==Wi.INVERTED?A==i?n.scrollWidth-n.clientWidth-n.scrollLeft:n.scrollLeft:g&&cs()==Wi.NEGATED?A==i?n.scrollLeft+n.scrollWidth-n.clientWidth:-n.scrollLeft:A==i?n.scrollLeft:n.scrollWidth-n.clientWidth-n.scrollLeft}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return e})(),A2=20,Ri=(()=>{class e{_platform=C(JA);_listeners;_viewportSize;_change=new J;_document=C(uA,{optional:!0});constructor(){let A=C(AA),i=C(dt).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let o=n=>this._change.next(n);this._listeners=[i.listen("window","resize",o),i.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+o,right:A.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),o=A.documentElement,n=o.getBoundingClientRect(),g=-n.top||A.body.scrollTop||i.scrollY||o.scrollTop||0,r=-n.left||A.body.scrollLeft||i.scrollX||o.scrollLeft||0;return{top:g,left:r}}change(A=A2){return A>0?this._change.pipe(lr(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var nn=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})(),FI=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[Yn,nn,Yn,nn]})}return e})();var NI=class{_attachedHost;attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;t!=null&&(this._attachedHost=null,t.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},ji=class extends NI{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(t,A,i,o,n){super(),this.component=t,this.viewContainerRef=A,this.injector=i,this.projectableNodes=n}},zt=class extends NI{templateRef;viewContainerRef;context;injector;constructor(t,A,i,o){super(),this.templateRef=t,this.viewContainerRef=A,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(t,A=this.context){return this.context=A,super.attach(t)}detach(){return this.context=void 0,super.detach()}},Wm=class extends NI{element;constructor(t){super(),this.element=t instanceof z?t.nativeElement:t}},Pn=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(t){if(t instanceof ji)return this._attachedPortal=t,this.attachComponentPortal(t);if(t instanceof zt)return this._attachedPortal=t,this.attachTemplatePortal(t);if(this.attachDomPortal&&t instanceof Wm)return this._attachedPortal=t,this.attachDomPortal(t)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var qQ=class extends Pn{outletElement;_appRef;_defaultInjector;_document;constructor(t,A,i,o,n){super(),this.outletElement=t,this._appRef=i,this._defaultInjector=o,this._document=n}attachComponentPortal(t){let A;if(t.viewContainerRef){let i=t.injector||t.viewContainerRef.injector,o=i.get(Oo,null,{optional:!0})||void 0;A=t.viewContainerRef.createComponent(t.component,{index:t.viewContainerRef.length,injector:i,ngModuleRef:o,projectableNodes:t.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=Ec(t.component,{elementInjector:t.injector||this._defaultInjector||RA.NULL,environmentInjector:this._appRef.injector,projectableNodes:t.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=t,A}attachTemplatePortal(t){let A=t.viewContainerRef,i=A.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=A.indexOf(i);o!==-1&&A.remove(o)}),this._attachedPortal=t,i}attachDomPortal=t=>{let A=t.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}};var ok=(()=>{class e extends zt{constructor(){let A=C(ae),i=C(Ee);super(A,i)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[lA]})}return e})();var jt=(()=>{class e extends Pn{_moduleRef=C(Oo,{optional:!0});_document=C(uA);_viewContainerRef=C(Ee);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new Z;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,o=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=A,this._attachedRef=o,this.attached.emit(o),o}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let o=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(o,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{o.parentNode&&o.parentNode.replaceChild(i,o)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[lA]})}return e})();var Mo=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();var nk=yQ(),zm=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(t,A){this._viewportRuler=t,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Oe(-this._previousScrollPosition.left),t.style.top=Oe(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let t=this._document.documentElement,A=this._document.body,i=t.style,o=A.style,n=i.scrollBehavior||"",g=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),nk&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),nk&&(i.scrollBehavior=n,o.scrollBehavior=g)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var jm=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(t,A,i,o){this._scrollDispatcher=t,this._ngZone=A,this._viewportRuler=i,this._config=o}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(this._scrollSubscription)return;let t=this._scrollDispatcher.scrolled(0).pipe(MA(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},VQ=class{enable(){}disable(){}attach(){}};function Xm(e,t){return t.some(A=>{let i=e.bottomA.bottom,n=e.rightA.right;return i||o||n||g})}function gk(e,t){return t.some(A=>{let i=e.topA.bottom,n=e.leftA.right;return i||o||n||g})}var $m=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(t,A,i,o){this._scrollDispatcher=t,this._viewportRuler=A,this._ngZone=i,this._config=o}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(!this._scrollSubscription){let t=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(t).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();Xm(A,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},t2=(()=>{class e{_scrollDispatcher=C(On);_viewportRuler=C(Ri);_ngZone=C(AA);_document=C(uA);constructor(){}noop=()=>new VQ;close=A=>new jm(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new zm(this._viewportRuler,this._document);reposition=A=>new $m(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Zn=class{positionStrategy;scrollStrategy=new VQ;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(t){if(t){let A=Object.keys(t);for(let i of A)t[i]!==void 0&&(this[i]=t[i])}}};var Ap=class{connectionPair;scrollableViewProperties;constructor(t,A){this.connectionPair=t,this.scrollableViewProperties=A}};var Bk=(()=>{class e{_attachedOverlays=[];_document=C(uA);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),i2=(()=>{class e extends Bk{_ngZone=C(AA);_renderer=C(dt).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let o=i.length-1;o>-1;o--)if(i[o]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[o]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),o2=(()=>{class e extends Bk{_platform=C(JA);_ngZone=C(AA,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=hi(A)};_clickListener=A=>{let i=hi(A),o=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let n=this._attachedOverlays.slice();for(let g=n.length-1;g>-1;g--){let r=n[g];if(r._outsidePointerEvents.observers.length<1||!r.hasAttached())continue;if(rk(r.overlayElement,i)||rk(r.overlayElement,o))break;let s=r._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>s.next(A)):s.next(A)}};static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function rk(e,t){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=t;for(;i;){if(i===e)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var ck=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return e})(),WQ=(()=>{class e{_platform=C(JA);_containerElement;_document=C(uA);_styleLoader=C(Be);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||Dm()){let o=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let n=0;n{let t=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(t,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),t.style.pointerEvents="none",t.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},ys=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new J;_attachments=new J;_detachments=new J;_positionStrategy;_scrollStrategy;_locationChanges=FA.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new J;_outsidePointerEvents=new J;_renders=new J;_afterRenderRef;_afterNextRenderRef;constructor(t,A,i,o,n,g,r,s,a,c=!1,h,p){this._portalOutlet=t,this._host=A,this._pane=i,this._config=o,this._ngZone=n,this._keyboardDispatcher=g,this._document=r,this._location=s,this._outsideClickDispatcher=a,this._animationsDisabled=c,this._injector=h,this._renderer=p,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy,this._afterRenderRef=Pt(()=>ya(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Le(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){let t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=v(v({},this._config),t),this._updateElementSize()}setDirection(t){this._config=fA(v({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){let t=this._config.direction;return t?typeof t=="string"?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let t=this._pane.style;t.width=Oe(this._config.width),t.height=Oe(this._config.height),t.minWidth=Oe(this._config.minWidth),t.minHeight=Oe(this._config.minHeight),t.maxWidth=Oe(this._config.maxWidth),t.maxHeight=Oe(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){let t="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new ep(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(t))}):this._backdropRef.element.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(t,A,i){let o=Es(A||[]).filter(n=>!!n);o.length&&(i?t.classList.add(...o):t.classList.remove(...o))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let t=this._renders.pipe(bA(Me(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){let t=this._scrollStrategy;t?.disable(),t?.detach?.()}},sk="cdk-overlay-connected-position-bounding-box",n2=/([A-Za-z%]+)$/,tp=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new J;_resizeSubscription=FA.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(t,A,i,o,n){this._viewportRuler=A,this._document=i,this._platform=o,this._overlayContainer=n,this.setOrigin(t)}attach(t){this._overlayRef&&this._overlayRef,this._validatePositions(),t.hostElement.classList.add(sk),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let t=this._originRect,A=this._overlayRect,i=this._viewportRect,o=this._containerRect,n=[],g;for(let r of this._preferredPositions){let s=this._getOriginPoint(t,o,r),a=this._getOverlayPoint(s,A,r),c=this._getOverlayFit(a,A,i,r);if(c.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(r,s);return}if(this._canFitWithFlexibleDimensions(c,a,i)){n.push({position:r,origin:s,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(s,r)});continue}(!g||g.overlayFit.visibleAreas&&(s=c,r=a)}this._isPushed=!1,this._applyPosition(r.position,r.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(g.position,g.originPoint);return}this._applyPosition(g.position,g.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Og(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(sk),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,A)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,t.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,A,i){let o;if(i.originX=="center")o=t.left+t.width/2;else{let g=this._isRtl()?t.right:t.left,r=this._isRtl()?t.left:t.right;o=i.originX=="start"?g:r}A.left<0&&(o-=A.left);let n;return i.originY=="center"?n=t.top+t.height/2:n=i.originY=="top"?t.top:t.bottom,A.top<0&&(n-=A.top),{x:o,y:n}}_getOverlayPoint(t,A,i){let o;i.overlayX=="center"?o=-A.width/2:i.overlayX==="start"?o=this._isRtl()?-A.width:0:o=this._isRtl()?0:-A.width;let n;return i.overlayY=="center"?n=-A.height/2:n=i.overlayY=="top"?0:-A.height,{x:t.x+o,y:t.y+n}}_getOverlayFit(t,A,i,o){let n=Ik(A),{x:g,y:r}=t,s=this._getOffset(o,"x"),a=this._getOffset(o,"y");s&&(g+=s),a&&(r+=a);let c=0-g,h=g+n.width-i.width,p=0-r,D=r+n.height-i.height,w=this._subtractOverflows(n.width,c,h),R=this._subtractOverflows(n.height,p,D),q=w*R;return{visibleArea:q,isCompletelyWithinViewport:n.width*n.height===q,fitsInViewportVertically:R===n.height,fitsInViewportHorizontally:w==n.width}}_canFitWithFlexibleDimensions(t,A,i){if(this._hasFlexibleDimensions){let o=i.bottom-A.y,n=i.right-A.x,g=ak(this._overlayRef.getConfig().minHeight),r=ak(this._overlayRef.getConfig().minWidth),s=t.fitsInViewportVertically||g!=null&&g<=o,a=t.fitsInViewportHorizontally||r!=null&&r<=n;return s&&a}return!1}_pushOverlayOnScreen(t,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};let o=Ik(A),n=this._viewportRect,g=Math.max(t.x+o.width-n.width,0),r=Math.max(t.y+o.height-n.height,0),s=Math.max(n.top-i.top-t.y,0),a=Math.max(n.left-i.left-t.x,0),c=0,h=0;return o.width<=n.width?c=a||-g:c=t.xw&&!this._isInitialRender&&!this._growAfterOpen&&(g=t.y-w/2)}let s=A.overlayX==="start"&&!o||A.overlayX==="end"&&o,a=A.overlayX==="end"&&!o||A.overlayX==="start"&&o,c,h,p;if(a)p=i.width-t.x+this._viewportMargin*2,c=t.x-this._viewportMargin;else if(s)h=t.x,c=i.right-t.x;else{let D=Math.min(i.right-t.x+i.left,t.x),w=this._lastBoundingBoxSize.width;c=D*2,h=t.x-D,c>w&&!this._isInitialRender&&!this._growAfterOpen&&(h=t.x-w/2)}return{top:g,left:h,bottom:r,right:p,width:c,height:n}}_setBoundingBoxStyles(t,A){let i=this._calculateBoundingBoxRect(t,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{let n=this._overlayRef.getConfig().maxHeight,g=this._overlayRef.getConfig().maxWidth;o.height=Oe(i.height),o.top=Oe(i.top),o.bottom=Oe(i.bottom),o.width=Oe(i.width),o.left=Oe(i.left),o.right=Oe(i.right),A.overlayX==="center"?o.alignItems="center":o.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?o.justifyContent="center":o.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",n&&(o.maxHeight=Oe(n)),g&&(o.maxWidth=Oe(g))}this._lastBoundingBoxSize=i,Og(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Og(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Og(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,A){let i={},o=this._hasExactPosition(),n=this._hasFlexibleDimensions,g=this._overlayRef.getConfig();if(o){let c=this._viewportRuler.getViewportScrollPosition();Og(i,this._getExactOverlayY(A,t,c)),Og(i,this._getExactOverlayX(A,t,c))}else i.position="static";let r="",s=this._getOffset(A,"x"),a=this._getOffset(A,"y");s&&(r+=`translateX(${s}px) `),a&&(r+=`translateY(${a}px)`),i.transform=r.trim(),g.maxHeight&&(o?i.maxHeight=Oe(g.maxHeight):n&&(i.maxHeight="")),g.maxWidth&&(o?i.maxWidth=Oe(g.maxWidth):n&&(i.maxWidth="")),Og(this._pane.style,i)}_getExactOverlayY(t,A,i){let o={top:"",bottom:""},n=this._getOverlayPoint(A,this._overlayRect,t);if(this._isPushed&&(n=this._pushOverlayOnScreen(n,this._overlayRect,i)),t.overlayY==="bottom"){let g=this._document.documentElement.clientHeight;o.bottom=`${g-(n.y+this._overlayRect.height)}px`}else o.top=Oe(n.y);return o}_getExactOverlayX(t,A,i){let o={left:"",right:""},n=this._getOverlayPoint(A,this._overlayRect,t);this._isPushed&&(n=this._pushOverlayOnScreen(n,this._overlayRect,i));let g;if(this._isRtl()?g=t.overlayX==="end"?"left":"right":g=t.overlayX==="end"?"right":"left",g==="right"){let r=this._document.documentElement.clientWidth;o.right=`${r-(n.x+this._overlayRect.width)}px`}else o.left=Oe(n.x);return o}_getScrollVisibility(){let t=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:gk(t,i),isOriginOutsideView:Xm(t,i),isOverlayClipped:gk(A,i),isOverlayOutsideView:Xm(A,i)}}_subtractOverflows(t,...A){return A.reduce((i,o)=>i-Math.max(o,0),t)}_getNarrowedViewportRect(){let t=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:t-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,A){return A==="x"?t.offsetX==null?this._offsetX:t.offsetX:t.offsetY==null?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&Es(t).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){let t=this._origin;if(t instanceof z)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();let A=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+A,height:i,width:A}}};function Og(e,t){for(let A in t)t.hasOwnProperty(A)&&(e[A]=t[A]);return e}function ak(e){if(typeof e!="number"&&e!=null){let[t,A]=e.split(n2);return!A||A==="px"?parseFloat(t):null}return e||null}function Ik(e){return{top:Math.floor(e.top),right:Math.floor(e.right),bottom:Math.floor(e.bottom),left:Math.floor(e.left),width:Math.floor(e.width),height:Math.floor(e.height)}}function g2(e,t){return e===t?!0:e.isOriginClipped===t.isOriginClipped&&e.isOriginOutsideView===t.isOriginOutsideView&&e.isOverlayClipped===t.isOverlayClipped&&e.isOverlayOutsideView===t.isOverlayOutsideView}var Ck="cdk-global-overlay-wrapper",ip=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(t){let A=t.getConfig();this._overlayRef=t,this._width&&!A.width&&t.updateSize({width:this._width}),this._height&&!A.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(Ck),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let t=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:n,maxWidth:g,maxHeight:r}=i,s=(o==="100%"||o==="100vw")&&(!g||g==="100%"||g==="100vw"),a=(n==="100%"||n==="100vh")&&(!r||r==="100%"||r==="100vh"),c=this._xPosition,h=this._xOffset,p=this._overlayRef.getConfig().direction==="rtl",D="",w="",R="";s?R="flex-start":c==="center"?(R="center",p?w=h:D=h):p?c==="left"||c==="end"?(R="flex-end",D=h):(c==="right"||c==="start")&&(R="flex-start",w=h):c==="left"||c==="start"?(R="flex-start",D=h):(c==="right"||c==="end")&&(R="flex-end",w=h),t.position=this._cssPosition,t.marginLeft=s?"0":D,t.marginTop=a?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=s?"0":w,A.justifyContent=R,A.alignItems=a?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let t=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(Ck),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},r2=(()=>{class e{_viewportRuler=C(Ri);_document=C(uA);_platform=C(JA);_overlayContainer=C(WQ);constructor(){}global(){return new ip}flexibleConnectedTo(A){return new tp(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ot=(()=>{class e{scrollStrategies=C(t2);_overlayContainer=C(WQ);_positionBuilder=C(r2);_keyboardDispatcher=C(i2);_injector=C(RA);_ngZone=C(AA);_document=C(uA);_directionality=C(Se);_location=C(ho);_outsideClickDispatcher=C(o2);_animationsModuleType=C(jA,{optional:!0});_idGenerator=C(oe);_renderer=C(dt).createRenderer(null,null);_appRef;_styleLoader=C(Be);constructor(){}create(A){this._styleLoader.load(ck);let i=this._createHostElement(),o=this._createPaneElement(i),n=this._createPortalOutlet(o),g=new Zn(A);return g.direction=g.direction||this._directionality.value,new ys(n,i,o,g,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(qe),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(gi)),new qQ(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),s2=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Qk=new b("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let e=C(ot);return()=>e.scrollStrategies.reposition()}}),GI=(()=>{class e{elementRef=C(z);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return e})(),op=(()=>{class e{_overlay=C(ot);_dir=C(Se,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=FA.EMPTY;_attachSubscription=FA.EMPTY;_detachSubscription=FA.EMPTY;_positionSubscription=FA.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=C(Qk);_disposeOnNavigation=!1;_ngZone=C(AA);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new Z;positionChange=new Z;attach=new Z;detach=new Z;overlayKeydown=new Z;overlayOutsideClick=new Z;constructor(){let A=C(ae),i=C(Ee);this._templatePortal=new zt(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=s2);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!Te(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let o=this._getOriginElement(),n=hi(i);(!o||o!==n&&!o.contains(n))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Zn({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof GI?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof GI?this.origin.elementRef.nativeElement:this.origin instanceof z?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(Sl(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",j],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",j],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",j],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",j],push:[2,"cdkConnectedOverlayPush","push",j],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",j]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[LA]})}return e})();function a2(e){return()=>e.scrollStrategies.reposition()}var I2={provide:Qk,deps:[ot],useFactory:a2},sn=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[ot,I2],imports:[Yn,Mo,FI,FI]})}return e})();var np=class{_box;_destroyed=new J;_resizeSubject=new J;_resizeObserver;_elementObservables=new Map;constructor(t){this._box=t,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new EA(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(MA(A=>A.some(i=>i.target===t)),Yo({bufferSize:1,refCount:!0}),bA(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},zQ=(()=>{class e{_cleanupErrorListener;_observers=new Map;_ngZone=C(AA);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new np(o)),this._observers.get(o).observe(A)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var HA=function(e){return e[e.State=0]="State",e[e.Transition=1]="Transition",e[e.Sequence=2]="Sequence",e[e.Group=3]="Group",e[e.Animate=4]="Animate",e[e.Keyframes=5]="Keyframes",e[e.Style=6]="Style",e[e.Trigger=7]="Trigger",e[e.Reference=8]="Reference",e[e.AnimateChild=9]="AnimateChild",e[e.AnimateRef=10]="AnimateRef",e[e.Query=11]="Query",e[e.Stagger=12]="Stagger",e}(HA||{}),ki="*";function Ro(e,t){return{type:HA.Trigger,name:e,definitions:t,options:{}}}function mi(e,t=null){return{type:HA.Animate,styles:t,timings:e}}function Ek(e,t=null){return{type:HA.Sequence,steps:e,options:t}}function Pe(e){return{type:HA.Style,styles:e,offset:null}}function vi(e,t,A){return{type:HA.State,name:e,styles:t,options:A}}function Xt(e,t,A=null){return{type:HA.Transition,expr:e,animation:t,options:A}}function gp(e=null){return{type:HA.AnimateChild,options:e}}function rp(e,t,A=null){return{type:HA.Query,selector:e,animation:t,options:A}}var bo=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(t=0,A=0){this.totalTime=t+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let A=t=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},Pg=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(t){this.players=t;let A=0,i=0,o=0,n=this.players.length;n==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(g=>{g.onDone(()=>{++A==n&&this._onFinish()}),g.onDestroy(()=>{++i==n&&this._onDestroy()}),g.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((g,r)=>Math.max(g,r.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let A=t*this.totalTime;this.players.forEach(i=>{let o=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(o)})}getPosition(){let t=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let A=t=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},Ms="!";var C2=["notch"],B2=["matFormFieldNotchedOutline",""],c2=["*"],Q2=["textField"],E2=["iconPrefixContainer"],l2=["textPrefixContainer"],d2=["iconSuffixContainer"],h2=["textSuffixContainer"],u2=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],m2=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function p2(e,t){e&1&&Y(0,"span",21)}function D2(e,t){if(e&1&&(E(0,"label",20),rA(1,1),L(2,p2,1,0,"span",21),d()),e&2){let A=f(2);N("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),sA("for",A._control.disableAutomaticLabeling?null:A._control.id),u(2),_(!A.hideRequiredMarker&&A._control.required?2:-1)}}function f2(e,t){if(e&1&&L(0,D2,3,5,"label",20),e&2){let A=f();_(A._hasFloatingLabel()?0:-1)}}function w2(e,t){e&1&&Y(0,"div",7)}function y2(e,t){}function M2(e,t){if(e&1&&L(0,y2,0,0,"ng-template",13),e&2){f(2);let A=He(1);N("ngTemplateOutlet",A)}}function b2(e,t){if(e&1&&(E(0,"div",9),L(1,M2,1,1,null,13),d()),e&2){let A=f();N("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),u(),_(A._forceDisplayInfixLabel()?-1:1)}}function R2(e,t){e&1&&(E(0,"div",10,2),rA(2,2),d())}function k2(e,t){e&1&&(E(0,"div",11,3),rA(2,3),d())}function v2(e,t){}function S2(e,t){if(e&1&&L(0,v2,0,0,"ng-template",13),e&2){f();let A=He(1);N("ngTemplateOutlet",A)}}function F2(e,t){e&1&&(E(0,"div",14,4),rA(2,4),d())}function N2(e,t){e&1&&(E(0,"div",15,5),rA(2,5),d())}function G2(e,t){e&1&&Y(0,"div",16)}function _2(e,t){if(e&1&&(E(0,"div",18),rA(1,6),d()),e&2){let A=f();N("@transitionMessages",A._subscriptAnimationState)}}function L2(e,t){if(e&1&&(E(0,"mat-hint",22),M(1),d()),e&2){let A=f(2);N("id",A._hintLabelId),u(),SA(A.hintLabel)}}function K2(e,t){if(e&1&&(E(0,"div",19),L(1,L2,2,2,"mat-hint",22),rA(2,7),Y(3,"div",23),rA(4,8),d()),e&2){let A=f();N("@transitionMessages",A._subscriptAnimationState),u(),_(A.hintLabel?1:-1)}}var XQ=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["mat-label"]]})}return e})(),x2=new b("MatError");var lk=(()=>{class e{align="start";id=C(oe).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,o){i&2&&(bt("id",o.id),sA("align",null),tA("mat-mdc-form-field-hint-end",o.align==="end"))},inputs:{align:"align",id:"id"}})}return e})(),U2=new b("MatPrefix");var fk=new b("MatSuffix"),wk=(()=>{class e{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[pA([{provide:fk,useExisting:e}])]})}return e})(),yk=new b("FloatingLabelParent"),dk=(()=>{class e{_elementRef=C(z);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=C(zQ);_ngZone=C(AA);_parent=C(yk);_resizeSubscription=new FA;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return Y2(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return e})();function Y2(e){let t=e;if(t.offsetParent!==null)return t.scrollWidth;let A=t.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var hk="mdc-line-ripple--active",jQ="mdc-line-ripple--deactivating",uk=(()=>{class e{_elementRef=C(z);_cleanupTransitionEnd;constructor(){let A=C(AA),i=C(ie);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(jQ),A.add(hk)}deactivate(){this._elementRef.nativeElement.classList.add(jQ)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,o=i.contains(jQ);A.propertyName==="opacity"&&o&&i.remove(hk,jQ)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return e})(),mk=(()=>{class e{_elementRef=C(z);_ngZone=C(AA);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(i&1&&IA(C2,5),i&2){let n;V(n=W())&&(o._notch=n.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mdc-notched-outline--notched",o.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:B2,ngContentSelectors:c2,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,o){i&1&&(KA(),Y(0,"div",1),E(1,"div",2,0),rA(3),d(),Y(4,"div",3))},encapsulation:2,changeDetection:0})}return e})(),J2={transitionMessages:Ro("transitionMessages",[vi("enter",Pe({opacity:1,transform:"translateY(0%)"})),Xt("void => enter",[Pe({opacity:0,transform:"translateY(-5px)"}),mi("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},_I=(()=>{class e{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e})}return e})();var LI=new b("MatFormField"),H2=new b("MAT_FORM_FIELD_DEFAULT_OPTIONS"),pk="fill",T2="auto",Dk="fixed",O2="translateY(-50%)",ko=(()=>{class e{_elementRef=C(z);_changeDetectorRef=C(DA);_dir=C(Se);_platform=C(JA);_idGenerator=C(oe);_defaults=C(H2,{optional:!0});_animationMode=C(jA,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=G0(XQ);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Ge(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||T2}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,o=A||this._defaults?.appearance||pk;this._appearance=o,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=pk;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||Dk}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||Dk}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new J;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=C(RA);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=zo(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,o="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(o+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(o+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(be([void 0,void 0]),CA(()=>[i.errorState,i.userAriaDescribedBy]),AB(),MA(([[n,g],[r,s]])=>n!==r||g!==s)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(bA(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Me(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),ya(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(bA(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=zo(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(n=>n.align==="start"):null,o=this._hintChildren?this._hintChildren.find(n=>n.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),o&&A.push(o.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,n=this._iconSuffixContainer?.nativeElement,g=this._textSuffixContainer?.nativeElement,r=i?.getBoundingClientRect().width??0,s=o?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=g?.getBoundingClientRect().width??0,h=this._dir.value==="rtl"?"-1":"1",p=`${r+s}px`,w=`calc(${h} * (${p} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( - --mat-mdc-form-field-label-transform, - ${O2} translateX(${w}) - )`;let R=r+s+a+c;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${R}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-form-field"]],contentQueries:function(i,o,n){if(i&1&&(tM(n,o._labelChild,XQ,5),qA(n,_I,5),qA(n,U2,5),qA(n,fk,5),qA(n,x2,5),qA(n,lk,5)),i&2){iM();let g;V(g=W())&&(o._formFieldControl=g.first),V(g=W())&&(o._prefixChildren=g),V(g=W())&&(o._suffixChildren=g),V(g=W())&&(o._errorChildren=g),V(g=W())&&(o._hintChildren=g)}},viewQuery:function(i,o){if(i&1&&(IA(Q2,5),IA(E2,5),IA(l2,5),IA(d2,5),IA(h2,5),IA(dk,5),IA(mk,5),IA(uk,5)),i&2){let n;V(n=W())&&(o._textField=n.first),V(n=W())&&(o._iconPrefixContainer=n.first),V(n=W())&&(o._textPrefixContainer=n.first),V(n=W())&&(o._iconSuffixContainer=n.first),V(n=W())&&(o._textSuffixContainer=n.first),V(n=W())&&(o._floatingLabel=n.first),V(n=W())&&(o._notchedOutline=n.first),V(n=W())&&(o._lineRipple=n.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,o){i&2&&tA("mat-mdc-form-field-label-always-float",o._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",o._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",o._hasIconSuffix)("mat-form-field-invalid",o._control.errorState)("mat-form-field-disabled",o._control.disabled)("mat-form-field-autofilled",o._control.autofilled)("mat-form-field-no-animations",o._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",o.appearance=="fill")("mat-form-field-appearance-outline",o.appearance=="outline")("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("mat-focused",o._control.focused)("mat-primary",o.color!=="accent"&&o.color!=="warn")("mat-accent",o.color==="accent")("mat-warn",o.color==="warn")("ng-untouched",o._shouldForward("untouched"))("ng-touched",o._shouldForward("touched"))("ng-pristine",o._shouldForward("pristine"))("ng-dirty",o._shouldForward("dirty"))("ng-valid",o._shouldForward("valid"))("ng-invalid",o._shouldForward("invalid"))("ng-pending",o._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[pA([{provide:LI,useExisting:e},{provide:yk,useExisting:e}])],ngContentSelectors:m2,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,o){if(i&1){let n=oA();KA(u2),L(0,f2,1,1,"ng-template",null,0,Na),E(2,"div",6,1),S("click",function(r){return K(n),x(o._control.onContainerClick(r))}),L(4,w2,1,0,"div",7),E(5,"div",8),L(6,b2,2,2,"div",9)(7,R2,3,0,"div",10)(8,k2,3,0,"div",11),E(9,"div",12),L(10,S2,1,1,null,13),rA(11),d(),L(12,F2,3,0,"div",14)(13,N2,3,0,"div",15),d(),L(14,G2,1,0,"div",16),d(),E(15,"div",17),L(16,_2,2,1,"div",18)(17,K2,5,2,"div",19),d()}if(i&2){let n;u(2),tA("mdc-text-field--filled",!o._hasOutline())("mdc-text-field--outlined",o._hasOutline())("mdc-text-field--no-label",!o._hasFloatingLabel())("mdc-text-field--disabled",o._control.disabled)("mdc-text-field--invalid",o._control.errorState),u(2),_(!o._hasOutline()&&!o._control.disabled?4:-1),u(2),_(o._hasOutline()?6:-1),u(),_(o._hasIconPrefix?7:-1),u(),_(o._hasTextPrefix?8:-1),u(2),_(!o._hasOutline()||o._forceDisplayInfixLabel()?10:-1),u(2),_(o._hasTextSuffix?12:-1),u(),_(o._hasIconSuffix?13:-1),u(),_(o._hasOutline()?-1:14),u(),tA("mat-mdc-form-field-subscript-dynamic-size",o.subscriptSizing==="dynamic"),u(),_((n=o._getDisplayedMessages())==="error"?16:n==="hint"?17:-1)}},dependencies:[dk,mk,Ua,uk,lk],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[J2.transitionMessages]},changeDetection:0})}return e})(),an=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,ls,QA]})}return e})();var P2=["trigger"],Z2=["panel"],q2=[[["mat-select-trigger"]],"*"],V2=["mat-select-trigger","*"];function W2(e,t){if(e&1&&(E(0,"span",4),M(1),d()),e&2){let A=f();u(),SA(A.placeholder)}}function z2(e,t){e&1&&rA(0)}function j2(e,t){if(e&1&&(E(0,"span",11),M(1),d()),e&2){let A=f(2);u(),SA(A.triggerValue)}}function X2(e,t){if(e&1&&(E(0,"span",5),L(1,z2,1,0)(2,j2,2,1,"span",11),d()),e&2){let A=f();u(),_(A.customTrigger?1:2)}}function $2(e,t){if(e&1){let A=oA();E(0,"div",12,1),S("@transformPanel.done",function(o){K(A);let n=f();return x(n._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){K(A);let n=f();return x(n._handleKeydown(o))}),rA(2,1),d()}if(e&2){let A=f();eM("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),N("ngClass",A.panelClass)("@transformPanel","showing"),sA("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var AO={transformPanelWrap:Ro("transformPanelWrap",[Xt("* => void",rp("@transformPanel",[gp()],{optional:!0}))]),transformPanel:Ro("transformPanel",[vi("void",Pe({opacity:0,transform:"scale(1, 0.8)"})),Xt("void => showing",mi("120ms cubic-bezier(0, 0, 0.2, 1)",Pe({opacity:1,transform:"scale(1, 1)"}))),Xt("* => void",mi("100ms linear",Pe({opacity:0})))])};var Mk=new b("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let e=C(ot);return()=>e.scrollStrategies.reposition()}});function eO(e){return()=>e.scrollStrategies.reposition()}var tO=new b("MAT_SELECT_CONFIG"),iO={provide:Mk,deps:[ot],useFactory:eO},oO=new b("MatSelectTrigger"),sp=class{source;value;constructor(t,A){this.source=t,this.value=A}},bs=(()=>{class e{_viewportRuler=C(Ri);_changeDetectorRef=C(DA);_elementRef=C(z);_dir=C(Se,{optional:!0});_idGenerator=C(oe);_parentFormField=C(LI,{optional:!0});ngControl=C(ci,{self:!0,optional:!0});_liveAnnouncer=C(UQ);_defaultOptions=C(tO,{optional:!0});_initialized=new J;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let o=this.panel.nativeElement,n=jR(A,this.options,this.optionGroups),g=i._getHostElement();A===0&&n===1?o.scrollTop=0:o.scrollTop=XR(g.offsetTop,g.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new sp(this,A)}_scrollStrategyFactory=C(Mk);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new J;_errorStateTracker;stateChanges=new J;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new J;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Bi.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=io(()=>{let A=this.options;return A?A.changes.pipe(be(A),ue(()=>Me(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe(ue(()=>this.optionSelectionChanges))});openedChange=new Z;_openedStream=this.openedChange.pipe(MA(A=>A),CA(()=>{}));_closedStream=this.openedChange.pipe(MA(A=>!A),CA(()=>{}));selectionChange=new Z;valueChange=new Z;constructor(){let A=C(us),i=C(gI,{optional:!0}),o=C(Sg,{optional:!0}),n=C(new Ve("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new Hg(A,this.ngControl,o,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=n==null?0:parseInt(n)||0,this.id=this.id}ngOnInit(){this._selectionModel=new Tn(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ui(),bA(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(bA(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(bA(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(be(null),bA(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?o.setAttribute("aria-labelledby",A):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&KQ(this._trackedModal,"aria-owns",i),Fm(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;KQ(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,o=i===40||i===38||i===37||i===39,n=i===13||i===32,g=this._keyManager;if(!g.isTyping()&&n&&!Te(A)||(this.multiple||A.altKey)&&o)A.preventDefault(),this.open();else if(!this.multiple){let r=this.selected;g.onKeydown(A);let s=this.selected;s&&r!==s&&this._liveAnnouncer.announce(s.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,o=A.keyCode,n=o===40||o===38,g=i.isTyping();if(n&&A.altKey)A.preventDefault(),this.close();else if(!g&&(o===13||o===32)&&i.activeItem&&!Te(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!g&&this._multiple&&o===65&&A.ctrlKey){A.preventDefault();let r=this.options.some(s=>!s.disabled&&!s.selected);this.options.forEach(s=>{s.disabled||(r?s.select():s.deselect())})}else{let r=i.activeItemIndex;i.onKeydown(A),this._multiple&&n&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==r&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(he(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return(o.value!=null||this.canSelectNullableOptions)&&this._compareWith(o.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof GI?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new GQ(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=Me(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(bA(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Me(...this.options.map(i=>i._stateChanges)).pipe(bA(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let o=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(o!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),o!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,A):A.indexOf(i)-A.indexOf(o)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(o=>o.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-select"]],contentQueries:function(i,o,n){if(i&1&&(qA(n,oO,5),qA(n,Hn,5),qA(n,Om,5)),i&2){let g;V(g=W())&&(o.customTrigger=g.first),V(g=W())&&(o.options=g),V(g=W())&&(o.optionGroups=g)}},viewQuery:function(i,o){if(i&1&&(IA(P2,5),IA(Z2,5),IA(op,5)),i&2){let n;V(n=W())&&(o.trigger=n.first),V(n=W())&&(o.panel=n.first),V(n=W())&&(o._overlayDir=n.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,o){i&1&&S("keydown",function(g){return o._handleKeydown(g)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),i&2&&(sA("id",o.id)("tabindex",o.disabled?-1:o.tabIndex)("aria-controls",o.panelOpen?o.id+"-panel":null)("aria-expanded",o.panelOpen)("aria-label",o.ariaLabel||null)("aria-required",o.required.toString())("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState)("aria-activedescendant",o._getAriaActiveDescendant()),tA("mat-mdc-select-disabled",o.disabled)("mat-mdc-select-invalid",o.errorState)("mat-mdc-select-required",o.required)("mat-mdc-select-empty",o.empty)("mat-mdc-select-multiple",o.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",j],disableRipple:[2,"disableRipple","disableRipple",j],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Ae(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",j],placeholder:"placeholder",required:[2,"required","required",j],multiple:[2,"multiple","multiple",j],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",j],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",Ae],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",j]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[pA([{provide:_I,useExisting:e},{provide:Tm,useExisting:e}]),LA],ngContentSelectors:V2,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,o){if(i&1){let n=oA();KA(q2),E(0,"div",2,0),S("click",function(){return K(n),x(o.open())}),E(3,"div",3),L(4,W2,2,1,"span",4)(5,X2,3,1,"span",5),d(),E(6,"div",6)(7,"div",7),We(),E(8,"svg",8),Y(9,"path",9),d()()()(),L(10,$2,3,9,"ng-template",10),S("backdropClick",function(){return K(n),x(o.close())})("attach",function(){return K(n),x(o._onAttached())})("detach",function(){return K(n),x(o.close())})}if(i&2){let n=He(1);u(3),sA("id",o._valueId),u(),_(o.empty?4:5),u(6),N("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||n)("cdkConnectedOverlayOpen",o.panelOpen)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)}},dependencies:[GI,op,Ci],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[AO.transformPanel]},changeDetection:0})}return e})();var AE=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[iO],imports:[sn,Pm,QA,nn,an,Pm,QA]})}return e})();var nO=["tooltip"],vk=20;var Sk=new b("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let e=C(ot);return()=>e.scrollStrategies.reposition({scrollThrottle:vk})}});function gO(e){return()=>e.scrollStrategies.reposition({scrollThrottle:vk})}var rO={provide:Sk,deps:[ot],useFactory:gO};function sO(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var aO=new b("mat-tooltip-default-options",{providedIn:"root",factory:sO});var Rk="tooltip-panel",kk=yo({passive:!0}),IO=8,CO=8,BO=24,cO=200,Rs=(()=>{class e{_elementRef=C(z);_ngZone=C(AA);_platform=C(JA);_ariaDescriber=C(YR);_focusMonitor=C(at);_dir=C(Se);_injector=C(RA);_defaultOptions=C(aO,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=QO;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Ge(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Ge(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=Rt(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=Rt(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new J;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=IO}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(bA(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{A.removeEventListener(i,o,kk)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let o=this._createOverlay(i);this._detach(),this._portal=this._portal||new ji(this._tooltipComponent,this._injector.get(Ee));let n=this._tooltipInstance=o.attach(this._portal).instance;n._triggerElement=this._elementRef.nativeElement,n._mouseLeaveHideDelay=this._hideDelay,n.afterHidden().pipe(bA(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),n.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let g=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&g._origin instanceof z)return this._overlayRef;this._detach()}let i=this._injector.get(On).getAncestorScrollContainers(this._elementRef),o=this._injector.get(ot),n=o.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return n.positionChanges.pipe(bA(this._destroyed)).subscribe(g=>{this._updateCurrentPositionClass(g.connectionPair),this._tooltipInstance&&g.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=o.create({direction:this._dir,positionStrategy:n,panelClass:`${this._cssClassPrefix}-${Rk}`,scrollStrategy:this._injector.get(Sk)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(bA(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(bA(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(bA(this._destroyed)).subscribe(g=>{this._isTooltipVisible()&&g.keyCode===27&&!Te(g)&&(g.preventDefault(),g.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(bA(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,o=this._getOrigin(),n=this._getOverlayPosition();i.withPositions([this._addOffset(v(v({},o.main),n.main)),this._addOffset(v(v({},o.fallback),n.fallback))])}_addOffset(A){let i=CO,o=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=o?-i:i:A.originX==="end"&&(A.offsetX=o?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,o;i=="above"||i=="below"?o={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?o={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(o={originX:"end",originY:"center"});let{x:n,y:g}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:n,originY:g}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,o;i=="above"?o={overlayX:"center",overlayY:"bottom"}:i=="below"?o={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?o={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(o={overlayX:"start",overlayY:"center"});let{x:n,y:g}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:n,overlayY:g}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Le(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:o,originY:n}=A,g;if(i==="center"?this._dir&&this._dir.value==="rtl"?g=o==="end"?"left":"right":g=o==="start"?"left":"right":g=i==="bottom"&&n==="top"?"above":"below",g!==this._currentPosition){let r=this._overlayRef;if(r){let s=`${this._cssClassPrefix}-${Rk}-`;r.removePanelClass(s+this._currentPosition),r.addPanelClass(s+g)}this._currentPosition=g}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let n=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,o)},this._defaultOptions?.touchLongPressShowDelay??n)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,kk)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(uA).elementFromPoint(A.clientX,A.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,o=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),(A==="on"||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||Le({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mat-mdc-tooltip-disabled",o.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return e})(),QO=(()=>{class e{_changeDetectorRef=C(DA);_elementRef=C(z);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new J;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=C(jA,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>BO&&A.width>=cO}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,o=this._showAnimation,n=this._hideAnimation;if(i.classList.remove(A?n:o),i.classList.add(A?o:n),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let g=getComputedStyle(i);(g.getPropertyValue("animation-duration")==="0s"||g.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(i&1&&IA(nO,7),i&2){let n;V(n=W())&&(o._tooltip=n.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,o){i&1&&S("mouseleave",function(g){return o._handleMouseLeave(g)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,o){if(i&1){let n=oA();E(0,"div",1,0),S("animationend",function(r){return K(n),x(o._handleAnimationEnd(r))}),E(2,"div",2),M(3),d()()}i&2&&(tA("mdc-tooltip--multiline",o._isMultiline),N("ngClass",o.tooltipClass),u(3),SA(o.message))},dependencies:[Ci],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return e})();var eE=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[rO],imports:[YQ,sn,QA,QA,nn]})}return e})();function EO(e,t){if(e&1&&(E(0,"mat-option",17),M(1),d()),e&2){let A=t.$implicit;N("value",A),u(),hA(" ",A," ")}}function lO(e,t){if(e&1){let A=oA();E(0,"mat-form-field",14)(1,"mat-select",16,0),S("selectionChange",function(o){K(A);let n=f(2);return x(n._changePageSize(o.value))}),ne(3,EO,2,2,"mat-option",17,le),d(),E(5,"div",18),S("click",function(){K(A);let o=He(2);return x(o.open())}),d()()}if(e&2){let A=f(2);N("appearance",A._formFieldAppearance)("color",A.color),u(),N("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),u(2),ge(A._displayedPageSizeOptions)}}function dO(e,t){if(e&1&&(E(0,"div",15),M(1),d()),e&2){let A=f(2);u(),SA(A.pageSize)}}function hO(e,t){if(e&1&&(E(0,"div",3)(1,"div",13),M(2),d(),L(3,lO,6,7,"mat-form-field",14)(4,dO,2,1,"div",15),d()),e&2){let A=f();u(),sA("id",A._pageSizeLabelId),u(),hA(" ",A._intl.itemsPerPageLabel," "),u(),_(A._displayedPageSizeOptions.length>1?3:-1),u(),_(A._displayedPageSizeOptions.length<=1?4:-1)}}function uO(e,t){if(e&1){let A=oA();E(0,"button",19),S("click",function(){K(A);let o=f();return x(o._buttonClicked(0,o._previousButtonsDisabled()))}),We(),E(1,"svg",8),Y(2,"path",20),d()()}if(e&2){let A=f();N("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),sA("aria-label",A._intl.firstPageLabel)}}function mO(e,t){if(e&1){let A=oA();E(0,"button",21),S("click",function(){K(A);let o=f();return x(o._buttonClicked(o.getNumberOfPages()-1,o._nextButtonsDisabled()))}),We(),E(1,"svg",8),Y(2,"path",22),d()()}if(e&2){let A=f();N("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),sA("aria-label",A._intl.lastPageLabel)}}var Zg=(()=>{class e{changes=new J;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,o)=>{if(o==0||i==0)return`0 of ${o}`;o=Math.max(o,0);let n=A*i,g=n{class e{_intl=C(Zg);_changeDetectorRef=C(DA);_formFieldAppearance;_pageSizeLabelId=C(oe).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new Ki(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>Ae(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new Z;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=C(wO,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:o,pageSizeOptions:n,hidePageSize:g,showFirstLastButtons:r}=i;o!=null&&(this._pageSize=o),n!=null&&(this._pageSizeOptions=n),g!=null&&(this.hidePageSize=g),r!=null&&(this.showFirstLastButtons=r)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",Ae],length:[2,"length","length",Ae],pageSize:[2,"pageSize","pageSize",Ae],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",j],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",j],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",j]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,o){i&1&&(E(0,"div",1)(1,"div",2),L(2,hO,5,4,"div",3),E(3,"div",4)(4,"div",5),M(5),d(),L(6,uO,3,4,"button",6),E(7,"button",7),S("click",function(){return o._buttonClicked(o.pageIndex-1,o._previousButtonsDisabled())}),We(),E(8,"svg",8),Y(9,"path",9),d()(),wg(),E(10,"button",10),S("click",function(){return o._buttonClicked(o.pageIndex+1,o._nextButtonsDisabled())}),We(),E(11,"svg",8),Y(12,"path",11),d()(),L(13,mO,3,4,"button",12),d()()()),i&2&&(u(2),_(o.hidePageSize?-1:2),u(3),hA(" ",o._intl.getRangeLabel(o.pageIndex,o.pageSize,o.length)," "),u(),_(o.showFirstLastButtons?6:-1),u(),N("matTooltip",o._intl.previousPageLabel)("matTooltipDisabled",o._previousButtonsDisabled())("disabled",o._previousButtonsDisabled()),sA("aria-label",o._intl.previousPageLabel),u(3),N("matTooltip",o._intl.nextPageLabel)("matTooltipDisabled",o._nextButtonsDisabled())("disabled",o._nextButtonsDisabled()),sA("aria-label",o._intl.nextPageLabel),u(3),_(o.showFirstLastButtons?13:-1))},dependencies:[ko,bs,Hn,ps,Rs],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return e})(),Nk=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[DO],imports:[Tg,AE,eE,ap]})}return e})();function MO(e,t){if(e&1){let A=oA();E(0,"div",1)(1,"button",2),S("click",function(){K(A);let o=f();return x(o.action())}),M(2),d()()}if(e&2){let A=f();u(2),hA(" ",A.data.action," ")}}var bO=["label"];function RO(e,t){}var kO=Math.pow(2,31)-1,KI=class{_overlayRef;instance;containerInstance;_afterDismissed=new J;_afterOpened=new J;_onAction=new J;_durationTimeoutId;_dismissedByAction=!1;constructor(t,A){this._overlayRef=A,this.containerInstance=t,t._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(t){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(t,kO))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Gk=new b("MatSnackBarData"),ks=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},vO=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return e})(),SO=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return e})(),FO=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return e})(),NO=(()=>{class e{snackBarRef=C(KI);data=C(Gk);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,o){i&1&&(E(0,"div",0),M(1),d(),L(2,MO,3,1,"div",1)),i&2&&(u(),hA(" ",o.data.message,` -`),u(),_(o.hasAction?2:-1))},dependencies:[It,vO,SO,FO],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return e})(),GO={snackBarState:Ro("state",[vi("void, hidden",Pe({transform:"scale(0.8)",opacity:0})),vi("visible",Pe({transform:"scale(1)",opacity:1})),Xt("* => visible",mi("150ms cubic-bezier(0, 0, 0.2, 1)")),Xt("* => void, * => hidden",mi("75ms cubic-bezier(0.4, 0.0, 1, 1)",Pe({opacity:0})))])},_O=(()=>{class e extends Pn{_ngZone=C(AA);_elementRef=C(z);_changeDetectorRef=C(DA);_platform=C(JA);snackBarConfig=C(ks);_document=C(uA);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new J;_onExit=new J;_onEnter=new J;_animationState="void";_live;_label;_role;_liveElementId=C(oe).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:o}=A;if((o==="void"&&i!=="void"||o==="hidden")&&this._completeExit(),o==="visible"){let n=this._onEnter;this._ngZone.run(()=>{n.next(),n.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(g=>A.classList.add(g)):A.classList.add(i)),this._exposeToModals();let o=this._label.nativeElement,n="mdc-snackbar__label";o.classList.toggle(n,!o.querySelector(`.${n}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{let i=A.getAttribute("aria-owns");if(i){let o=i.replace(this._liveElementId,"").trim();o.length>0?A.setAttribute("aria-owns",o):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(o=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(i&1&&(IA(jt,7),IA(bO,7)),i&2){let n;V(n=W())&&(o._portalOutlet=n.first),V(n=W())&&(o._label=n.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,o){i&1&&nu("@state.done",function(g){return o.onAnimationEnd(g)}),i&2&&ou("@state",o._animationState)},features:[lA],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){i&1&&(E(0,"div",1)(1,"div",2,0)(3,"div",3),L(4,RO,0,0,"ng-template",4),d(),Y(5,"div"),d()()),i&2&&(u(5),sA("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[jt],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[GO.snackBarState]}})}return e})();function LO(){return new ks}var KO=new b("mat-snack-bar-default-options",{providedIn:"root",factory:LO}),_k=(()=>{class e{_overlay=C(ot);_live=C(UQ);_injector=C(RA);_breakpointObserver=C(RQ);_parentSnackBar=C(e,{optional:!0,skipSelf:!0});_defaultConfig=C(KO);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=NO;snackBarContainerComponent=_O;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",o){let n=v(v({},this._defaultConfig),o);return n.data={message:A,action:i},n.announcementMessage===A&&(n.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,n)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let o=i&&i.viewContainerRef&&i.viewContainerRef.injector,n=RA.create({parent:o||this._injector,providers:[{provide:ks,useValue:i}]}),g=new ji(this.snackBarContainerComponent,i.viewContainerRef,n),r=A.attach(g);return r.instance.snackBarConfig=i,r.instance}_attach(A,i){let o=v(v(v({},new ks),this._defaultConfig),i),n=this._createOverlay(o),g=this._attachSnackBarContainer(n,o),r=new KI(g,n);if(A instanceof ae){let s=new zt(A,null,{$implicit:o.data,snackBarRef:r});r.instance=g.attachTemplatePortal(s)}else{let s=this._createInjector(o,r),a=new ji(A,void 0,s),c=g.attachComponentPortal(a);r.instance=c.instance}return this._breakpointObserver.observe(NR.HandsetPortrait).pipe(bA(n.detachments())).subscribe(s=>{n.overlayElement.classList.toggle(this.handsetCssClass,s.matches)}),o.announcementMessage&&g._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(r,o),this._openedSnackBarRef=r,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new Zn;i.direction=A.direction;let o=this._overlay.position().global(),n=A.direction==="rtl",g=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!n||A.horizontalPosition==="end"&&n,r=!g&&A.horizontalPosition!=="center";return g?o.left("0"):r?o.right("0"):o.centerHorizontally(),A.verticalPosition==="top"?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(A,i){let o=A&&A.viewContainerRef&&A.viewContainerRef.injector;return RA.create({parent:o||this._injector,providers:[{provide:KI,useValue:i},{provide:Gk,useValue:A.data}]})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var xO=function(e={}){var t,A,i,o,n,g,r,s,a,c,h,p=e,D=new Promise((I,B)=>{t=I}),w=I=>console.log(I);function R(I){throw I}function q(){var I=h.buffer;i=new Int8Array(I),o=new Int16Array(I),g=new Uint8Array(I),n=new Int32Array(I),r=new Uint32Array(I),s=new Float32Array(I),a=new Float64Array(I),c=new BigInt64Array(I),new BigUint64Array(I)}p.agerrMessages=[],p.stderrMessages=[],A=I=>p.stderrMessages.push(I);var iA=typeof TextDecoder<"u"?new TextDecoder:void 0,kA=(I,B=0,l=NaN)=>{for(var m=B+l,y=B;I[y]&&!(y>=m);)++y;if(y-B>16&&I.buffer&&iA)return iA.decode(I.subarray(B,y));for(var k="";B>10,56320|1023&yA)}}else k+=String.fromCharCode((31&F)<<6|U)}else k+=String.fromCharCode(F)}return k},NA=(I,B)=>I?kA(g,I,B):"";class fe{constructor(B){this.excPtr=B,this.ptr=B-24}set_type(B){r[this.ptr+4>>2]=B}get_type(){return r[this.ptr+4>>2]}set_destructor(B){r[this.ptr+8>>2]=B}get_destructor(){return r[this.ptr+8>>2]}set_caught(B){B=B?1:0,i[this.ptr+12]=B}get_caught(){return i[this.ptr+12]!=0}set_rethrown(B){B=B?1:0,i[this.ptr+13]=B}get_rethrown(){return i[this.ptr+13]!=0}init(B,l){this.set_adjusted_ptr(0),this.set_type(B),this.set_destructor(l)}set_adjusted_ptr(B){r[this.ptr+16>>2]=B}get_adjusted_ptr(){return r[this.ptr+16>>2]}}var ee={isAbs:I=>I.charAt(0)==="/",splitPath:I=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(I).slice(1),normalizeArray:(I,B)=>{for(var l=0,m=I.length-1;m>=0;m--){var y=I[m];y==="."?I.splice(m,1):y===".."?(I.splice(m,1),l++):l&&(I.splice(m,1),l--)}if(B)for(;l;l--)I.unshift("..");return I},normalize:I=>{var B=ee.isAbs(I),l=I.substr(-1)==="/";return(I=ee.normalizeArray(I.split("/").filter(m=>!!m),!B).join("/"))||B||(I="."),I&&l&&(I+="/"),(B?"/":"")+I},dirname:I=>{var B=ee.splitPath(I),l=B[0],m=B[1];return l||m?(m&&(m=m.substr(0,m.length-1)),l+m):"."},basename:I=>{if(I==="/")return"/";var B=(I=(I=ee.normalize(I)).replace(/\/$/,"")).lastIndexOf("/");return B===-1?I:I.substr(B+1)},join:(...I)=>ee.normalize(I.join("/")),join2:(I,B)=>ee.normalize(I+"/"+B)},je=I=>(je=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return B=>crypto.getRandomValues(B);R("initRandomDevice")})())(I),se={resolve:(...I)=>{for(var B="",l=!1,m=I.length-1;m>=-1&&!l;m--){var y=m>=0?I[m]:Q.cwd();if(typeof y!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!y)return"";B=y+"/"+B,l=ee.isAbs(y)}return(l?"/":"")+(B=ee.normalizeArray(B.split("/").filter(k=>!!k),!l).join("/"))||"."},relative:(I,B)=>{function l(yA){for(var GA=0;GA=0&&yA[wA]==="";wA--);return GA>wA?[]:yA.slice(GA,wA-GA+1)}I=se.resolve(I).substr(1),B=se.resolve(B).substr(1);for(var m=l(I.split("/")),y=l(B.split("/")),k=Math.min(m.length,y.length),F=k,U=0;U{for(var B=0,l=0;l=55296&&m<=57343?(B+=4,++l):B+=3}return B},eo=(I,B,l,m)=>{if(!(m>0))return 0;for(var y=l,k=l+m-1,F=0;F=55296&&U<=57343&&(U=65536+((1023&U)<<10)|1023&I.charCodeAt(++F)),U<=127){if(l>=k)break;B[l++]=U}else if(U<=2047){if(l+1>=k)break;B[l++]=192|U>>6,B[l++]=128|63&U}else if(U<=65535){if(l+2>=k)break;B[l++]=224|U>>12,B[l++]=128|U>>6&63,B[l++]=128|63&U}else{if(l+3>=k)break;B[l++]=240|U>>18,B[l++]=128|U>>12&63,B[l++]=128|U>>6&63,B[l++]=128|63&U}}return B[l]=0,l-y};function Ts(I,B,l){var m=l>0?l:Di(I)+1,y=new Array(m),k=eo(I,y,0,y.length);return B&&(y.length=k),y}var pt={ttys:[],init(){},shutdown(){},register(I,B){pt.ttys[I]={input:[],output:[],ops:B},Q.registerDevice(I,pt.stream_ops)},stream_ops:{open(I){var B=pt.ttys[I.node.rdev];if(!B)throw new Q.ErrnoError(43);I.tty=B,I.seekable=!1},close(I){I.tty.ops.fsync(I.tty)},fsync(I){I.tty.ops.fsync(I.tty)},read(I,B,l,m,y){if(!I.tty||!I.tty.ops.get_char)throw new Q.ErrnoError(60);for(var k=0,F=0;F(()=>{if(!gt.length){var B=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(B=window.prompt("Input: "))!==null&&(B+=` -`),!B)return null;gt=Ts(B,!0)}return gt.shift()})(),put_char(I,B){B===null||B===10?(w(kA(I.output)),I.output=[]):B!=0&&I.output.push(B)},fsync(I){I.output&&I.output.length>0&&(w(kA(I.output)),I.output=[])},ioctl_tcgets:I=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(I,B,l)=>0,ioctl_tiocgwinsz:I=>[24,80]},default_tty1_ops:{put_char(I,B){B===null||B===10?(A(kA(I.output)),I.output=[]):B!=0&&I.output.push(B)},fsync(I){I.output&&I.output.length>0&&(A(kA(I.output)),I.output=[])}}},or=(I,B)=>Math.ceil(I/B)*B,Os=I=>{I=or(I,65536);var B=tg(65536,I);return B&&((l,m)=>{g.fill(0,l,l+m)})(B,I),B},OA={ops_table:null,mount:I=>OA.createNode(null,"/",16895,0),createNode(I,B,l,m){if(Q.isBlkdev(l)||Q.isFIFO(l))throw new Q.ErrnoError(63);OA.ops_table||={dir:{node:{getattr:OA.node_ops.getattr,setattr:OA.node_ops.setattr,lookup:OA.node_ops.lookup,mknod:OA.node_ops.mknod,rename:OA.node_ops.rename,unlink:OA.node_ops.unlink,rmdir:OA.node_ops.rmdir,readdir:OA.node_ops.readdir,symlink:OA.node_ops.symlink},stream:{llseek:OA.stream_ops.llseek}},file:{node:{getattr:OA.node_ops.getattr,setattr:OA.node_ops.setattr},stream:{llseek:OA.stream_ops.llseek,read:OA.stream_ops.read,write:OA.stream_ops.write,allocate:OA.stream_ops.allocate,mmap:OA.stream_ops.mmap,msync:OA.stream_ops.msync}},link:{node:{getattr:OA.node_ops.getattr,setattr:OA.node_ops.setattr,readlink:OA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:OA.node_ops.getattr,setattr:OA.node_ops.setattr},stream:Q.chrdev_stream_ops}};var y=Q.createNode(I,B,l,m);return Q.isDir(y.mode)?(y.node_ops=OA.ops_table.dir.node,y.stream_ops=OA.ops_table.dir.stream,y.contents={}):Q.isFile(y.mode)?(y.node_ops=OA.ops_table.file.node,y.stream_ops=OA.ops_table.file.stream,y.usedBytes=0,y.contents=null):Q.isLink(y.mode)?(y.node_ops=OA.ops_table.link.node,y.stream_ops=OA.ops_table.link.stream):Q.isChrdev(y.mode)&&(y.node_ops=OA.ops_table.chrdev.node,y.stream_ops=OA.ops_table.chrdev.stream),y.timestamp=Date.now(),I&&(I.contents[B]=y,I.timestamp=y.timestamp),y},getFileDataAsTypedArray:I=>I.contents?I.contents.subarray?I.contents.subarray(0,I.usedBytes):new Uint8Array(I.contents):new Uint8Array(0),expandFileStorage(I,B){var l=I.contents?I.contents.length:0;if(!(l>=B)){B=Math.max(B,l*(l<1048576?2:1.125)>>>0),l!=0&&(B=Math.max(B,256));var m=I.contents;I.contents=new Uint8Array(B),I.usedBytes>0&&I.contents.set(m.subarray(0,I.usedBytes),0)}},resizeFileStorage(I,B){if(I.usedBytes!=B)if(B==0)I.contents=null,I.usedBytes=0;else{var l=I.contents;I.contents=new Uint8Array(B),l&&I.contents.set(l.subarray(0,Math.min(B,I.usedBytes))),I.usedBytes=B}},node_ops:{getattr(I){var B={};return B.dev=Q.isChrdev(I.mode)?I.id:1,B.ino=I.id,B.mode=I.mode,B.nlink=1,B.uid=0,B.gid=0,B.rdev=I.rdev,Q.isDir(I.mode)?B.size=4096:Q.isFile(I.mode)?B.size=I.usedBytes:Q.isLink(I.mode)?B.size=I.link.length:B.size=0,B.atime=new Date(I.timestamp),B.mtime=new Date(I.timestamp),B.ctime=new Date(I.timestamp),B.blksize=4096,B.blocks=Math.ceil(B.size/B.blksize),B},setattr(I,B){B.mode!==void 0&&(I.mode=B.mode),B.timestamp!==void 0&&(I.timestamp=B.timestamp),B.size!==void 0&&OA.resizeFileStorage(I,B.size)},lookup(I,B){throw Q.genericErrors[44]},mknod:(I,B,l,m)=>OA.createNode(I,B,l,m),rename(I,B,l){if(Q.isDir(I.mode)){var m;try{m=Q.lookupNode(B,l)}catch{}if(m)for(var y in m.contents)throw new Q.ErrnoError(55)}delete I.parent.contents[I.name],I.parent.timestamp=Date.now(),I.name=l,B.contents[l]=I,B.timestamp=I.parent.timestamp},unlink(I,B){delete I.contents[B],I.timestamp=Date.now()},rmdir(I,B){var l=Q.lookupNode(I,B);for(var m in l.contents)throw new Q.ErrnoError(55);delete I.contents[B],I.timestamp=Date.now()},readdir(I){var B=[".",".."];for(var l of Object.keys(I.contents))B.push(l);return B},symlink(I,B,l){var m=OA.createNode(I,B,41471,0);return m.link=l,m},readlink(I){if(!Q.isLink(I.mode))throw new Q.ErrnoError(28);return I.link}},stream_ops:{read(I,B,l,m,y){var k=I.node.contents;if(y>=I.node.usedBytes)return 0;var F=Math.min(I.node.usedBytes-y,m);if(F>8&&k.subarray)B.set(k.subarray(y,y+F),l);else for(var U=0;U0||l+B(OA.stream_ops.write(I,B,0,m,l,!1),0)}},cA=(I,B)=>{var l=0;return I&&(l|=365),B&&(l|=146),l},Q={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(I){this.name="ErrnoError",this.errno=I}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(I){this.node=I}get isRead(){return(2097155&this.flags)!=1}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(I){this.shared.flags=I}get position(){return this.shared.position}set position(I){this.shared.position=I}},FSNode:class{constructor(I,B,l,m){I||(I=this),this.parent=I,this.mount=I.mount,this.mounted=null,this.id=Q.nextInode++,this.name=B,this.mode=l,this.node_ops={},this.stream_ops={},this.rdev=m,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(I){I?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(I){I?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return Q.isDir(this.mode)}get isDevice(){return Q.isChrdev(this.mode)}},lookupPath(I,B={}){if(!(I=se.resolve(I)))return{path:"",node:null};if((B=Object.assign({follow_mount:!0,recurse_count:0},B)).recurse_count>8)throw new Q.ErrnoError(32);for(var l=I.split("/").filter(yA=>!!yA),m=Q.root,y="/",k=0;k40)throw new Q.ErrnoError(32)}}return{path:y,node:m}},getPath(I){for(var B;;){if(Q.isRoot(I)){var l=I.mount.mountpoint;return B?l[l.length-1]!=="/"?`${l}/${B}`:l+B:l}B=B?`${I.name}/${B}`:I.name,I=I.parent}},hashName(I,B){for(var l=0,m=0;m>>0)%Q.nameTable.length},hashAddNode(I){var B=Q.hashName(I.parent.id,I.name);I.name_next=Q.nameTable[B],Q.nameTable[B]=I},hashRemoveNode(I){var B=Q.hashName(I.parent.id,I.name);if(Q.nameTable[B]===I)Q.nameTable[B]=I.name_next;else for(var l=Q.nameTable[B];l;){if(l.name_next===I){l.name_next=I.name_next;break}l=l.name_next}},lookupNode(I,B){var l=Q.mayLookup(I);if(l)throw new Q.ErrnoError(l);for(var m=Q.hashName(I.id,B),y=Q.nameTable[m];y;y=y.name_next){var k=y.name;if(y.parent.id===I.id&&k===B)return y}return Q.lookup(I,B)},createNode(I,B,l,m){var y=new Q.FSNode(I,B,l,m);return Q.hashAddNode(y),y},destroyNode(I){Q.hashRemoveNode(I)},isRoot:I=>I===I.parent,isMountpoint:I=>!!I.mounted,isFile:I=>(61440&I)==32768,isDir:I=>(61440&I)==16384,isLink:I=>(61440&I)==40960,isChrdev:I=>(61440&I)==8192,isBlkdev:I=>(61440&I)==24576,isFIFO:I=>(61440&I)==4096,isSocket:I=>!(49152&~I),flagsToPermissionString(I){var B=["r","w","rw"][3&I];return 512&I&&(B+="w"),B},nodePermissions:(I,B)=>Q.ignorePermissions||(!B.includes("r")||292&I.mode)&&(!B.includes("w")||146&I.mode)&&(!B.includes("x")||73&I.mode)?0:2,mayLookup(I){if(!Q.isDir(I.mode))return 54;var B=Q.nodePermissions(I,"x");return B||(I.node_ops.lookup?0:2)},mayCreate(I,B){try{return Q.lookupNode(I,B),20}catch{}return Q.nodePermissions(I,"wx")},mayDelete(I,B,l){var m;try{m=Q.lookupNode(I,B)}catch(k){return k.errno}var y=Q.nodePermissions(I,"wx");if(y)return y;if(l){if(!Q.isDir(m.mode))return 54;if(Q.isRoot(m)||Q.getPath(m)===Q.cwd())return 10}else if(Q.isDir(m.mode))return 31;return 0},mayOpen:(I,B)=>I?Q.isLink(I.mode)?32:Q.isDir(I.mode)&&(Q.flagsToPermissionString(B)!=="r"||512&B)?31:Q.nodePermissions(I,Q.flagsToPermissionString(B)):44,MAX_OPEN_FDS:4096,nextfd(){for(var I=0;I<=Q.MAX_OPEN_FDS;I++)if(!Q.streams[I])return I;throw new Q.ErrnoError(33)},getStreamChecked(I){var B=Q.getStream(I);if(!B)throw new Q.ErrnoError(8);return B},getStream:I=>Q.streams[I],createStream:(I,B=-1)=>(I=Object.assign(new Q.FSStream,I),B==-1&&(B=Q.nextfd()),I.fd=B,Q.streams[B]=I,I),closeStream(I){Q.streams[I]=null},dupStream(I,B=-1){var l=Q.createStream(I,B);return l.stream_ops?.dup?.(l),l},chrdev_stream_ops:{open(I){var B=Q.getDevice(I.node.rdev);I.stream_ops=B.stream_ops,I.stream_ops.open?.(I)},llseek(){throw new Q.ErrnoError(70)}},major:I=>I>>8,minor:I=>255&I,makedev:(I,B)=>I<<8|B,registerDevice(I,B){Q.devices[I]={stream_ops:B}},getDevice:I=>Q.devices[I],getMounts(I){for(var B=[],l=[I];l.length;){var m=l.pop();B.push(m),l.push(...m.mounts)}return B},syncfs(I,B){typeof I=="function"&&(B=I,I=!1),Q.syncFSRequests++,Q.syncFSRequests>1&&A(`warning: ${Q.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var l=Q.getMounts(Q.root.mount),m=0;function y(F){return Q.syncFSRequests--,B(F)}function k(F){if(F)return k.errored?void 0:(k.errored=!0,y(F));++m>=l.length&&y(null)}l.forEach(F=>{if(!F.type.syncfs)return k(null);F.type.syncfs(F,I,k)})},mount(I,B,l){var m,y=l==="/",k=!l;if(y&&Q.root)throw new Q.ErrnoError(10);if(!y&&!k){var F=Q.lookupPath(l,{follow_mount:!1});if(l=F.path,m=F.node,Q.isMountpoint(m))throw new Q.ErrnoError(10);if(!Q.isDir(m.mode))throw new Q.ErrnoError(54)}var U={type:I,opts:B,mountpoint:l,mounts:[]},BA=I.mount(U);return BA.mount=U,U.root=BA,y?Q.root=BA:m&&(m.mounted=U,m.mount&&m.mount.mounts.push(U)),BA},unmount(I){var B=Q.lookupPath(I,{follow_mount:!1});if(!Q.isMountpoint(B.node))throw new Q.ErrnoError(28);var l=B.node,m=l.mounted,y=Q.getMounts(m);Object.keys(Q.nameTable).forEach(F=>{for(var U=Q.nameTable[F];U;){var BA=U.name_next;y.includes(U.mount)&&Q.destroyNode(U),U=BA}}),l.mounted=null;var k=l.mount.mounts.indexOf(m);l.mount.mounts.splice(k,1)},lookup:(I,B)=>I.node_ops.lookup(I,B),mknod(I,B,l){var m=Q.lookupPath(I,{parent:!0}).node,y=ee.basename(I);if(!y||y==="."||y==="..")throw new Q.ErrnoError(28);var k=Q.mayCreate(m,y);if(k)throw new Q.ErrnoError(k);if(!m.node_ops.mknod)throw new Q.ErrnoError(63);return m.node_ops.mknod(m,y,B,l)},create:(I,B)=>(B=B!==void 0?B:438,B&=4095,B|=32768,Q.mknod(I,B,0)),mkdir:(I,B)=>(B=B!==void 0?B:511,B&=1023,B|=16384,Q.mknod(I,B,0)),mkdirTree(I,B){for(var l=I.split("/"),m="",y=0;y(l===void 0&&(l=B,B=438),B|=8192,Q.mknod(I,B,l)),symlink(I,B){if(!se.resolve(I))throw new Q.ErrnoError(44);var l=Q.lookupPath(B,{parent:!0}).node;if(!l)throw new Q.ErrnoError(44);var m=ee.basename(B),y=Q.mayCreate(l,m);if(y)throw new Q.ErrnoError(y);if(!l.node_ops.symlink)throw new Q.ErrnoError(63);return l.node_ops.symlink(l,m,I)},rename(I,B){var l,m,y=ee.dirname(I),k=ee.dirname(B),F=ee.basename(I),U=ee.basename(B);if(l=Q.lookupPath(I,{parent:!0}).node,m=Q.lookupPath(B,{parent:!0}).node,!l||!m)throw new Q.ErrnoError(44);if(l.mount!==m.mount)throw new Q.ErrnoError(75);var BA,yA=Q.lookupNode(l,F),GA=se.relative(I,k);if(GA.charAt(0)!==".")throw new Q.ErrnoError(28);if((GA=se.relative(B,y)).charAt(0)!==".")throw new Q.ErrnoError(55);try{BA=Q.lookupNode(m,U)}catch{}if(yA!==BA){var wA=Q.isDir(yA.mode),dA=Q.mayDelete(l,F,wA);if(dA)throw new Q.ErrnoError(dA);if(dA=BA?Q.mayDelete(m,U,wA):Q.mayCreate(m,U))throw new Q.ErrnoError(dA);if(!l.node_ops.rename)throw new Q.ErrnoError(63);if(Q.isMountpoint(yA)||BA&&Q.isMountpoint(BA))throw new Q.ErrnoError(10);if(m!==l&&(dA=Q.nodePermissions(l,"w")))throw new Q.ErrnoError(dA);Q.hashRemoveNode(yA);try{l.node_ops.rename(yA,m,U),yA.parent=m}catch(mA){throw mA}finally{Q.hashAddNode(yA)}}},rmdir(I){var B=Q.lookupPath(I,{parent:!0}).node,l=ee.basename(I),m=Q.lookupNode(B,l),y=Q.mayDelete(B,l,!0);if(y)throw new Q.ErrnoError(y);if(!B.node_ops.rmdir)throw new Q.ErrnoError(63);if(Q.isMountpoint(m))throw new Q.ErrnoError(10);B.node_ops.rmdir(B,l),Q.destroyNode(m)},readdir(I){var B=Q.lookupPath(I,{follow:!0}).node;if(!B.node_ops.readdir)throw new Q.ErrnoError(54);return B.node_ops.readdir(B)},unlink(I){var B=Q.lookupPath(I,{parent:!0}).node;if(!B)throw new Q.ErrnoError(44);var l=ee.basename(I),m=Q.lookupNode(B,l),y=Q.mayDelete(B,l,!1);if(y)throw new Q.ErrnoError(y);if(!B.node_ops.unlink)throw new Q.ErrnoError(63);if(Q.isMountpoint(m))throw new Q.ErrnoError(10);B.node_ops.unlink(B,l),Q.destroyNode(m)},readlink(I){var B=Q.lookupPath(I).node;if(!B)throw new Q.ErrnoError(44);if(!B.node_ops.readlink)throw new Q.ErrnoError(28);return se.resolve(Q.getPath(B.parent),B.node_ops.readlink(B))},stat(I,B){var l=Q.lookupPath(I,{follow:!B}).node;if(!l)throw new Q.ErrnoError(44);if(!l.node_ops.getattr)throw new Q.ErrnoError(63);return l.node_ops.getattr(l)},lstat:I=>Q.stat(I,!0),chmod(I,B,l){var m;if(typeof I=="string"?m=Q.lookupPath(I,{follow:!l}).node:m=I,!m.node_ops.setattr)throw new Q.ErrnoError(63);m.node_ops.setattr(m,{mode:4095&B|-4096&m.mode,timestamp:Date.now()})},lchmod(I,B){Q.chmod(I,B,!0)},fchmod(I,B){var l=Q.getStreamChecked(I);Q.chmod(l.node,B)},chown(I,B,l,m){var y;if(typeof I=="string"?y=Q.lookupPath(I,{follow:!m}).node:y=I,!y.node_ops.setattr)throw new Q.ErrnoError(63);y.node_ops.setattr(y,{timestamp:Date.now()})},lchown(I,B,l){Q.chown(I,B,l,!0)},fchown(I,B,l){var m=Q.getStreamChecked(I);Q.chown(m.node,B,l)},truncate(I,B){if(B<0)throw new Q.ErrnoError(28);var l;if(typeof I=="string"?l=Q.lookupPath(I,{follow:!0}).node:l=I,!l.node_ops.setattr)throw new Q.ErrnoError(63);if(Q.isDir(l.mode))throw new Q.ErrnoError(31);if(!Q.isFile(l.mode))throw new Q.ErrnoError(28);var m=Q.nodePermissions(l,"w");if(m)throw new Q.ErrnoError(m);l.node_ops.setattr(l,{size:B,timestamp:Date.now()})},ftruncate(I,B){var l=Q.getStreamChecked(I);if(!(2097155&l.flags))throw new Q.ErrnoError(28);Q.truncate(l.node,B)},utime(I,B,l){var m=Q.lookupPath(I,{follow:!0}).node;m.node_ops.setattr(m,{timestamp:Math.max(B,l)})},open(I,B,l){if(I==="")throw new Q.ErrnoError(44);var m;if(l=64&(B=typeof B=="string"?(U=>{var BA={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[U];if(BA===void 0)throw new Error(`Unknown file open mode: ${U}`);return BA})(B):B)?4095&(l=l===void 0?438:l)|32768:0,typeof I=="object")m=I;else{I=ee.normalize(I);try{m=Q.lookupPath(I,{follow:!(131072&B)}).node}catch{}}var y=!1;if(64&B)if(m){if(128&B)throw new Q.ErrnoError(20)}else m=Q.mknod(I,l,0),y=!0;if(!m)throw new Q.ErrnoError(44);if(Q.isChrdev(m.mode)&&(B&=-513),65536&B&&!Q.isDir(m.mode))throw new Q.ErrnoError(54);if(!y){var k=Q.mayOpen(m,B);if(k)throw new Q.ErrnoError(k)}512&B&&!y&&Q.truncate(m,0),B&=-131713;var F=Q.createStream({node:m,path:Q.getPath(m),flags:B,seekable:!0,position:0,stream_ops:m.stream_ops,ungotten:[],error:!1});return F.stream_ops.open&&F.stream_ops.open(F),F},close(I){if(Q.isClosed(I))throw new Q.ErrnoError(8);I.getdents&&(I.getdents=null);try{I.stream_ops.close&&I.stream_ops.close(I)}catch(B){throw B}finally{Q.closeStream(I.fd)}I.fd=null},isClosed:I=>I.fd===null,llseek(I,B,l){if(Q.isClosed(I))throw new Q.ErrnoError(8);if(!I.seekable||!I.stream_ops.llseek)throw new Q.ErrnoError(70);if(l!=0&&l!=1&&l!=2)throw new Q.ErrnoError(28);return I.position=I.stream_ops.llseek(I,B,l),I.ungotten=[],I.position},read(I,B,l,m,y){if(m<0||y<0)throw new Q.ErrnoError(28);if(Q.isClosed(I))throw new Q.ErrnoError(8);if((2097155&I.flags)==1)throw new Q.ErrnoError(8);if(Q.isDir(I.node.mode))throw new Q.ErrnoError(31);if(!I.stream_ops.read)throw new Q.ErrnoError(28);var k=y!==void 0;if(k){if(!I.seekable)throw new Q.ErrnoError(70)}else y=I.position;var F=I.stream_ops.read(I,B,l,m,y);return k||(I.position+=F),F},write(I,B,l,m,y,k){if(m<0||y<0)throw new Q.ErrnoError(28);if(Q.isClosed(I))throw new Q.ErrnoError(8);if(!(2097155&I.flags))throw new Q.ErrnoError(8);if(Q.isDir(I.node.mode))throw new Q.ErrnoError(31);if(!I.stream_ops.write)throw new Q.ErrnoError(28);I.seekable&&1024&I.flags&&Q.llseek(I,0,2);var F=y!==void 0;if(F){if(!I.seekable)throw new Q.ErrnoError(70)}else y=I.position;var U=I.stream_ops.write(I,B,l,m,y,k);return F||(I.position+=U),U},allocate(I,B,l){if(Q.isClosed(I))throw new Q.ErrnoError(8);if(B<0||l<=0)throw new Q.ErrnoError(28);if(!(2097155&I.flags))throw new Q.ErrnoError(8);if(!Q.isFile(I.node.mode)&&!Q.isDir(I.node.mode))throw new Q.ErrnoError(43);if(!I.stream_ops.allocate)throw new Q.ErrnoError(138);I.stream_ops.allocate(I,B,l)},mmap(I,B,l,m,y){if(2&m&&!(2&y)&&(2097155&I.flags)!=2)throw new Q.ErrnoError(2);if((2097155&I.flags)==1)throw new Q.ErrnoError(2);if(!I.stream_ops.mmap)throw new Q.ErrnoError(43);if(!B)throw new Q.ErrnoError(28);return I.stream_ops.mmap(I,B,l,m,y)},msync:(I,B,l,m,y)=>I.stream_ops.msync?I.stream_ops.msync(I,B,l,m,y):0,ioctl(I,B,l){if(!I.stream_ops.ioctl)throw new Q.ErrnoError(59);return I.stream_ops.ioctl(I,B,l)},readFile(I,B={}){if(B.flags=B.flags||0,B.encoding=B.encoding||"binary",B.encoding!=="utf8"&&B.encoding!=="binary")throw new Error(`Invalid encoding type "${B.encoding}"`);var l,m=Q.open(I,B.flags),y=Q.stat(I).size,k=new Uint8Array(y);return Q.read(m,k,0,y,0),B.encoding==="utf8"?l=kA(k):B.encoding==="binary"&&(l=k),Q.close(m),l},writeFile(I,B,l={}){l.flags=l.flags||577;var m=Q.open(I,l.flags,l.mode);if(typeof B=="string"){var y=new Uint8Array(Di(B)+1),k=eo(B,y,0,y.length);Q.write(m,y,0,k,void 0,l.canOwn)}else{if(!ArrayBuffer.isView(B))throw new Error("Unsupported data type");Q.write(m,B,0,B.byteLength,void 0,l.canOwn)}Q.close(m)},cwd:()=>Q.currentPath,chdir(I){var B=Q.lookupPath(I,{follow:!0});if(B.node===null)throw new Q.ErrnoError(44);if(!Q.isDir(B.node.mode))throw new Q.ErrnoError(54);var l=Q.nodePermissions(B.node,"x");if(l)throw new Q.ErrnoError(l);Q.currentPath=B.path},createDefaultDirectories(){Q.mkdir("/tmp"),Q.mkdir("/home"),Q.mkdir("/home/web_user")},createDefaultDevices(){Q.mkdir("/dev"),Q.registerDevice(Q.makedev(1,3),{read:()=>0,write:(m,y,k,F,U)=>F}),Q.mkdev("/dev/null",Q.makedev(1,3)),pt.register(Q.makedev(5,0),pt.default_tty_ops),pt.register(Q.makedev(6,0),pt.default_tty1_ops),Q.mkdev("/dev/tty",Q.makedev(5,0)),Q.mkdev("/dev/tty1",Q.makedev(6,0));var I=new Uint8Array(1024),B=0,l=()=>(B===0&&(B=je(I).byteLength),I[--B]);Q.createDevice("/dev","random",l),Q.createDevice("/dev","urandom",l),Q.mkdir("/dev/shm"),Q.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Q.mkdir("/proc");var I=Q.mkdir("/proc/self");Q.mkdir("/proc/self/fd"),Q.mount({mount(){var B=Q.createNode(I,"fd",16895,73);return B.node_ops={lookup(l,m){var y=+m,k=Q.getStreamChecked(y),F={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>k.path}};return F.parent=F,F}},B}},{},"/proc/self/fd")},createStandardStreams(I,B,l){I?Q.createDevice("/dev","stdin",I):Q.symlink("/dev/tty","/dev/stdin"),B?Q.createDevice("/dev","stdout",null,B):Q.symlink("/dev/tty","/dev/stdout"),l?Q.createDevice("/dev","stderr",null,l):Q.symlink("/dev/tty1","/dev/stderr"),Q.open("/dev/stdin",0),Q.open("/dev/stdout",1),Q.open("/dev/stderr",1)},staticInit(){[44].forEach(I=>{Q.genericErrors[I]=new Q.ErrnoError(I),Q.genericErrors[I].stack=""}),Q.nameTable=new Array(4096),Q.mount(OA,{},"/"),Q.createDefaultDirectories(),Q.createDefaultDevices(),Q.createSpecialDirectories(),Q.filesystems={MEMFS:OA}},init(I,B,l){Q.initialized=!0,Q.createStandardStreams(I,B,l)},quit(){Q.initialized=!1;for(var I=0;Ithis.length-1||wA<0)){var dA=wA%this.chunkSize,mA=wA/this.chunkSize|0;return this.getter(mA)[dA]}}setDataGetter(wA){this.getter=wA}cacheLength(){var wA=new XMLHttpRequest;if(wA.open("HEAD",l,!1),wA.send(null),!(wA.status>=200&&wA.status<300||wA.status===304))throw new Error("Couldn't load "+l+". Status: "+wA.status);var dA,mA=Number(wA.getResponseHeader("Content-length")),we=(dA=wA.getResponseHeader("Accept-Ranges"))&&dA==="bytes",ye=(dA=wA.getResponseHeader("Content-Encoding"))&&dA==="gzip",rt=1048576;we||(rt=mA);var Ue=this;Ue.setDataGetter(_i=>{var el=_i*rt,Zs=(_i+1)*rt-1;if(Zs=Math.min(Zs,mA-1),Ue.chunks[_i]===void 0&&(Ue.chunks[_i]=((tl,mC)=>{if(tl>mC)throw new Error("invalid range ("+tl+", "+mC+") or no bytes requested!");if(mC>mA-1)throw new Error("only "+mA+" bytes available! programmer error!");var ii=new XMLHttpRequest;if(ii.open("GET",l,!1),mA!==rt&&ii.setRequestHeader("Range","bytes="+tl+"-"+mC),ii.responseType="arraybuffer",ii.overrideMimeType&&ii.overrideMimeType("text/plain; charset=x-user-defined"),ii.send(null),!(ii.status>=200&&ii.status<300||ii.status===304))throw new Error("Couldn't load "+l+". Status: "+ii.status);return ii.response!==void 0?new Uint8Array(ii.response||[]):Ts(ii.responseText||"",!0)})(el,Zs)),Ue.chunks[_i]===void 0)throw new Error("doXHR failed!");return Ue.chunks[_i]}),!ye&&mA||(rt=mA=1,mA=this.getter(0).length,rt=mA,w("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=mA,this._chunkSize=rt,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var F={isDevice:!1,contents:new k}}else F={isDevice:!1,url:l};var U=Q.createFile(I,B,F,m,y);F.contents?U.contents=F.contents:F.url&&(U.contents=null,U.url=F.url),Object.defineProperties(U,{usedBytes:{get:function(){return this.contents.length}}});var BA={};function yA(GA,wA,dA,mA,we){var ye=GA.node.contents;if(we>=ye.length)return 0;var rt=Math.min(ye.length-we,mA);if(ye.slice)for(var Ue=0;Ue{var wA=U.stream_ops[GA];BA[GA]=(...dA)=>(Q.forceLoadFile(U),wA(...dA))}),BA.read=(GA,wA,dA,mA,we)=>(Q.forceLoadFile(U),yA(GA,wA,dA,mA,we)),BA.mmap=(GA,wA,dA,mA,we)=>{Q.forceLoadFile(U);var ye=Os(wA);if(!ye)throw new Q.ErrnoError(48);return yA(GA,i,ye,wA,dA),{ptr:ye,allocated:!0}},U.stream_ops=BA,U}},aA={DEFAULT_POLLMASK:5,calculateAt(I,B,l){if(ee.isAbs(B))return B;var m;if(I===-100?m=Q.cwd():m=aA.getStreamFromFD(I).path,B.length==0){if(!l)throw new Q.ErrnoError(44);return m}return ee.join2(m,B)},doStat(I,B,l){var m=I(B);n[l>>2]=m.dev,n[l+4>>2]=m.mode,r[l+8>>2]=m.nlink,n[l+12>>2]=m.uid,n[l+16>>2]=m.gid,n[l+20>>2]=m.rdev,c[l+24>>3]=BigInt(m.size),n[l+32>>2]=4096,n[l+36>>2]=m.blocks;var y=m.atime.getTime(),k=m.mtime.getTime(),F=m.ctime.getTime();return c[l+40>>3]=BigInt(Math.floor(y/1e3)),r[l+48>>2]=y%1e3*1e3*1e3,c[l+56>>3]=BigInt(Math.floor(k/1e3)),r[l+64>>2]=k%1e3*1e3*1e3,c[l+72>>3]=BigInt(Math.floor(F/1e3)),r[l+80>>2]=F%1e3*1e3*1e3,c[l+88>>3]=BigInt(m.ino),0},doMsync(I,B,l,m,y){if(!Q.isFile(B.node.mode))throw new Q.ErrnoError(43);if(2&m)return 0;var k=g.slice(I,I+l);Q.msync(B,k,y,l,m)},getStreamFromFD:I=>Q.getStreamChecked(I),varargs:void 0,getStr:I=>NA(I)};function te(){var I=n[+aA.varargs>>2];return aA.varargs+=4,I}var ke=te,fi=[0,31,60,91,121,152,182,213,244,274,305,335],Dt=[0,31,59,90,120,151,181,212,243,273,304,334],ti=I=>I<-9007199254740992||I>9007199254740992?NaN:Number(I),Ce=(I,B,l)=>eo(I,g,B,l),uC=I=>{var B=(I-h.buffer.byteLength+65535)/65536|0;try{return h.grow(B),q(),1}catch{}},Ps={},xe=()=>{if(!xe.strings){var I={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(var B in Ps)Ps[B]===void 0?delete I[B]:I[B]=Ps[B];var l=[];for(var B in I)l.push(`${B}=${I[B]}`);xe.strings=l}return xe.strings},_o=I=>{throw`exit(${I})`},ft=I=>UD(I);Q.createPreloadedFile=(I,B,l,m,y,k,F,U,BA,yA)=>{var GA=B?se.resolve(ee.join2(I,B)):I,wA=getUniqueRunDependency(`cp ${GA}`);function dA(mA){(function(we){yA?.(),U||((ye,rt,Ue,_i,el,Zs)=>{Q.createDataFile(ye,rt,Ue,_i,el,Zs)})(I,B,we,m,y,BA),k?.(),removeRunDependency(wA)})(mA)}addRunDependency(wA),typeof l=="string"?((mA,we,ye,rt)=>{var Ue=rt?"":getUniqueRunDependency(`al ${mA}`);readAsync(mA).then(_i=>{we(new Uint8Array(_i)),Ue&&removeRunDependency(Ue)},_i=>{if(!ye)throw`Loading data file "${mA}" failed.`;ye()}),Ue&&addRunDependency(Ue)})(l,dA,F):dA(l)},Q.staticInit();var tg,nr,UD,YD,PF={a:(I,B,l,m)=>{R(`Assertion failed: ${NA(I)}, at: `+[B?NA(B):"unknown filename",l,m?NA(m):"unknown function"])},b:(I,B,l)=>{throw new fe(I).init(B,l),I},x:function(I,B,l,m){try{if(B=aA.getStr(B),B=aA.calculateAt(I,B),-8&l)return-28;var y=Q.lookupPath(B,{follow:!0}).node;if(!y)return-44;var k="";return 4&l&&(k+="r"),2&l&&(k+="w"),1&l&&(k+="x"),k&&Q.nodePermissions(y,k)?-2:0}catch(F){if(Q===void 0||F.name!=="ErrnoError")throw F;return-F.errno}},f:function(I,B,l){aA.varargs=l;try{var m=aA.getStreamFromFD(I);switch(B){case 0:if((y=te())<0)return-28;for(;Q.streams[y];)y++;return Q.dupStream(m,y).fd;case 1:case 2:case 13:case 14:return 0;case 3:return m.flags;case 4:var y=te();return m.flags|=y,0;case 12:return y=ke(),o[y+0>>1]=2,0}return-28}catch(k){if(Q===void 0||k.name!=="ErrnoError")throw k;return-k.errno}},w:function(I,B){try{var l=aA.getStreamFromFD(I);return aA.doStat(Q.stat,l.path,B)}catch(m){if(Q===void 0||m.name!=="ErrnoError")throw m;return-m.errno}},j:function(I,B,l){aA.varargs=l;try{var m=aA.getStreamFromFD(I);switch(B){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return m.tty?0:-59;case 21505:if(!m.tty)return-59;if(m.tty.ops.ioctl_tcgets){var y=m.tty.ops.ioctl_tcgets(m),k=ke();n[k>>2]=y.c_iflag||0,n[k+4>>2]=y.c_oflag||0,n[k+8>>2]=y.c_cflag||0,n[k+12>>2]=y.c_lflag||0;for(var F=0;F<32;F++)i[k+F+17]=y.c_cc[F]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!m.tty)return-59;if(m.tty.ops.ioctl_tcsets){k=ke();var U=n[k>>2],BA=n[k+4>>2],yA=n[k+8>>2],GA=n[k+12>>2],wA=[];for(F=0;F<32;F++)wA.push(i[k+F+17]);return m.tty.ops.ioctl_tcsets(m.tty,B,{c_iflag:U,c_oflag:BA,c_cflag:yA,c_lflag:GA,c_cc:wA})}return 0;case 21519:return m.tty?(k=ke(),n[k>>2]=0,0):-59;case 21520:return m.tty?-28:-59;case 21531:return k=ke(),Q.ioctl(m,B,k);case 21523:if(!m.tty)return-59;if(m.tty.ops.ioctl_tiocgwinsz){var dA=m.tty.ops.ioctl_tiocgwinsz(m.tty);k=ke(),o[k>>1]=dA[0],o[k+2>>1]=dA[1]}return 0;default:return-28}}catch(mA){if(Q===void 0||mA.name!=="ErrnoError")throw mA;return-mA.errno}},u:function(I,B,l,m){try{B=aA.getStr(B);var y=256&m,k=4096&m;return m&=-6401,B=aA.calculateAt(I,B,k),aA.doStat(y?Q.lstat:Q.stat,B,l)}catch(F){if(Q===void 0||F.name!=="ErrnoError")throw F;return-F.errno}},l:function(I,B,l,m){aA.varargs=m;try{B=aA.getStr(B),B=aA.calculateAt(I,B);var y=m?te():0;return Q.open(B,l,y).fd}catch(k){if(Q===void 0||k.name!=="ErrnoError")throw k;return-k.errno}},v:function(I,B){try{return I=aA.getStr(I),aA.doStat(Q.stat,I,B)}catch(l){if(Q===void 0||l.name!=="ErrnoError")throw l;return-l.errno}},i:()=>{R("")},p:function(I,B){I=ti(I);var l=new Date(1e3*I);n[B>>2]=l.getSeconds(),n[B+4>>2]=l.getMinutes(),n[B+8>>2]=l.getHours(),n[B+12>>2]=l.getDate(),n[B+16>>2]=l.getMonth(),n[B+20>>2]=l.getFullYear()-1900,n[B+24>>2]=l.getDay();var m=0|(BA=>{var yA;return((yA=BA.getFullYear())%4!=0||yA%100==0&&yA%400!=0?Dt:fi)[BA.getMonth()]+BA.getDate()-1})(l);n[B+28>>2]=m,n[B+36>>2]=-60*l.getTimezoneOffset();var y=new Date(l.getFullYear(),0,1),k=new Date(l.getFullYear(),6,1).getTimezoneOffset(),F=y.getTimezoneOffset(),U=0|(k!=F&&l.getTimezoneOffset()==Math.min(F,k));n[B+32>>2]=U},m:function(I,B,l,m,y,k,F){y=ti(y);try{if(isNaN(y))return 61;var U=aA.getStreamFromFD(m),BA=Q.mmap(U,I,y,B,l),yA=BA.ptr;return n[k>>2]=BA.allocated,r[F>>2]=yA,0}catch(GA){if(Q===void 0||GA.name!=="ErrnoError")throw GA;return-GA.errno}},n:function(I,B,l,m,y,k){k=ti(k);try{var F=aA.getStreamFromFD(y);2&l&&aA.doMsync(I,F,B,m,k)}catch(U){if(Q===void 0||U.name!=="ErrnoError")throw U;return-U.errno}},q:(I,B,l,m)=>{var y=new Date().getFullYear(),k=new Date(y,0,1),F=new Date(y,6,1),U=k.getTimezoneOffset(),BA=F.getTimezoneOffset(),yA=Math.max(U,BA);r[I>>2]=60*yA,n[B>>2]=+(U!=BA);var GA=mA=>{var we=mA>=0?"-":"+",ye=Math.abs(mA);return`UTC${we}${String(Math.floor(ye/60)).padStart(2,"0")}${String(ye%60).padStart(2,"0")}`},wA=GA(U),dA=GA(BA);BADate.now(),k:I=>{var B=g.length,l=2147483648;if((I>>>=0)>l)return!1;for(var m=1;m<=4;m*=2){var y=B*(1+.2/m);y=Math.min(y,I+100663296);var k=Math.min(l,or(Math.max(I,y),65536));if(uC(k))return!0}return!1},s:(I,B)=>{var l=0;return xe().forEach((m,y)=>{var k=B+l;r[I+4*y>>2]=k,((F,U)=>{for(var BA=0;BA{var l=xe();r[I>>2]=l.length;var m=0;return l.forEach(y=>m+=y.length+1),r[B>>2]=m,0},h:_o,e:function(I){try{var B=aA.getStreamFromFD(I);return Q.close(B),0}catch(l){if(Q===void 0||l.name!=="ErrnoError")throw l;return l.errno}},d:function(I,B,l,m){try{var y=((k,F,U,BA)=>{for(var yA=0,GA=0;GA>2],dA=r[F+4>>2];F+=8;var mA=Q.read(k,i,wA,dA,BA);if(mA<0)return-1;if(yA+=mA,mA>2]=y,0}catch(k){if(Q===void 0||k.name!=="ErrnoError")throw k;return k.errno}},r:function(I,B,l,m){B=ti(B);try{if(isNaN(B))return 61;var y=aA.getStreamFromFD(I);return Q.llseek(y,B,l),c[m>>3]=BigInt(y.position),y.getdents&&B===0&&l===0&&(y.getdents=null),0}catch(k){if(Q===void 0||k.name!=="ErrnoError")throw k;return k.errno}},c:function(I,B,l,m){try{var y=((k,F,U,BA)=>{for(var yA=0,GA=0;GA>2],dA=r[F+4>>2];F+=8;var mA=Q.write(k,i,wA,dA,BA);if(mA<0)return-1;if(yA+=mA,mA>2]=y,0}catch(k){if(Q===void 0||k.name!=="ErrnoError")throw k;return k.errno}},o:function(I){return p.agerrMessages.push(NA(I)),0}};p.ccall=(I,B,l,m,y)=>{var k={string:dA=>{var mA=0;return dA!=null&&dA!==0&&(mA=(we=>{var ye=Di(we)+1,rt=ft(ye);return Ce(we,rt,ye),rt})(dA)),mA},array:dA=>{var mA,we,ye=ft(dA.length);return mA=dA,we=ye,i.set(mA,we),ye}},F=(dA=>p["_"+dA])(I),U=[],BA=0;if(m)for(var yA=0;yA>1];case"i32":return n[I>>2];case"i64":return c[I>>3];case"float":return s[I>>2];case"double":return a[I>>3];case"*":return r[I>>2];default:R(`invalid type for getValue: ${B}`)}},p.PATH=ee,p.UTF8ToString=NA,p.stringToUTF8=Ce,p.lengthBytesUTF8=Di,p.FS=Q;var ZF={a:PF};return WebAssembly.instantiate(p.wasm,ZF).then(I=>{var B=I.instance.exports;p._viz_set_y_invert=B.A,p._viz_set_reduce=B.B,p._viz_get_graphviz_version=B.C,p._free=B.D,p._malloc=B.E,p._viz_get_plugin_list=B.G,p._viz_create_graph=B.H,p._viz_read_one_graph=B.I,p._viz_string_dup=B.J,p._viz_string_dup_html=B.K,p._viz_string_free=B.L,p._viz_string_free_html=B.M,p._viz_add_node=B.N,p._viz_add_edge=B.O,p._viz_add_subgraph=B.P,p._viz_set_default_graph_attribute=B.Q,p._viz_set_default_node_attribute=B.R,p._viz_set_default_edge_attribute=B.S,p._viz_set_attribute=B.T,p._viz_free_graph=B.U,p._viz_create_context=B.V,p._viz_free_context=B.W,p._viz_layout=B.X,p._viz_free_layout=B.Y,p._viz_reset_errors=B.Z,p._viz_render=B._,tg=B.$,nr=B.aa,UD=B.ba,YD=B.ca,h=B.y,q(),function(l){l.z(),p.noFSInit||Q.initialized||Q.init(),Q.ignorePermissions=!1}(B),t(p)}),D},Lk=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function Kk(e,t){let A=e.ccall("viz_get_plugin_list","number",["string"],[t]);if(A==0)throw new Error(`couldn't get plugin list: ${t}`);let i=[],o,n=A;for(;o=e.getValue(n,"*");)i.push(e.UTF8ToString(o)),e.ccall("free","number",["number"],[o]),n+=4;return e.ccall("free","number",["number"],[A]),i}function xk(e,t,A,i){let o,n,g,r;try{if(e.agerrMessages=[],e.stderrMessages=[],r=function(a,c){return c?c.map(h=>{if(typeof h.name!="string")throw new Error("image name must be a string");if(typeof h.width!="number"&&typeof h.width!="string")throw new Error("image width must be a number or string");if(typeof h.height!="number"&&typeof h.height!="string")throw new Error("image height must be a number or string");let p=a.PATH.join("/",h.name),D=` - -`;return a.FS.createPath("/",a.PATH.dirname(p)),a.FS.writeFile(p,D),p}):[]}(e,i.images),typeof t=="string")o=function(a,c){let h;try{let p=a.lengthBytesUTF8(c);return h=a.ccall("malloc","number",["number"],[p+1]),a.stringToUTF8(c,h,p+1),a.ccall("viz_read_one_graph","number",["number"],[h])}finally{h&&a.ccall("free","number",["number"],[h])}}(e,t);else{if(typeof t!="object")throw new Error("input must be a string or object");o=function(a,c){let h=a.ccall("viz_create_graph","number",["string","number","number"],[c.name,c.directed===void 0||c.directed,c.strict!==void 0&&c.strict]);return Yk(a,h,c),h}(e,t)}if(o===0)return{status:"failure",output:void 0,errors:xI(e)};if(Jk(e,o,i),e.ccall("viz_set_y_invert","number",["number"],[i.yInvert?1:0]),e.ccall("viz_set_reduce","number",["number"],[i.reduce?1:0]),n=e.ccall("viz_create_context"),e.ccall("viz_reset_errors"),e.ccall("viz_layout","number",["number","number","string"],[n,o,i.engine])!==0)return{status:"failure",output:void 0,errors:xI(e)};let s={};for(let a of A){if(g=e.ccall("viz_render","number",["number","number","string"],[n,o,a]),g===0)return{status:"failure",output:void 0,errors:xI(e)};s[a]=e.UTF8ToString(g),e.ccall("free","number",["number"],[g]),g=0}return{status:"success",output:s,errors:xI(e)}}catch(s){if(/^exit\(\d+\)/.test(s))return{status:"failure",output:void 0,errors:xI(e)};throw s}finally{n&&o&&e.ccall("viz_free_layout","number",["number"],[n,o]),o&&e.ccall("viz_free_graph","number",["number"],[o]),n&&e.ccall("viz_free_context","number",["number"],[n]),g&&e.ccall("free","number",["number"],[g]),r&&function(s,a){for(let c of a)s.FS.analyzePath(c).exists&&s.FS.unlink(c)}(e,r)}}function xI(e){return function(t){let A=[],i;for(let o=0;o{for(let A=0;A{let o=e.ccall("viz_add_node","number",["number","string"],[t,String(i.name)]);i.attributes&&Uk(e,t,o,i.attributes)}),A.edges&&A.edges.forEach(i=>{let o=e.ccall("viz_add_edge","number",["number","string","string"],[t,String(i.tail),String(i.head)]);i.attributes&&Uk(e,t,o,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let o=e.ccall("viz_add_subgraph","number",["number","string"],[t,String(i.name)]);Yk(e,o,i)})}function Jk(e,t,A){if(A.graphAttributes)for(let[i,o]of Object.entries(A.graphAttributes))tE(e,t,o,n=>{e.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[t,i,n])});if(A.nodeAttributes)for(let[i,o]of Object.entries(A.nodeAttributes))tE(e,t,o,n=>{e.ccall("viz_set_default_node_attribute","number",["number","string","number"],[t,i,n])});if(A.edgeAttributes)for(let[i,o]of Object.entries(A.edgeAttributes))tE(e,t,o,n=>{e.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[t,i,n])})}function Uk(e,t,A,i){for(let[o,n]of Object.entries(i))tE(e,t,n,g=>{e.ccall("viz_set_attribute","number",["number","string","number"],[A,o,g])})}function tE(e,t,A,i){let o;if(o=typeof A=="object"&&"html"in A?e.ccall("viz_string_dup_html","number",["number","string"],[t,String(A.html)]):e.ccall("viz_string_dup","number",["number","string"],[t,String(A)]),o==0)throw new Error("couldn't dup string");i(o),typeof A=="object"&&"html"in A?e.ccall("viz_string_free_html","number",["number","number"],[t,o]):e.ccall("viz_string_free","number",["number","number"],[t,o])}var Ip=class{constructor(t){this.module=t}get graphvizVersion(){return function(t){let A=t.ccall("viz_get_graphviz_version","number",[],[]);return t.UTF8ToString(A)}(this.module)}get formats(){return Kk(this.module,"device")}get engines(){return Kk(this.module,"layout")}renderFormats(t,A,i={}){return xk(this.module,t,A,v({engine:"dot"},i))}render(t,A={}){let i;i=A.format===void 0?"dot":A.format;let o=xk(this.module,t,[i],v({engine:"dot"},A));return o.status==="success"&&(o.output=o.output[i]),o}renderString(t,A={}){let i=this.render(t,A);if(i.status!=="success")throw new Error(i.errors.find(o=>o.level=="error")?.message||"render failed");return i.output}renderSVGElement(t,A={}){let i=this.renderString(t,fA(v({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(t,A={}){let i=this.renderString(t,fA(v({},A),{format:"json"}));return JSON.parse(i)}};function UO(){let e=atob("AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBX9/f39/AX9gBH9/f38AYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgA39/fABgAn9/AX5gBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgA39/fwF+YAV/f39/fAF/YAt/f39/f39/f39/fwF/YAV/f35/fwBgBH9/fH8Bf2AFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgDH9/f39/f39/f39/fwF/YAV/f3x/fwF/YAd/f398fH9/AGAGf39/fH9/AGAGf39/f35/AX9gD39/f39/f39/f39/f39/fwBgCn9/f39/f39/f38AYAR/f39/AX5gBn98f39/fwF/YAd/f39/f35+AX9gBn9/f39+fgF/YAd/f39/fn9/AX9gBn9/f39/fgF/YAJ+fwBgBH9+f38Bf2AEf398fAF8YAV/f3x/fwBgCX9/f39/f39/fwF/YAZ/f398f38Bf2AEf398fABgBH5+fn4Bf2ACf30Bf2ACfn8Bf2AIf39/f3x8fH8AYAN/fX8AYAF8AX9gAn5+AX1gAn99AGAEf39/fgF+YAN/fn8Bf2AAAX5gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGAD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AWw2AhBByPYIKAIAQdXsAyACQRBqEB4aECcACxcAQQFBfyAAIAEgARA8IgAQogIgAEYbCyUBAX8gACgCLCIAQQBBgAEgACgCABEEACIABH8gACgCEAVBAAsLNAEBfwJAIAAgARDkASIBRQ0AIAAoAiwiACABQQggACgCABEEACIARQ0AIAAoAhAhAgsgAgtuAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AxAgAyACNgIMAkAgA0EQaiABIAIQtQsiAUEASARAIANBoIoLKAIAEHc2AgBBv4IEIAMQNgwBCyAAIANBEGoiABCfBSABEKICGiAAEGYLIANBIGokAAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhD7CyADQRBqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC6QBAQN/IwBBEGsiAiQAAkAgABAvIgMgACgCAEEDcSAAKQMIEJUKIgEEfyABKAIYBUEACyIBDQAgAygCTCIBKAIAKAIMIgMEQCABKAIIIAAoAgBBA3EgACkDCCADEScAIgENAQtBACEBIAAoAgBBA3FBAkYNACACIAApAwg3AwggAkElNgIAQbDeCiEBQbDeCkEgQegXIAIQoQEaCyACQRBqJAAgAQsPACAAIAEgAiADQQAQuwwLQwAgACAAIAGlIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsVACAAEKcBBEAgACgCBA8LIAAQogMLFAAgABAoBEAgAC0ADw8LIAAoAgQLVQACQCABBEAgAiABKAIITw0BIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoPC0H10wFByIABQT1BjyQQAAALQcm1A0HIgAFBPUGPJBAAAAsmACAAIAEQxwciAUUEQEEADwsgABDqASgCDCABKAIQQQJ0aigCAAsHAEEBEAcACy4AIAAtAA8iAEEBakH/AXFBEU8EQEHhvgNBr4EBQckAQdebARAAAAsgAEH/AUcLTQACQCAABEAgASAAKAIITw0BIAAoAgAgACgCBCABaiAAKAIMcEHIAGxqDwtB9dMBQciAAUE9QbooEAAAC0HJtQNByIABQT1BuigQAAALQwAgACAAIAGkIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsLACAAIAFBABD5Bgs8AQF/QQchAgJAAkACQCAAQShqDggCAgICAAAAAAELQQgPCyAAQX9HIAFBfU1yRQRAQQAPC0EdIQILIAILQgEBfyAAIAEQ5AEiAUUEQEEADwsgACgCNCABKAIgEOUBIAAoAjQiAkEAQYABIAIoAgARBAAgASAAKAI0ENYCNgIgC28BAn8gAC0AACICBH8CQANAIAEtAAAiA0UNAQJAIAIgA0YNACACEPoBIAEtAAAQ+gFGDQAgAC0AACECDAILIAFBAWohASAALQABIQIgAEEBaiEAIAINAAtBACECCyACBUEACxD6ASABLQAAEPoBawssAAJAAkACQCAAKAIAQQNxQQFrDgMBAAACCyAAKAIoIQALIAAoAhghAAsgAAtVAQJ/IAAgAUEwQQAgASgCAEEDcUEDRxtqKAIoEOQBIgMEQCAAKAI0IAMoAiAQ5QEgACgCNCICIAFBCCACKAIAEQQAIQIgAyAAKAI0ENYCNgIgCyACCyoBAX8jAEEQayIDJAAgAyACNgIMIAAgASACQYAEQQAQqwcaIANBEGokAAukAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgFEAAAAAAAA4D9kBEAgACABoEQAAAAAAADwv6AMAQsgACABoCIAIAFEAAAAAAAA4L9lRQ0AGiAARAAAAAAAAPA/oAsiAJogACACQgBTGwUgAAsLKQEBfyACBEAgACEDA0AgAyABOgAAIANBAWohAyACQQFrIgINAAsLIAALHAEBfyAAEKcBBEAgACgCACAAEO8CGhCmBQsgAAvHAQEDfyMAQRBrIgUkACAAEC8hBgJAAkAgACABQQAQbiIEIAJFcg0AIAJBARBBIgRFDQEgBCAGIAEQsQE2AgACQCAAKAIQIgJFBEAgBCAENgIEDAELIAIgAigCBCIGRgRAIAIgBDYCBCAEIAI2AgQMAQsgBCAGNgIEIAIgBDYCBAsgAC0AAEEEcQ0AIAAgBEEAEOQHCyADBEAgACABQQEQbhoLIAVBEGokACAEDwsgBSACNgIAQcj2CCgCAEHV7AMgBRAeGhAnAAsLACAAIAFBARD5Bgs5ACAARQRAQQAPCwJAAkACQCAAKAIAQQNxQQFrDgMBAAACCyAAKAIoKAIYDwsgACgCGA8LIAAoAkgLKQAgACgCMBC2A0EASARAQZ3OAUH3vwFBnwFB/TMQAAALIAAoAjAQtgMLiwgBC38gAEUEQCABEEkPCyABQUBPBEBBoIoLQTA2AgBBAA8LAn9BECABQQtqQXhxIAFBC0kbIQYgAEEIayIEKAIEIglBeHEhCAJAIAlBA3FFBEAgBkGAAkkNASAGQQRqIAhNBEAgBCECIAggBmtB0KILKAIAQQF0TQ0CC0EADAILIAQgCGohBwJAIAYgCE0EQCAIIAZrIgNBEEkNASAEIAYgCUEBcXJBAnI2AgQgBCAGaiICIANBA3I2AgQgByAHKAIEQQFyNgIEIAIgAxCzBQwBC0GInwsoAgAgB0YEQEH8ngsoAgAgCGoiCCAGTQ0CIAQgBiAJQQFxckECcjYCBCAEIAZqIgMgCCAGayICQQFyNgIEQfyeCyACNgIAQYifCyADNgIADAELQYSfCygCACAHRgRAQfieCygCACAIaiIDIAZJDQICQCADIAZrIgJBEE8EQCAEIAYgCUEBcXJBAnI2AgQgBCAGaiIIIAJBAXI2AgQgAyAEaiIDIAI2AgAgAyADKAIEQX5xNgIEDAELIAQgCUEBcSADckECcjYCBCADIARqIgIgAigCBEEBcjYCBEEAIQJBACEIC0GEnwsgCDYCAEH4ngsgAjYCAAwBCyAHKAIEIgNBAnENASADQXhxIAhqIgsgBkkNASALIAZrIQwgBygCDCEFAkAgA0H/AU0EQCAHKAIIIgIgBUYEQEHwngtB8J4LKAIAQX4gA0EDdndxNgIADAILIAIgBTYCDCAFIAI2AggMAQsgBygCGCEKAkAgBSAHRwRAIAcoAggiAiAFNgIMIAUgAjYCCAwBCwJAIAcoAhQiAgR/IAdBFGoFIAcoAhAiAkUNASAHQRBqCyEIA0AgCCEDIAIiBUEUaiEIIAIoAhQiAg0AIAVBEGohCCAFKAIQIgINAAsgA0EANgIADAELQQAhBQsgCkUNAAJAIAcoAhwiA0ECdEGgoQtqIgIoAgAgB0YEQCACIAU2AgAgBQ0BQfSeC0H0ngsoAgBBfiADd3E2AgAMAgsCQCAHIAooAhBGBEAgCiAFNgIQDAELIAogBTYCFAsgBUUNAQsgBSAKNgIYIAcoAhAiAgRAIAUgAjYCECACIAU2AhgLIAcoAhQiAkUNACAFIAI2AhQgAiAFNgIYCyAMQQ9NBEAgBCAJQQFxIAtyQQJyNgIEIAQgC2oiAiACKAIEQQFyNgIEDAELIAQgBiAJQQFxckECcjYCBCAEIAZqIgMgDEEDcjYCBCAEIAtqIgIgAigCBEEBcjYCBCADIAwQswULIAQhAgsgAgsiAgRAIAJBCGoPCyABEEkiBEUEQEEADwsgBCAAQXxBeCAAQQRrKAIAIgJBA3EbIAJBeHFqIgIgASABIAJLGxAfGiAAEBggBAtgAQJ/AkAgACgCPCIDRQ0AIAMoAmwiBEUNACAAKAIQKAKYAUUNACAALQCZAUEgcQRAIAAgASACIAQRBQAPCyAAIAAgASACQRAQGSACEJMCIgAgAiADKAJsEQUAIAAQGAsLFAAgACABQShB3ShBP0GUwgEQiwULfQEDfwJAAkAgACIBQQNxRQ0AIAEtAABFBEBBAA8LA0AgAUEBaiIBQQNxRQ0BIAEtAAANAAsMAQsDQCABIgJBBGohAUGAgoQIIAIoAgAiA2sgA3JBgIGChHhxQYCBgoR4Rg0ACwNAIAIiAUEBaiECIAEtAAANAAsLIAEgAGsLkAEBA38CQCAAECMiAiABSQRAIwBBEGsiBCQAIAEgAmsiAgRAIAIgABBWIgMgABAjIgFrSwRAIAAgAyACIANrIAFqIAEgARCPBwsgASAAEEMiA2ogAkEAEOEKIAAgASACaiIAEJwDIARBADoADyAAIANqIARBD2oQzwELIARBEGokAAwBCyAAIAAQQyABEPUKCwvnGAMKfwR8AX4jAEGABWsiDCQAA0AgBiEOAn8CQAJAAkACQAJAIAUiBkEBa0F9Sw0AIAwgACkAACIXNwPgBCAGIBdCIIinTw0BQQEgBkEHcXQiCyAGQQN2Ig0gDEHgBGogF6cgF0KAgICAkARUG2otAABxDQAgAyAGENAPIQogBiAAKAIEIglPDQIgACEFIAlBIU8EfyAAKAIABSAFCyANaiIFIAUtAAAgC3I6AAACQCAKKwMQIhMgCisDICIUREivvJry13o+oGRFDQAgAiAKKAIAQThsaiIFKwMAIhUgBSsDEKGZREivvJry13o+ZUUNACACIAooAgRBOGxqIgUrAwAiFiAFKwMQoZlESK+8mvLXej5lRQ0AIAxCADcD8AQgDEIANwPoBCAMQgA3A+AEAkAgBwRAIAwgEzkD8AQgDCAUOQPgBCAMIBaaOQPoBCAVmiETDAELIAwgFjkD8AQgDCAUOQPoBCAMIBU5A+AECyAMIBM5A/gEIAwgDCkD6AQ3AwggDCAMKQPwBDcDECAMIAwpA/gENwMYIAwgDCkD4AQ3AwAgASAMENEECwJAIAooAigiDUEBayIPQX5JDQAgCigCLEEBa0F+SQ0AAkAgCigCMEEBa0F9Sw0AIAooAjQiCEEBa0F9Sw0AIApBMGohBSAKQTRqIQsgDEGYBGogAyAIEOwBIAooAgAhCCAMKAKYBCENIAooAjQgDkYEQCAEIAggDRC7ASAAIAEgAiADIAQgCygCACAGIAdBARA+IQRBAQwICyAEIA0gCBC7ASAAIAEgAiADIAQgCigCMCAGIAdBARA+IQQgCyEFQQEMBwsgACABIAIgAyAEIA0gBiAHQQIQPiAAIAEgAiADIAQgCigCLCAGIAdBAhA+IAAgASACIAMgBCAKKAIwIAYgB0EBED4gCkE0aiEFQQEMBgsgCkEoaiELAkAgCigCMEEBayIRQX5JIhINACAKKAI0QQFrQX5JDQACQCAPQX1LDQAgCigCLEEBa0F9Sw0AIApBLGohBSAKKAIEIQggDEHQA2ogAyANEOwBIAwoAtQDIQ0gCigCLCAORgRAIAQgDSAIELsBIAAgASACIAMgBCAKKAIsIAYgB0ECED4hBCALIQVBAgwICyAEIAggDRC7ASAAIAEgAiADIAQgCygCACAGIAdBAhA+IQRBAgwHCyAKQTRqIQUgACABIAIgAyAEIA0gBiAHQQIQPiAAIAEgAiADIAQgCigCLCAGIAdBAhA+IAAgASACIAMgBCAKKAIwIAYgB0EBED5BAQwGCyAKIglBMGohBSAJQSxqIQogCSgCLEEBayEQAkAgD0F9TQRAIBBBfUsNAQJAIBFBfUsNACAJKAI0Ig9BAWtBfUsNACAJQTRqIQ0gDEGIA2ogAyAPEOwBIAwoAogDIQ8gDEHAAmogAyALKAIAEOwBIAwoAsQCIRACQCAIQQJGBEAgDSgCACAORg0BDAkLIAooAgAgDkcNCAsgBCAQIA8QuwEhDiAAIAEgAiADIAQgCigCACAGIAdBAhA+IAAgASACIAMgBCANKAIAIAYgB0EBED4gACABIAIgAyAOIAsoAgAgBiAHQQIQPiAOIQRBAQwICwJAIAkrACAgAiAJKAIAQThsaiIFKwAYoZlESK+8mvLXej5lRQ0AIAkrABggBSsAEKGZREivvJry13o+ZUUNACAMQfgBaiADIA0Q7AEgAiAJKAIAQThsaigCLCEFIAwoAvwBIQoCQCAIQQFHDQAgCygCACAORw0AIAQgBSAKELsBIQsgACABIAIgAyAEIAkoAiggBiAHQQIQPiAAIAEgAiADIAsgCSgCMCAGIAdBARA+IAAgASACIAMgCyAJKAIsIAYgB0ECED4gCUE0aiEFIAshBEEBDAkLIAQgCiAFELsBIAAgASACIAMgBCAJKAIsIAYgB0ECED4gACABIAIgAyAEIAkoAjAgBiAHQQEQPiAAIAEgAiADIAQgCSgCNCAGIAdBARA+IQQgCyEFQQIMCAsgCSgCBCEFIAxBsAFqIAMgDRDsASAMKAK0ASENAkAgCEEBRw0AIAooAgAgDkcNACAEIA0gBRC7ASEFIAAgASACIAMgBCAJKAIsIAYgB0ECED4gACABIAIgAyAFIAkoAjQgBiAHQQEQPiAAIAEgAiADIAUgCSgCMCAGIAdBARA+IAUhBCALIQVBAgwICyAEIAUgDRC7ASAAIAEgAiADIAQgCSgCKCAGIAdBAhA+IAAgASACIAMgBCAJKAIwIAYgB0EBED4gACABIAIgAyAEIAkoAjQgBiAHQQEQPiEEIAohBUECDAcLIBBBfUsNAQsgEkUEQCAJKwAQIRMgCSgCACEPDAQLIAkrABAhEyAJKAIAIQ8gCSgCNCIQQQFrQX1LDQMgCUE0aiELAkAgEyACIA9BOGxqIgorAAihmURIr7ya8td6PmVFDQAgCSsACCAKKwAAoZlESK+8mvLXej5lRQ0AIAxB6ABqIAMgEBDsASAJKAIAIQogDCgCaCENAkAgCEECRgRAIAkoAjAgDkYNAQsgBCAKIA0QuwEgACABIAIgAyAEIAkoAiwgBiAHQQIQPiAAIAEgAiADIAQgCSgCNCAGIAdBARA+IAAgASACIAMgBCAJKAIoIAYgB0ECED4hBEEBDAcLIAQgDSAKELsBIQUgACABIAIgAyAEIAkoAjAgBiAHQQEQPiAAIAEgAiADIAUgCSgCKCAGIAdBAhA+IAAgASACIAMgBSAJKAIsIAYgB0ECED4gBSEEIAshBUEBDAYLIAxBIGogAyAQEOwBIAIgCSgCBEE4bGooAiwhCiAMKAIgIQ0CQCAIQQJHDQAgCygCACAORw0AIAQgCiANELsBIQsgACABIAIgAyAEIAkoAjQgBiAHQQEQPiAAIAEgAiADIAsgCSgCLCAGIAdBAhA+IAAgASACIAMgCyAJKAIoIAYgB0ECED4gCyEEQQEMBgsgBCANIAoQuwEgACABIAIgAyAEIAkoAiggBiAHQQIQPiAAIAEgAiADIAQgCSgCMCAGIAdBARA+IAAgASACIAMgBCAJKAIsIAYgB0ECED4hBCALIQVBAQwFCyAMQYAFaiQADwtBqbQDQdz+AEHBAEGCIxAAAAtB97MDQdz+AEHQAEHZIRAAAAsgCSsACCEUAkACQAJAIBMgAiAPQThsaiILKwAIoZlESK+8mvLXej5lRQ0AIBQgCysAAKGZREivvJry13o+ZUUNACAJKwAgIAIgCSgCBCIOQThsaiIQKwAIoZlESK+8mvLXej5lRQ0AIAkrABggECsAAKGZREivvJry13o+ZQ0BCwJAIBMgAiAJKAIEQThsaiIOKwAYoZlESK+8mvLXej5lRQ0AIBQgDisAEKGZREivvJry13o+ZUUNACAJKwAgIAsrABihmURIr7ya8td6PmVFDQAgCSsAGCALKwAQoZlESK+8mvLXej5lDQILIAAgASACIAMgBCANIAYgB0ECED4gACABIAIgAyAEIAkoAjAgBiAHQQEQPiAAIAEgAiADIAQgCSgCLCAGIAdBAhA+IAlBNGohBUEBDAMLIAhBAUYEQCAEIA8gDhC7ASELIAAgASACIAMgBCAJKAIoIAYgB0ECED4gACABIAIgAyAEIAkoAiwgBiAHQQIQPiAAIAEgAiADIAsgCSgCNCAGIAdBARA+IAshBEEBDAMLIAQgDiAPELsBIQUgACABIAIgAyAEIAkoAjQgBiAHQQEQPiAAIAEgAiADIAQgCSgCMCAGIAdBARA+IAAgASACIAMgBSAJKAIoIAYgB0ECED4gBSEEIAohBUECDAILIAsoAiwhCyAOKAIsIQ4gCEEBRgRAIAQgCyAOELsBIQsgACABIAIgAyAEIAkoAiggBiAHQQIQPiAAIAEgAiADIAQgCSgCLCAGIAdBAhA+IAAgASACIAMgCyAJKAI0IAYgB0EBED4gCyEEQQEMAgsgBCAOIAsQuwEhBSAAIAEgAiADIAQgCSgCNCAGIAdBARA+IAAgASACIAMgBCAJKAIwIAYgB0EBED4gACABIAIgAyAFIAkoAiggBiAHQQIQPiAFIQQgCiEFQQIMAQsgBCAPIBAQuwEhBSAAIAEgAiADIAQgCygCACAGIAdBAhA+IAAgASACIAMgBCAJKAIwIAYgB0EBED4gACABIAIgAyAFIAooAgAgBiAHQQIQPiAFIQQgDSEFQQELIQggBSgCACEFDAALAAsJACAAEEMgAWoLIAADQCABQQBMRQRAIABBmdEDEBoaIAFBAWshAQwBCwsLWgIBfwF+AkACf0EAIABFDQAaIACtIAGtfiIDpyICIAAgAXJBgIAESQ0AGkF/IAIgA0IgiKcbCyICEEkiAEUNACAAQQRrLQAAQQNxRQ0AIABBACACEDMaCyAAC0MBAn8gABDqAQJAIAEoAhAiA0EATgRAIAAQvAUgA0oNAQtB2KYDQce9AUHbA0HOIhAAAAsoAgwgASgCEEECdGooAgALEgAgABCnAQRAIAAoAgAPCyAAC8ABAQV/IwBBMGsiBCQAAkAgACgCPCIFRQ0AIAUoAmRFDQAgACgCECIGKAKYAUUNACADQQRxIgcEQCAEQQhqIAZBEGoiCEEoEB8aIAggBkE4akEoEB8aIANBe3EhAwsCQCAALQCZAUEgcQRAIAAgASACIAMgBSgCZBEIAAwBCyAAIAAgASACQRAQGSACEJMCIgEgAiADIAUoAmQRCAAgARAYCyAHRQ0AIAAoAhBBEGogBEEIakEoEB8aCyAEQTBqJAALwgECAXwCfyMAQRBrIgIkAAJ8IAC9QiCIp0H/////B3EiA0H7w6T/A00EQEQAAAAAAADwPyADQZ7BmvIDSQ0BGiAARAAAAAAAAAAAEKsEDAELIAAgAKEgA0GAgMD/B08NABogACACELoHIQMgAisDCCEAIAIrAwAhAQJAAkACQAJAIANBA3FBAWsOAwECAwALIAEgABCrBAwDCyABIABBARCqBJoMAgsgASAAEKsEmgwBCyABIABBARCqBAsgAkEQaiQACwsAIAAgAUEQEMkKC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrCxcBAX9BDyEBIAAQKAR/QQ8FIAAoAggLC9goAQt/IwBBEGsiCiQAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHwngsoAgAiBEEQIABBC2pB+ANxIABBC0kbIgZBA3YiAHYiAUEDcQRAAkAgAUF/c0EBcSAAaiICQQN0IgFBmJ8LaiIAIAFBoJ8LaigCACIBKAIIIgVGBEBB8J4LIARBfiACd3E2AgAMAQsgBSAANgIMIAAgBTYCCAsgAUEIaiEAIAEgAkEDdCICQQNyNgIEIAEgAmoiASABKAIEQQFyNgIEDAsLIAZB+J4LKAIAIghNDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxaCIBQQN0IgBBmJ8LaiICIABBoJ8LaigCACIAKAIIIgVGBEBB8J4LIARBfiABd3EiBDYCAAwBCyAFIAI2AgwgAiAFNgIICyAAIAZBA3I2AgQgACAGaiIHIAFBA3QiASAGayIFQQFyNgIEIAAgAWogBTYCACAIBEAgCEF4cUGYnwtqIQFBhJ8LKAIAIQICfyAEQQEgCEEDdnQiA3FFBEBB8J4LIAMgBHI2AgAgAQwBCyABKAIICyEDIAEgAjYCCCADIAI2AgwgAiABNgIMIAIgAzYCCAsgAEEIaiEAQYSfCyAHNgIAQfieCyAFNgIADAsLQfSeCygCACILRQ0BIAtoQQJ0QaChC2ooAgAiAigCBEF4cSAGayEDIAIhAQNAAkAgASgCECIARQRAIAEoAhQiAEUNAQsgACgCBEF4cSAGayIBIAMgASADSSIBGyEDIAAgAiABGyECIAAhAQwBCwsgAigCGCEJIAIgAigCDCIARwRAIAIoAggiASAANgIMIAAgATYCCAwKCyACKAIUIgEEfyACQRRqBSACKAIQIgFFDQMgAkEQagshBQNAIAUhByABIgBBFGohBSAAKAIUIgENACAAQRBqIQUgACgCECIBDQALIAdBADYCAAwJC0F/IQYgAEG/f0sNACAAQQtqIgFBeHEhBkH0ngsoAgAiB0UNAEEfIQhBACAGayEDIABB9P//B00EQCAGQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQgLAkACQAJAIAhBAnRBoKELaigCACIBRQRAQQAhAAwBC0EAIQAgBkEZIAhBAXZrQQAgCEEfRxt0IQIDQAJAIAEoAgRBeHEgBmsiBCADTw0AIAEhBSAEIgMNAEEAIQMgASEADAMLIAAgASgCFCIEIAQgASACQR12QQRxaigCECIBRhsgACAEGyEAIAJBAXQhAiABDQALCyAAIAVyRQRAQQAhBUECIAh0IgBBACAAa3IgB3EiAEUNAyAAaEECdEGgoQtqKAIAIQALIABFDQELA0AgACgCBEF4cSAGayICIANJIQEgAiADIAEbIQMgACAFIAEbIQUgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBUUNACADQfieCygCACAGa08NACAFKAIYIQggBSAFKAIMIgBHBEAgBSgCCCIBIAA2AgwgACABNgIIDAgLIAUoAhQiAQR/IAVBFGoFIAUoAhAiAUUNAyAFQRBqCyECA0AgAiEEIAEiAEEUaiECIAAoAhQiAQ0AIABBEGohAiAAKAIQIgENAAsgBEEANgIADAcLIAZB+J4LKAIAIgVNBEBBhJ8LKAIAIQACQCAFIAZrIgFBEE8EQCAAIAZqIgIgAUEBcjYCBCAAIAVqIAE2AgAgACAGQQNyNgIEDAELIAAgBUEDcjYCBCAAIAVqIgEgASgCBEEBcjYCBEEAIQJBACEBC0H4ngsgATYCAEGEnwsgAjYCACAAQQhqIQAMCQsgBkH8ngsoAgAiAkkEQEH8ngsgAiAGayIBNgIAQYifC0GInwsoAgAiACAGaiICNgIAIAIgAUEBcjYCBCAAIAZBA3I2AgQgAEEIaiEADAkLQQAhACAGQS9qIgMCf0HIogsoAgAEQEHQogsoAgAMAQtB1KILQn83AgBBzKILQoCggICAgAQ3AgBByKILIApBDGpBcHFB2KrVqgVzNgIAQdyiC0EANgIAQayiC0EANgIAQYAgCyIBaiIEQQAgAWsiB3EiASAGTQ0IQaiiCygCACIFBEBBoKILKAIAIgggAWoiCSAITSAFIAlJcg0JCwJAQayiCy0AAEEEcUUEQAJAAkACQAJAQYifCygCACIFBEBBsKILIQADQCAAKAIAIgggBU0EQCAFIAggACgCBGpJDQMLIAAoAggiAA0ACwtBABDeAyICQX9GDQMgASEEQcyiCygCACIAQQFrIgUgAnEEQCABIAJrIAIgBWpBACAAa3FqIQQLIAQgBk0NA0GoogsoAgAiAARAQaCiCygCACIFIARqIgcgBU0gACAHSXINBAsgBBDeAyIAIAJHDQEMBQsgBCACayAHcSIEEN4DIgIgACgCACAAKAIEakYNASACIQALIABBf0YNASAGQTBqIARNBEAgACECDAQLQdCiCygCACICIAMgBGtqQQAgAmtxIgIQ3gNBf0YNASACIARqIQQgACECDAMLIAJBf0cNAgtBrKILQayiCygCAEEEcjYCAAsgARDeAyICQX9GQQAQ3gMiAEF/RnIgACACTXINBSAAIAJrIgQgBkEoak0NBQtBoKILQaCiCygCACAEaiIANgIAQaSiCygCACAASQRAQaSiCyAANgIACwJAQYifCygCACIDBEBBsKILIQADQCACIAAoAgAiASAAKAIEIgVqRg0CIAAoAggiAA0ACwwEC0GAnwsoAgAiAEEAIAAgAk0bRQRAQYCfCyACNgIAC0EAIQBBtKILIAQ2AgBBsKILIAI2AgBBkJ8LQX82AgBBlJ8LQciiCygCADYCAEG8ogtBADYCAANAIABBA3QiAUGgnwtqIAFBmJ8LaiIFNgIAIAFBpJ8LaiAFNgIAIABBAWoiAEEgRw0AC0H8ngsgBEEoayIAQXggAmtBB3EiAWsiBTYCAEGInwsgASACaiIBNgIAIAEgBUEBcjYCBCAAIAJqQSg2AgRBjJ8LQdiiCygCADYCAAwECyACIANNIAEgA0tyDQIgACgCDEEIcQ0CIAAgBCAFajYCBEGInwsgA0F4IANrQQdxIgBqIgE2AgBB/J4LQfyeCygCACAEaiICIABrIgA2AgAgASAAQQFyNgIEIAIgA2pBKDYCBEGMnwtB2KILKAIANgIADAMLQQAhAAwGC0EAIQAMBAtBgJ8LKAIAIAJLBEBBgJ8LIAI2AgALIAIgBGohBUGwogshAAJAA0AgBSAAKAIAIgFHBEAgACgCCCIADQEMAgsLIAAtAAxBCHFFDQMLQbCiCyEAA0ACQCAAKAIAIgEgA00EQCADIAEgACgCBGoiBUkNAQsgACgCCCEADAELC0H8ngsgBEEoayIAQXggAmtBB3EiAWsiBzYCAEGInwsgASACaiIBNgIAIAEgB0EBcjYCBCAAIAJqQSg2AgRBjJ8LQdiiCygCADYCACADIAVBJyAFa0EHcWpBL2siACAAIANBEGpJGyIBQRs2AgQgAUG4ogspAgA3AhAgAUGwogspAgA3AghBuKILIAFBCGo2AgBBtKILIAQ2AgBBsKILIAI2AgBBvKILQQA2AgAgAUEYaiEAA0AgAEEHNgIEIABBCGogAEEEaiEAIAVJDQALIAEgA0YNACABIAEoAgRBfnE2AgQgAyABIANrIgJBAXI2AgQgASACNgIAAn8gAkH/AU0EQCACQXhxQZifC2ohAAJ/QfCeCygCACIBQQEgAkEDdnQiAnFFBEBB8J4LIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgxBDCECQQgMAQtBHyEAIAJB////B00EQCACQSYgAkEIdmciAGt2QQFxIABBAXRrQT5qIQALIAMgADYCHCADQgA3AhAgAEECdEGgoQtqIQECQAJAQfSeCygCACIFQQEgAHQiBHFFBEBB9J4LIAQgBXI2AgAgASADNgIADAELIAJBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSACRg0CIABBHXYhBSAAQQF0IQAgASAFQQRxaiIEKAIQIgUNAAsgBCADNgIQCyADIAE2AhhBCCECIAMiASEAQQwMAQsgASgCCCIAIAM2AgwgASADNgIIIAMgADYCCEEAIQBBGCECQQwLIANqIAE2AgAgAiADaiAANgIAC0H8ngsoAgAiACAGTQ0AQfyeCyAAIAZrIgE2AgBBiJ8LQYifCygCACIAIAZqIgI2AgAgAiABQQFyNgIEIAAgBkEDcjYCBCAAQQhqIQAMBAtBoIoLQTA2AgBBACEADAMLIAAgAjYCACAAIAAoAgQgBGo2AgQgAkF4IAJrQQdxaiIIIAZBA3I2AgQgAUF4IAFrQQdxaiIEIAYgCGoiA2shBwJAQYifCygCACAERgRAQYifCyADNgIAQfyeC0H8ngsoAgAgB2oiADYCACADIABBAXI2AgQMAQtBhJ8LKAIAIARGBEBBhJ8LIAM2AgBB+J4LQfieCygCACAHaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAMAQsgBCgCBCIAQQNxQQFGBEAgAEF4cSEJIAQoAgwhAgJAIABB/wFNBEAgBCgCCCIBIAJGBEBB8J4LQfCeCygCAEF+IABBA3Z3cTYCAAwCCyABIAI2AgwgAiABNgIIDAELIAQoAhghBgJAIAIgBEcEQCAEKAIIIgAgAjYCDCACIAA2AggMAQsCQCAEKAIUIgAEfyAEQRRqBSAEKAIQIgBFDQEgBEEQagshAQNAIAEhBSAAIgJBFGohASAAKAIUIgANACACQRBqIQEgAigCECIADQALIAVBADYCAAwBC0EAIQILIAZFDQACQCAEKAIcIgBBAnRBoKELaiIBKAIAIARGBEAgASACNgIAIAINAUH0ngtB9J4LKAIAQX4gAHdxNgIADAILAkAgBCAGKAIQRgRAIAYgAjYCEAwBCyAGIAI2AhQLIAJFDQELIAIgBjYCGCAEKAIQIgAEQCACIAA2AhAgACACNgIYCyAEKAIUIgBFDQAgAiAANgIUIAAgAjYCGAsgByAJaiEHIAQgCWoiBCgCBCEACyAEIABBfnE2AgQgAyAHQQFyNgIEIAMgB2ogBzYCACAHQf8BTQRAIAdBeHFBmJ8LaiEAAn9B8J4LKAIAIgFBASAHQQN2dCICcUUEQEHwngsgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAELQR8hAiAHQf///wdNBEAgB0EmIAdBCHZnIgBrdkEBcSAAQQF0a0E+aiECCyADIAI2AhwgA0IANwIQIAJBAnRBoKELaiEAAkACQEH0ngsoAgAiAUEBIAJ0IgVxRQRAQfSeCyABIAVyNgIAIAAgAzYCAAwBCyAHQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQEDQCABIgAoAgRBeHEgB0YNAiACQR12IQEgAkEBdCECIAAgAUEEcWoiBSgCECIBDQALIAUgAzYCEAsgAyAANgIYIAMgAzYCDCADIAM2AggMAQsgACgCCCIBIAM2AgwgACADNgIIIANBADYCGCADIAA2AgwgAyABNgIICyAIQQhqIQAMAgsCQCAIRQ0AAkAgBSgCHCIBQQJ0QaChC2oiAigCACAFRgRAIAIgADYCACAADQFB9J4LIAdBfiABd3EiBzYCAAwCCwJAIAUgCCgCEEYEQCAIIAA2AhAMAQsgCCAANgIUCyAARQ0BCyAAIAg2AhggBSgCECIBBEAgACABNgIQIAEgADYCGAsgBSgCFCIBRQ0AIAAgATYCFCABIAA2AhgLAkAgA0EPTQRAIAUgAyAGaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBkEDcjYCBCAFIAZqIgQgA0EBcjYCBCADIARqIAM2AgAgA0H/AU0EQCADQXhxQZifC2ohAAJ/QfCeCygCACIBQQEgA0EDdnQiAnFFBEBB8J4LIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgBDYCCCABIAQ2AgwgBCAANgIMIAQgATYCCAwBC0EfIQAgA0H///8HTQRAIANBJiADQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgBCAANgIcIARCADcCECAAQQJ0QaChC2ohAQJAAkAgB0EBIAB0IgJxRQRAQfSeCyACIAdyNgIAIAEgBDYCACAEIAE2AhgMAQsgA0EZIABBAXZrQQAgAEEfRxt0IQAgASgCACEBA0AgASICKAIEQXhxIANGDQIgAEEddiEBIABBAXQhACACIAFBBHFqIgcoAhAiAQ0ACyAHIAQ2AhAgBCACNgIYCyAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgBUEIaiEADAELAkAgCUUNAAJAIAIoAhwiAUECdEGgoQtqIgUoAgAgAkYEQCAFIAA2AgAgAA0BQfSeCyALQX4gAXdxNgIADAILAkAgAiAJKAIQRgRAIAkgADYCEAwBCyAJIAA2AhQLIABFDQELIAAgCTYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACKAIUIgFFDQAgACABNgIUIAEgADYCGAsCQCADQQ9NBEAgAiADIAZqIgBBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMAQsgAiAGQQNyNgIEIAIgBmoiBSADQQFyNgIEIAMgBWogAzYCACAIBEAgCEF4cUGYnwtqIQBBhJ8LKAIAIQECf0EBIAhBA3Z0IgcgBHFFBEBB8J4LIAQgB3I2AgAgAAwBCyAAKAIICyEEIAAgATYCCCAEIAE2AgwgASAANgIMIAEgBDYCCAtBhJ8LIAU2AgBB+J4LIAM2AgALIAJBCGohAAsgCkEQaiQAIAALVgEBfyMAQRBrIgQkAAJAIABFIAFFcg0AIAAgARBCIgBFDQAgAC0AAEUNACACIAMgACAEQQxqEN4BIgIgAiADYxsgACAEKAIMRhshAgsgBEEQaiQAIAILggEBAn8jAEEgayICJAACQCAAQQAgAK0gAa1+QiCIpxtFBEAgAEUgAUVyIAAgARBBIgNyRQ0BIAJBIGokACADDwsgAiABNgIEIAIgADYCAEHI9ggoAgBBhu0DIAIQHhoQJwALIAIgACABbDYCEEHI9ggoAgBB1ewDIAJBEGoQHhoQJwAL8QIBBH8jAEEwayIDJAAgAyACNgIMIAMgAjYCLCADIAI2AhACQAJAAkACQAJAQQBBACABIAIQYSIFQQBIDQBBASECIAVBAWohBgJAIAUgABBIIAAQJGsiBE8EQCAAEChBACAGIARrIgRBAUYbDQEgACAEEM0BC0EAIQILIANCADcDGCADQgA3AxAgBUEQT0EAIAIbDQEgA0EQaiEEIAUgAgR/IAQFIAAQdQsgBiABIAMoAiwQYSIBRyABQQBOcQ0CIAFBAEwNACAAECgEQCABQYACTw0EIAIEQCAAEHUgA0EQaiABEB8aCyAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvrkDQa+BAUHYAUGcHxAAAAsgAg0EIAAgACgCBCABajYCBAsgA0EwaiQADwtBpqgDQa+BAUHLAUGcHxAAAAtB1pwDQa+BAUHQAUGcHxAAAAtBy84BQa+BAUHTAUGcHxAAAAtBvKEBQa+BAUHaAUGcHxAAAAs3AAJAIAAEQCABRQ0BIAAgARBHRQ8LQb/WAUGxgAFBDEHbPhAAAAtBjdYBQbGAAUENQds+EAAACxYAIAAoAgAiAEGIpQtHBEAgABCVBQsLJAEBfyMAQRBrIgMkACADIAI2AgwgACABIAIQ+AsgA0EQaiQAC64CAwJ/AnwEfiMAQSBrIgIkAAJAIACZIgQgAZkiBSAEvSAFvVQiAxsiAb0iBkI0iCIHQv8PUQ0AIAUgBCADGyEAAkAgBlANACAAvSIIQjSIIglC/w9RDQAgCacgB6drQcEATgRAIAQgBaAhAQwCCwJ8IAhCgICAgICAgPDfAFoEQCABRAAAAAAAADAUoiEBIABEAAAAAAAAMBSiIQBEAAAAAAAAsGsMAQtEAAAAAAAA8D8gBkL/////////5yNWDQAaIAFEAAAAAAAAsGuiIQEgAEQAAAAAAACwa6IhAEQAAAAAAAAwFAsgAkEYaiACQRBqIAAQlAwgAkEIaiACIAEQlAwgAisDACACKwMQoCACKwMIoCACKwMYoJ+iIQEMAQsgACEBCyACQSBqJAAgAQsMACAAIAFBHGoQigsLGQEBfyMAQRBrIgEkACAAENkLIAFBEGokAAtCAQF/IAEgAmwhBCAEAn8gAygCTEEASARAIAAgBCADELQHDAELIAAgBCADELQHCyIARgRAIAJBACABGw8LIAAgAW4LSgEBfyAAIAFJBEAgACABIAIQHw8LIAIEQCAAIAJqIQMgASACaiEBA0AgA0EBayIDIAFBAWsiAS0AADoAACACQQFrIgINAAsLIAALCABBASAAEBkLGwEBf0EKIQEgABCnAQR/IAAQ7wJBAWsFQQoLC9MBAgN/An4CQCAAKQNwIgRQRSAEIAApA3ggACgCBCIBIAAoAiwiAmusfCIFV3FFBEAgABDABSIDQQBODQEgACgCLCECIAAoAgQhAQsgAEJ/NwNwIAAgATYCaCAAIAUgAiABa6x8NwN4QX8PCyAFQgF8IQUgACgCBCEBIAAoAgghAgJAIAApA3AiBFANACAEIAV9IgQgAiABa6xZDQAgASAEp2ohAgsgACACNgJoIAAgBSAAKAIsIgAgAWusfDcDeCAAIAFPBEAgAUEBayADOgAACyADC8oBAgJ/AXwjAEEQayIBJAACQCAAvUIgiKdB/////wdxIgJB+8Ok/wNNBEAgAkGAgMDyA0kNASAARAAAAAAAAAAAQQAQqgQhAAwBCyACQYCAwP8HTwRAIAAgAKEhAAwBCyAAIAEQugchAiABKwMIIQAgASsDACEDAkACQAJAAkAgAkEDcUEBaw4DAQIDAAsgAyAAQQEQqgQhAAwDCyADIAAQqwQhAAwCCyADIABBARCqBJohAAwBCyADIAAQqwSaIQALIAFBEGokACAAC3sBA38CQCABEOYKIQIgABCNByEDIAAQIyEEIAIgA00EQCAAEEMiAyABIAIQ2gsjAEEQayIBJAAgABAjGiAAIAIQnAMgAUEANgIMIAMgAkECdGogAUEMahDaASABQRBqJAAMAQsgACADIAIgA2sgBEEAIAQgAiABEN4KCwtPAQN/AkAgARA8IQIgABBWIQMgABAjIQQgAiADTQRAIAAQQyIDIAEgAhDcCyAAIAMgAhD1CgwBCyAAIAMgAiADayAEQQAgBCACIAEQ4goLCxAAIAAQ0gsgARDSC3NBAXMLEAAgABDTCyABENMLc0EBcwsSACAAIAFBtSNBNUH4/wAQ2AELCwAgACABQTgQyQoLlQUCA38CfiMAQeAAayIFJAACQAJAAkACQAJAAkAgAEECIAMgBUHYAGpBABCSA0UEQCADDQIgBARAIAAQ6QVFDQQLIAVCADcDUCAFQgA3A0gMAQsgBUIANwNIIAUgBSkDWDcDUCAFQQI2AkgLIAVBQGsgBSkDUDcDACAFIAUpA0g3AzggACABIAIgBUE4ahDTAiIGDQIgABDtDQRAIAUgBSkDUDcDMCAFIAUpA0g3AyggACACIAEgBUEoahDTAiIGDQMLIARFDQAgABA3IAUgBSkDUDcDICAFIAUpA0g3AxggASACIAVBGGoQ0wIiBkUEQCAAEO0NRQ0BIAAQNyAFIAUpA1A3AxAgBSAFKQNINwMIIAIgASAFQQhqENMCIgZFDQELIAAgBhCnBgwCCyAEDQBBACEGDAELQQAhBiMAQSBrIgQkACAEQgA3AxggBEIANwMQAn8gABDpBQRAIAQgBCkDGDcDCCAEQQA2AhAgBCAEKQMQNwMAQQAgACABIAIgBBDTAg0BGgsgAC0AGEEEcUUgASACR3ILIARBIGokAEUNACAAQQIgAyAFQdgAakEBEJIDRQ0AIAUpA1ghCCAAIAFBARCFARogACACQQEQhQEaQQFB4AAQQSIGRQ0BIABBAhCRDiIJQoCAgIABWg0CIAYgCDcDOCAGIAg3AwggBiABNgJYIAYgAjYCKCAGIAmnQQR0IgFBA3I2AjAgBiABQQJyNgIAIAAgBhCnBiAALQAYQSBxBEAgBkGVmwVBEEEAEDUaIAAgBhDJBQsgACAGEPoHIABBAiAGEPMECyAFQeAAaiQAIAYPCyAFQeAANgIAQcj2CCgCAEHV7AMgBRAeGhAnAAtB468DQb3BAUHLAUHVoAEQAAALzgQBBn8CQAJAAkAgACgCBCICRQ0AIAAoAhAiAUUEQCAAIAI2AgAgACACKAIANgIEIAJBADYCACAAIAAoAgAiAUEIaiICNgIQIAEoAgQhASAAIAI2AgwgACABIAJqNgIIDAILIAIoAgQgACgCCCABa0wNACACKAIAIQEgAiAAKAIANgIAIAAoAgQhAiAAIAE2AgQgACACNgIAIAJBCGogACgCECIBIAAoAgggAWsQHxogACgCECECIAAgACgCACIBQQhqIgM2AhAgACADIAAoAgwgAmtqNgIMIAAgAyABKAIEajYCCAwBCyAAKAIIIQEgACgCACIERSAAKAIQIgYgBEEIakdyRQRAQQAhAiABIAZrQQF0IgVBAEgNAiAFRQ0CIAVBCGoiAUEAIAFBAEobIgNFDQIgACgCDCEBIAQgAyAAKAIUKAIEEQAAIgNFDQIgACADNgIAIAMgBTYCBCAAIAAoAgBBCGoiAjYCECAAIAIgASAGa2o2AgwgACACIAVqNgIIDAELQQAhAiABIAZrIgFBAEgNAUGACCEEIAFBgAhPBEAgAUEBdCIEQQBIDQILIARBCGoiAUEAIAFBAEobIgFFDQEgASAAKAIUKAIAEQIAIgNFDQEgAyAENgIEIAMgACgCADYCACAAIAM2AgACfyAAKAIMIgIgACgCECIBRgRAIAIMAQsgA0EIaiABIAIgAWsQHxogACgCECECIAAoAgwLIQEgACADQQhqIgM2AhAgACADIAEgAmtqNgIMIAAgAyAEajYCCAtBASECCyACC4kBAQJ/IwBBoAFrIgQkACAEIAAgBEGeAWogARsiBTYClAEgBCABQQFrIgBBACAAIAFNGzYCmAEgBEEAQZABEDMiAEF/NgJMIABBggQ2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVCAFQQA6AAAgACACIANBgARBgQQQqwcgAEGgAWokAAsNACAAEDcoAhAoArwBC1IBAX8jAEEQayIEJAACQCABRQ0AIAAgARBCIgBFDQAgAC0AAEUNACACIAAgBEEMahCsByIBIAMgASADShsgACAEKAIMRhshAgsgBEEQaiQAIAILHwAgAUUEQEGN1gFBsYABQQ1B2z4QAAALIAAgARBHRQtAAQJ/IwBBEGsiASQAIAAQqQEiAkUEQCABIAAQPEEBajYCAEHI9ggoAgBB1ewDIAEQHhoQJwALIAFBEGokACACCxUAIAAtAA9B/wFGBEAgACgCABAYCwsoAQF/IwBBEGsiAiQAIAIgAToADyAAIAJBD2pBARCiAhogAkEQaiQAC+8CAQZ/QYSlCy0AAARAQYClCygCAA8LIwBBIGsiAiQAAkACQANAIAJBCGoiBCAAQQJ0IgNqAn9BASAAdEH/////B3EiBUEBckUEQCADKAIADAELIABB7t0BQfWEBSAFGxCyBwsiAzYCACADQX9GDQEgAEEBaiIAQQZHDQALQQAQ0QtFBEBBqPUIIQEgBEGo9QhBGBDTAUUNAkHA9QghASAEQcD1CEEYENMBRQ0CQQAhAEGQowstAABFBEADQCAAQQJ0QeCiC2ogAEH1hAUQsgc2AgAgAEEBaiIAQQZHDQALQZCjC0EBOgAAQfiiC0HgogsoAgA2AgALQeCiCyEBIAJBCGoiAEHgogtBGBDTAUUNAkH4ogshASAAQfiiC0EYENMBRQ0CQRgQSSIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGEpQtBAToAAEGApQsgATYCACABCwUAEAgACyAAIAAEQCAAKAIUEBggACgCGBAYIAAoAhwQGCAAEBgLCwkAIABBABDtBgu/CgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4RCACEBUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxC1AUEQIAZrIQYgBSkDWCINQiCIIQ4gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAwgAyAMIAxQIggbeSAIQQZ0rXynIghBD2sQtQEgBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiISIANCMYiEQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYgDSATfnwiDiASQiCIQoCAgIAIhCICIAF+fCIQIAMgBH58IhJCIIZ8Ihd8IQEgByAJaiAGakH//wBrIQYCQCACIAR+IhggDCATfnwiBCAYVK0gBCAEIAMgDX58IgRWrXwgAiAMfnwgBCAEIBEgFVStIBEgFFatfHwiBFatfCADIAx+IgMgAiANfnwiAiADVK1CIIYgAkIgiIR8IAQgAkIghnwiAiAEVK18IAIgAiAQIBJWrSAOIBZUrSAOIBBWrXx8QiCGIBJCIIiEfCICVq18IAIgAiAPIBRUrSAPIBdWrXx8IgJWrXwiBEKAgICAgIDAAINQRQRAIAZBAWohBgwBCyALQj+IIARCAYYgAkI/iIQhBCACQgGGIAFCP4iEIQIgC0IBhiELIAFCAYaEIQELIAZB//8BTgRAIApCgICAgICAwP//AIQhCkIAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogCyABIAZB/wBqIgYQtQEgBUEgaiACIAQgBhC1ASAFQRBqIAsgASAHEKQDIAUgAiAEIAcQpAMgBSkDMCAFKQM4hEIAUq0gBSkDICAFKQMQhIQhCyAFKQMoIAUpAxiEIQEgBSkDACECIAUpAwgMAgtCACEBDAILIARC////////P4MgBq1CMIaECyAKhCEKIAtQIAFCAFkgAUKAgICAgICAgIB/URtFBEAgCiACQgF8IgFQrXwhCgwBCyALIAFCgICAgICAgICAf4WEUEUEQCACIQEMAQsgCiACIAJCAYN8IgEgAlStfCEKCyAAIAE3AwAgACAKNwMIIAVB4ABqJAALlQIBB38jAEEQayIHJAACQAJAIAAoAggiBSAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAFQQF0QQEgBRsiAkH/////A0sEQEHEACEADAILIAAoAgAgAkECdBA5IgNFBEBBMCEADAILIAMgACgCDCIGQQJ0akEAIAIgBmtBAnQQMxogBiAAKAIIIgUgACgCBCIEakkEQCAEQQJ0IQggAyACIAYgBGsiBmsiBEECdGogAyAIaiAGQQJ0EFQaIAAgBDYCBAsgACACNgIMIAAgAzYCAAsgAyAEIAVqIAJwQQJ0aiABNgIAIAAgBUEBajYCCCAHQRBqJAAPCyAHIAAQdzYCAEHI9ggoAgBB54MEIAcQHhoQJwALpAEBBH8gACgCECIEIQMCQAJAAkADQCADRQ0BIAFFDQIgAygCACIGRQ0DIAEgBhBHBEAgAygCBCIDIARHDQEMAgsLAkAgAC0AAEEEcQRAIAJFIAMgBEZyDQFB5g9BABA2DAELIAJFIAMgBEZxDQAgACADIAJBAEcQ5AcLIAMhBQsgBQ8LQb/WAUGxgAFBDEHbPhAAAAtBjdYBQbGAAUENQds+EAAACwYAIAAQGAsZAQF/IAAgARAtIgIEfyACBSAAIAEQuAILC34BA38jAEEQayIBJAAgASAANgIMIwBBEGsiAiQAIAAoAgBBf0cEQCACQQhqIAJBDGogAUEMahCcAhCcAiEDA0AgACgCAEEBRg0ACyAAKAIARQRAIABBATYCACADEIcLIABBfzYCAAsLIAJBEGokACAAKAIEIAFBEGokAEEBawsgACAAIAFBAWs2AgQgAEGQ6Ak2AgAgAEHAvwk2AgAgAAs6AQF/AkACQCACRQ0AIAAQLyACEMcDIgMgAkcNACADEHhFDQAgACABIAIQowQMAQsgACABIAIQ+gsLC28AAkACQCABKAIAQQNxQQJGBEAgACABEDAiAQ0BQQAhAQNAAn8gAUUEQCAAIAIQuAIMAQsgACABEI4DCyIBRQ0DIAEoAiggAkYNAAsMAQsDQCAAIAEQjgMiAUUNAiABKAIoIAJGDQALCyABDwtBAAsfAQF/IAAQJCEBIAAQKARAIAAgAWoPCyAAKAIAIAFqC9YIAQ1/IwBBEGsiDCQAIAEQjQsjAEEQayIDJAAgAyABNgIMIAxBDGogA0EMahCgAyEJIANBEGokACAAQQhqIgEQvgIgAk0EQAJAIAJBAWoiACABEL4CIgNLBEAjAEEgayINJAACQCAAIANrIgYgARCPBSgCACABKAIEa0ECdU0EQCABIAYQjwsMAQsgARCaAyEHIA1BDGohAAJ/IAEQvgIgBmohBSMAQRBrIgQkACAEIAU2AgwgBSABEPAKIgNNBEAgARDrCiIFIANBAXZJBEAgBCAFQQF0NgIIIARBCGogBEEMahDaAygCACEDCyAEQRBqJAAgAwwBCxDIAQALIQUgARC+AiEIQQAhAyMAQRBrIgQkACAEQQA2AgwgAEEMahDxCkEEaiAHEJwCGiAFBH8gBEEEaiAAKAIQIAUQ7wogBCgCBCEDIAQoAggFQQALIQUgACADNgIAIAAgAyAIQQJ0aiIHNgIIIAAgBzYCBCAAEIUHIAMgBUECdGo2AgAgBEEQaiQAIwBBEGsiAyQAIAAoAgghBCADIABBCGo2AgwgAyAENgIEIAMgBCAGQQJ0ajYCCCADKAIEIQQDQCADKAIIIARHBEAgACgCEBogAygCBBDuCiADIAMoAgRBBGoiBDYCBAwBCwsgAygCDCADKAIENgIAIANBEGokACMAQRBrIgYkACABEJoDGiAGQQhqIAEoAgQQnAIgBkEEaiABKAIAEJwCIQQgBiAAKAIEEJwCIQUoAgAhByAEKAIAIQggBSgCACEKIwBBEGsiBSQAIAVBCGojAEEgayIDJAAjAEEQayIEJAAgBCAHNgIMIAQgCDYCCCADQRhqIARBDGogBEEIahCnBSAEQRBqJAAgA0EMaiADKAIYIQcgAygCHCELIANBEGojAEEQayIEJAAgBCALNgIIIAQgBzYCDCAEIAo2AgQDQCAEQQxqIgcoAgAgBCgCCEcEQCAHEOgKKAIAIQogBEEEaiILEOgKIAo2AgAgBxDnCiALEOcKDAELCyAEQQxqIARBBGoQ9wEgBEEQaiQAIAMgAygCEDYCDCADIAMoAhQ2AgggA0EIahD3ASADQSBqJAAgBSgCDCEDIAVBEGokACAGIAM2AgwgACAGKAIMNgIEIAEgAEEEahCqBSABQQRqIABBCGoQqgUgARCPBSAAEIUHEKoFIAAgACgCBDYCACABEL4CGiAGQRBqJAAgACgCBCEDA0AgACgCCCADRwRAIAAoAhAaIAAgACgCCEEEazYCCAwBCwsgACgCAARAIAAoAhAgACgCACAAEIUHKAIAGiAAKAIAGhDqCgsLIA1BIGokAAwBCyAAIANJBEAgASgCACAAQQJ0aiEAIAEQvgIaIAEgABDtCgsLCyABIAIQmwMoAgAEQCABIAIQmwMoAgAQlQULIAkQ4gMhACABIAIQmwMgADYCACAJKAIAIQAgCUEANgIAIAAEQCAAEJUFCyAMQRBqJAALHQAgAEEAIABBmQFNG0EBdEHQhQlqLwEAQdT2CGoLFwAgAEUEQEEADwsgAEEIaykDAEI/iKcLHAEBfyAAEKcBBEAgACgCACAAEO8CGhCZBAsgAAslAQF/IAAoAkQiAUUEQEEADwsgASgCPCIBIABBCCABKAIAEQQACxYAIAAoAjwiAEEAQYABIAAoAgARBAALFQAgAEUgAUVyBH8gAgUgACABEEILC8oBAQR/IwBB0ABrIgIkAAJAAkAgAZlEexSuR+F6dD9jBEAgAEGdnQNBARCiAhoMAQsgAiABOQMAIAJBEGoiA0EyQfiKASACEKEBGiAAIAJBEGoCfwJAIANBLhDLASIARQ0AIAAsAAEiBEEwa0EJSw0DIAAsAAIiBUEwa0EJSw0DIAAtAAMNAyAFQTBHDQAgACADayIAIABBAmogBEEwRhsMAQsgAkEQahA8CxCiAhoLIAJB0ABqJAAPC0HUrgNB/sEBQfQDQewtEAAACwkAIABBABCRAQsyAQF/IwBBEGsiAyQAIAMgATYCDCAAIANBDGoQoAMiAEEEaiACEKADGiADQRBqJAAgAAsYAEF/QQAgAEEBIAAQPCIAIAEQUyAARxsLCwAgACABQQMQ+QYLCwAgACABQQEQoAkLCgAgACgCABDmCwsLACAAKAIAEO4LwAtGAQJ/AkAgACgCSCABKAIYRw0AIAAgASkDCBC7AyIDIAJFcg0AQQAhAyAAKAJEIgRFDQAgACAEIAEgAhCFASIDEOAPCyADC00BAX8CQCAAIAEgAiADEO8ERQ0AIAAoAgwiAyAAKAIIRgRAIAAQYEUNASAAKAIMIQMLIAAgA0EBajYCDCADQQA6AAAgACgCECEECyAEC8YBAQR/IwBBEGsiBCQAIAQgAjYCDAJAIAEtAERFBEACfyAAKAKcASABRgRAIABBqAJqIQUgAEGsAmoMAQsgACgCtAIiBUEEagshAgNAIAQgACgCODYCCCABIARBDGogAyAEQQhqIAAoAjwgASgCOBEHACACIAQoAgw2AgAgACgCBCAAKAI4IgcgBCgCCCAHayAAKAJcEQUAIAUgBCgCDDYCAEEBSw0ACwwBCyAAKAIEIAIgAyACayAAKAJcEQUACyAEQRBqJAALRQACQCAAECgEQCAAECRBD0YNAQsgAEEAELoCCwJAIAAQKARAIABBADoADwwBCyAAQQA2AgQLIAAQKAR/IAAFIAAoAgALCyIBAX8gACABIAJBABAhIgMEfyADBSAAIAEgAkH1hAUQIQsLPAECf0EBIAAgAEEBTRshAQNAAkAgARBJIgANAEHMsgsoAgAiAkUNACACEQwADAELCyAARQRAEMgBCyAACy4BAX8jAEEQayICJAAgAkHEmwUoAgA2AgwgASACQQxqQSAgABCeBCACQRBqJAAL8QIBBH8jAEEwayIDJAAgAyACNgIMIAMgAjYCLCADIAI2AhACQAJAAkACQAJAQQBBACABIAIQYSIFQQBIDQBBASECIAVBAWohBgJAIAUgABBIIAAQJGsiBE8EQCAAEChBACAGIARrIgRBAUYbDQEgACAEEPACC0EAIQILIANCADcDGCADQgA3AxAgBUEQT0EAIAIbDQEgA0EQaiEEIAUgAgR/IAQFIAAQdQsgBiABIAMoAiwQYSIBRyABQQBOcQ0CIAFBAEwNACAAECgEQCABQYACTw0EIAIEQCAAEHUgA0EQaiABEB8aCyAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvrkDQa+BAUHYAUGcHxAAAAsgAg0EIAAgACgCBCABajYCBAsgA0EwaiQADwtBpqgDQa+BAUHLAUGcHxAAAAtB1pwDQa+BAUHQAUGcHxAAAAtBy84BQa+BAUHTAUGcHxAAAAtBvKEBQa+BAUHaAUGcHxAAAAvSAgIHfwJ+IAFFBEBBfw8LAkAgABC6AygCACIAIAEgAhCRBCICRQ0AIAJBCGoiBCABRw0AIAIgAikDACIKQgF9Qv///////////wCDIgsgCkKAgICAgICAgIB/g4Q3AwAgC0IAUg0AIAAEQCACQX9HBEAgBCAKQj+IpxDTBiEGQQAhASAAKAIAIgcEQEEBIAAoAgh0IQMLIANBAWshCANAIAEgA0YNAwJAAkAgByABIAZqIAhxIglBAnRqKAIAIgVBAWoOAgEFAAsgBCACKQMAQj+IpyAFEMAJRQ0AIAAoAgQEQCAFEBggACgCACAJQQJ0akF/NgIAIAAgACgCBEEBazYCBAwFC0GFlgNBzr0BQZkCQfuNARAAAAsgAUEBaiEBDAALAAtB39oBQc69AUGEAkH7jQEQAAALQZPUAUHOvQFBggJB+40BEAAAC0EAQX8gAhsL4QICA38CfiMAQRBrIgQkACAAEDchBQJAAkACQAJAAkAgAEEBIAEgBEEIakEAEJIDRQ0AIAAgBCkDCBC7AyIDDQIgAkUgACAFRnINACAFIAQpAwgQuwMiAkUNASAAIAJBARCFASEDDAILQQAhAyACRQ0BCyAAQQEgASAEQQhqQQEQkgNFBEBBACEDDAELIAQpAwghBiAAQQEQkQ4iB0KAgICAAVoNAUHAABBVIgMgBjcDCCADIAMoAgBBDHEgB6dBBHRyQQFyNgIAIAMgABA3NgIYIAAQNy0AGEEgcQRAIANBlZsFQRBBABA1GgsgACEBA0AgASADEOAPIAEoAkQiAQ0ACyAAEDctABhBIHEEQCAAIAMQyQULIAAgAxD6ByAAIAMQ5AFFDQIgAEEBIAMQ8wQLIARBEGokACADDwtB468DQenBAUHLAEGRowEQAAALQYWmA0HpwQFBowFBpaMBEAAAC0cBBX8jAEEQayIAJAAgABCsAUHE4AooAgAhAUHA4AooAgAhAiAAKAIAIAAoAgQgAEEQaiQAaiABIAJqa7dEAAAAAAAATkCjCxwAIAAgASACEHwiAAR/IAAgAiAALQAAGwUgAgsLJAEBfyAAKAIAIQIgACABNgIAIAIEQCACIAAQzwMoAgARAQALCwUAEGkAC+oBAgJ/AX4jAEEQayIDJAACQAJAAkAgAUUNACAAQQAgASADQQhqQQAQkgNFDQAgACADKQMIEN4NIgQNAQtBACEEIAJFDQAgAEEAIAEgA0EIakEBEJIDRQ0AIAAgAykDCCIFEN4NIgRFBEBBAUHQABBBIgFFDQIgASAAKAJMNgJMIAEgACgCGCICNgIYIAEgADYCRCABIAJB9wFxOgAYIAAoAkghAiABIAU3AwggASACNgJIIAEQlA4hBAsgAEEAIAQQ8wQLIANBEGokACAEDwsgA0HQADYCAEHI9ggoAgBB1ewDIAMQHhoQJwALpwIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkH/////AEsEQEHEACEADAILIAAoAgAgAkEEdBA5IgNFBEBBMCEADAILIAMgACgCDCIFQQR0akEAIAIgBWtBBHQQMxogBSAAKAIIIgYgACgCBCIEakkEQCAEQQR0IQggAyACIAUgBGsiBWsiBEEEdGogAyAIaiAFQQR0EFQaIAAgBDYCBAsgACACNgIMIAAgAzYCAAsgAyAEIAZqIAJwQQR0aiICIAEpAwA3AwAgAiABKQMINwMIIAAgACgCCEEBajYCCCAHQRBqJAAPCyAHIAAQdzYCAEHI9ggoAgBB54MEIAcQHhoQJwALewECfwJAIABFIAFFcg0AQTQQSSICRQ0AIAJBADYCICACQgA3AgAgAiAAEIMFGiACQgA3AiwgAkIANwIkIAEoAgQhACACQgA3AgwgAiAANgIIIAJCADcCFCACQQA2AhwgASgCACEAIAIgATYCICACIAA2AgAgAiEDCyADCw0AIAAoAgAQ5QsaIAALDQAgACgCABDtCxogAAvFBAEGfyAAIQUjAEHQAWsiBCQAIARCATcDCAJAIAEgAmwiCEUNACAEIAI2AhAgBCACNgIUQQAgAmshCSACIgAhB0ECIQYDQCAEQRBqIAZBAnRqIAAiASACIAdqaiIANgIAIAZBAWohBiABIQcgACAISQ0ACwJAIAUgCGogCWoiASAFTQRAQQEhAAwBC0EBIQZBASEAA0ACfyAGQQNxQQNGBEAgBSACIAMgACAEQRBqELMHIARBCGpBAhC7BSAAQQJqDAELAkAgBEEQaiIHIABBAWsiBkECdGooAgAgASAFa08EQCAFIAIgAyAEQQhqIABBACAHELoFDAELIAUgAiADIAAgBEEQahCzBwsgAEEBRgRAIARBCGpBARC5BUEADAELIARBCGogBhC5BUEBCyEAIAQgBCgCCEEBciIGNgIIIAIgBWoiBSABSQ0ACwsgBSACIAMgBEEIaiAAQQAgBEEQahC6BQJAIABBAUcNACAEKAIIQQFHDQAgBCgCDEUNAQsDQAJ/IABBAUwEQCAEQQhqIgEgARCODCIBELsFIAAgAWoMAQsgBEEIaiIBQQIQuQUgBCAEKAIIQQdzNgIIIAFBARC7BSAFIAlqIgggBEEQaiIHIABBAmsiBkECdGooAgBrIAIgAyABIABBAWtBASAHELoFIAFBARC5BSAEIAQoAghBAXI2AgggCCACIAMgASAGQQEgBxC6BSAGCyEAIAUgCWohBSAAQQFHDQAgBCgCCEEBRw0AIAQoAgwNAAsLIARB0AFqJAALigYBDn8CQAJAAkACQCABKAIIRQRAIANFDQQgAUHAADYCCCABQQY6AAQgAUGAAiABKAIQKAIAEQIAIgQ2AgAgBA0BIAFBADYCCEEADwsgACACEMUGIg1BACABKAIIIglrcSEKIA0gCUEBayIEcSEFIARBAnYhCyABKAIAIQwDQCAMIAVBAnRqKAIAIgcEQCAHKAIAIQYgAiEEA0AgBC0AACIOIAYtAABGBEAgDkUNBiAGQQFqIQYgBEEBaiEEDAELCyAIQf8BcUUEQCAKIAEtAARBAWt2IAtxQQFyIQgLIAUgCEH/AXEiBGsgCUEAIAQgBUsbaiEFDAELC0EAIQcgA0UNAiABKAIMIAEtAAQiBEEBa3ZFDQEgBEEBaiIOQf8BcSIEQR9LIARBHUtyDQJBBCAEdCIGIAEoAhAoAgARAgAiBUUNAiAFQQAgBhAzIQhBASAEdCIHQQFrIglBAnYhCiAEQQFrIQtBACAHayEMQQAhBQNAIAEoAgggBUsEQCAFQQJ0IhAgASgCAGooAgAiBARAIAAgBCgCABDFBiIEIAlxIQYgBCAMcSALdiAKcUEBciERQQAhBANAIAggBkECdGoiDygCAARAIAYgBCARIARB/wFxGyIEQf8BcSIPayAHQQAgBiAPSRtqIQYMAQsLIA8gASgCACAQaigCADYCAAsgBUEBaiEFDAELCyABKAIAIAEoAhAoAggRAQAgASAHNgIIIAEgDjoABCABIAg2AgAgCSANcSEFIAwgDXEgC3YgCnFBAXIhAEEAIQYDQCAIIAVBAnRqKAIARQ0CIAUgBiAAIAZB/wFxGyIGQf8BcSIEayAHQQAgBCAFSxtqIQUMAAsACyAEQQBBgAIQMxogACACEMUGIAEoAghBAWtxIQULIAMgASgCECgCABECACEEIAVBAnQiACABKAIAaiAENgIAIAEoAgAgAGooAgAiBEUNASAEQQAgAxAzGiABKAIAIABqKAIAIAI2AgAgASABKAIMQQFqNgIMIAEoAgAgAGooAgAhBwsgBw8LQQALYwEBf0F/IQECQCAARQ0AIAAoAiRBAEoNACAAKAIoBEAgAEEAEOECGgsgAEEAQcAAIAAoAiAoAgARBAAaIAAQnAFBAEoNACAAKAIUQQBKBEAgACgCEBAYCyAAEBhBACEBCyABC3MBAX8gABAkIAAQSE8EQCAAQQEQlQQLIAAQJCECAkAgABAoBEAgACACaiABOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG+uQNBr4EBQZ0CQa61ARAAAAsgACgCACACaiABOgAAIAAgACgCBEEBajYCBAsLQQEBfyAALQAJQRBxBEAgAEEAEOUBCwJAIAAoAhgiAUEATg0AIAAtAAhBDHFFDQAgACAAKAIMEJ8KIgE2AhgLIAELvwEBAn8jAEEgayIEJAACQAJAQX8gA24iBSABSwRAIAIgBUsNAQJAIAIgA2wiAkUEQCAAEBhBACEADAELIAAgAhA5IgBFDQMgAiABIANsIgFNDQAgACABakEAIAIgAWsQMxoLIARBIGokACAADwtB4cIDQf6BAUHNAEGJtgEQAAALIAQgAzYCBCAEIAI2AgBByPYIKAIAQYbtAyAEEB4aECcACyAEIAI2AhBByPYIKAIAQdXsAyAEQRBqEB4aECcAC+kQAgp/CHwjAEGAAWsiBiQAIABBMEEAIAAoAgBBA3FBA0cbaigCKCIHEC8hDSAAIAMQ8wYhCSAAIQUDQCAFIggoAhAiCygCeCIFBEAgCy0AcA0BCwsCQAJAIAQtAAgNACAHKAIQIgooAvQBIAEoAhAiBSgC9AFHDQAgASAHIAooAvgBIAUoAvgBSiIFGyEKIAcgASAFGyEBDAELIAchCgtBACEFIAtB1gBBLiAKIAhBMEEAIAgoAgBBA3FBA0cbaigCKEYiBxtqLQAAIQ4gC0HQAEEoIAcbaigCACEMAkAgC0EuQdYAIAcbai0AAEUNACAKKAIQKAIIIghFDQAgCCgCBCgCDEUNACALQShB0AAgBxtqKAIAIQggBkEoakEAQcAAEDMaIAYgCDYCJCAGIAo2AiAgA0EEayEHA0ACQCAFIAdPDQAgBiACIAVBBHRqIggrAzAgCigCECILKwMQoTkDaCAGIAgrAzggCysDGKE5A3AgCygCCCgCBCgCDCEIIAYgBikDcDcDGCAGIAYpA2g3AxAgBkEgaiAGQRBqIAgRAABFDQAgBUEDaiEFDAELCyAGQSBqIAogAiAFQQR0akEBEPQGCwJAAkAgDkUNACABKAIQKAIIIghFDQAgCCgCBCgCDEUNACAGQShqQQBBwAAQMxogBiAMNgIkIAYgATYCICADQQRrIgohBwNAAkAgB0UNACAGIAIgB0EEdGoiAysDACABKAIQIggrAxChOQNoIAYgAysDCCAIKwMYoTkDcCAIKAIIKAIEKAIMIQMgBiAGKQNwNwMIIAYgBikDaDcDACAGQSBqIAYgAxEAAEUNACAHQQNrIQcMAQsLIAZBIGogASACIAdBBHRqQQAQ9AYMAQsgA0EEayIKIQcLA0AgCiAFIgNLBEAgAiAFQQR0aiIMKwMAIAIgBUEDaiIFQQR0aiIIKwMAoSIPIA+iIAwrAwggCCsDCKEiDyAPoqBEje21oPfGsD5jDQELCwNAAkAgB0UNACACIAdBBHRqIgUrAwAgBSsDMKEiDyAPoiAFKwMIIAUrAzihIg8gD6KgRI3ttaD3xrA+Y0UNACAHQQNrIQcMAQsLIAAhBQNAIAUiCCgCECgCeCIFDQALQQAhBSAELQAIRQRAIAggBCgCABECACEFCyAIIAZBIGogBkH8AGoQ8QYgASAEKAIEEQIABEAgBkEANgJ8CyAAQTBBACAAKAIAQQNxQQNHG2ooAiggBCgCBBECAARAIAZBADYCIAsgBQRAIAYoAiAhACAGIAYoAnw2AiAgBiAANgJ8CwJAIAQtAAlBAUYEQCAGKAJ8IgEgBigCICIAckUNAQJAAn8CQAJAIAFFIABFIAMgB0dyckUEQCACIAdBBHRqIgUrAwghEiAFKwM4IRUgBSsDACERIAUrAzAhEyAIIAAQygMhFiARIBOhIg8gD6IgEiAVoSIPIA+ioJ8iFEQAAAAAAAAIQKMiECAIIAEQygMiDyAWIA+gIBRmIgQbIRQgECAWIAQbIQ8gEiAVYQRAIBEgE2MEQCARIA+gIQ8gEyAUoSEWDAMLIBEgD6EhDyATIBSgIRYMAgsCfCASIBVjBEAgFSAUoSEUIBIgD6AMAQsgFSAUoCEUIBIgD6ELIRAgESIPIRYMAgsgAQRAIAggARDKAyERIAIgB0EEdGoiBCsDACIQIAQrAzAiEqEiDyAPoiAEKwMIIhQgBCsDOCIToSIPIA+ioJ9EzczMzMzM7D+iIg8gESAPIBFlGyERIAQCfCATIBRhBEAgECASYwRAIBIgEaEhDyAUDAILIBIgEaAhDyAUDAELIBAhDyATIBGhIBMgEaAgEyAUZBsLOQM4IAQgDzkDMCAEIBQ5AxggBCAQOQMQIAQgBCkDMDcDICAEIAQpAzg3AyggCSATOQMoIAkgEjkDICAJIAE2AgwLIABFDQMgCCAAEMoDIRAgAiADQQR0aiIBKwMAIhMgASsDMCIRoSIPIA+iIAErAwgiFSABKwM4IhKhIg8gD6Kgn0TNzMzMzMzsP6IiDyAQIA8gEGUbIRACfCASIBVhBEAgESATZARAIBMgEKAhDyAVDAILIBMgEKEhDyAVDAELIBMhDyAVIBCgIBUgEKEgEiAVZBsLIRAgASAPOQMQQRghBCABIBA5AxggASASOQMoIAEgETkDICABIAEpAxA3AwAgASABKQMYNwMIIAkgADYCCEEQDAILIBIiECEUCyAFIA85AxAgBSAQOQMYIAUgFDkDOCAFIBY5AzAgBSAFKQMQNwMAIAUgBSkDGDcDCCAFIAUpAzA3AyBBKCEEIAUgBSkDODcDKCAJIBI5AxggCSAROQMQIAkgADYCCCAJIAE2AgxBIAsgCWogEzkDACAEIAlqIBU5AwALDAELIAYoAiAiAARAIAggAiADIAcgCSAAEO4GIQMLIAYoAnwiAEUNACAIIAIgAyAHIAkgABDvBiEHCyAHQQRqIQggBkFAayEEIAMhBQNAAkAgBSAITw0AIAkoAgAgBSADa0EEdGoiACACIAVBBHRqIgEpAwA3AwAgACABKQMINwMIIAYgASkDCDcDKCAGIAEpAwA3AyAgBUEBaiIBIAhPDQAgCSgCACABIANrQQR0aiIAIAIgAUEEdGoiASkDADcDACAAIAEpAwg3AwggBiABKQMINwM4IAYgASkDADcDMCAJKAIAIAVBAmoiASADa0EEdGoiACACIAFBBHRqIgEpAwA3AwAgACABKQMINwMIIAQgASkDCDcDCCAEIAEpAwA3AwAgBiACIAVBA2oiBUEEdGoiACkDCDcDWCAGIAApAwA3A1AgDSgCEEEQaiAGQSBqEOEEDAELCyAJIAcgA2tBBGo2AgQgBkGAAWokAAsRACAAIAEgACgCACgCHBEAAAt1AQF+IAAgASAEfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IAEgAn4gA0L/////D4N8IgFCIIh8NwMIIAAgBUL/////D4MgAUIghoQ3AwALJQEBfyMAQRBrIgQkACAEIAM2AgwgACABIAIgAxBhIARBEGokAAtnAQN/IwBBEGsiAiQAIAAgASgCADYCACABKAIIIQMgASgCBCEEIAFCADcCBCACIAAoAgQ2AgggACAENgIEIAIgACgCCDYCDCAAIAM2AgggAkEIahDWASAAIAErAxA5AxAgAkEQaiQAC+gBAgN/AXwjAEEQayIFJABB4AAQVSIEIAQoAjBBA3I2AjAgBCAEKAIAQXxxQQJyNgIAQbgBEFUhBiAEIAA2AlggBCAGNgIQIAQgATYCKEQAAMD////fQSEHAkAgAkQAAMD////fQWRFBEAgAiEHDAELIAVB/////wc2AgggBSACOQMAQefrBCAFEDYLIAYgAzYCnAEgBgJ/IAdEAAAAAAAA4D9EAAAAAAAA4L8gB0QAAAAAAAAAAGYboCICmUQAAAAAAADgQWMEQCACqgwBC0GAgICAeAs2AqwBIAQQmA8aIAVBEGokACAECwQAQQALmQMCB38BfCMAQcAEayIHJAADQCAFQQRGBEBEAAAAAAAA8D8gAqEhDEEDIQZBASEBA0AgAUEERkUEQEEAIQUgByABQQFrQeAAbGohCANAIAUgBkZFBEAgBUEEdCIJIAcgAUHgAGxqaiIKIAwgCCAJaiIJKwMAoiACIAggBUEBaiIFQQR0aiILKwMAoqA5AwAgCiAMIAkrAwiiIAIgCysDCKKgOQMIDAELCyAGQQFrIQYgAUEBaiEBDAELCwJAIANFDQBBACEFA0AgBUEERg0BIAMgBUEEdGoiASAHIAVB4ABsaiIGKQMINwMIIAEgBikDADcDACAFQQFqIQUMAAsACwJAIARFDQBBACEFA0AgBUEERg0BIAQgBUEEdCIBaiIDIAdBAyAFa0HgAGxqIAFqIgEpAwg3AwggAyABKQMANwMAIAVBAWohBQwACwALIAAgBykDoAI3AwAgACAHKQOoAjcDCCAHQcAEaiQABSAHIAVBBHQiBmoiCCABIAZqIgYpAwA3AwAgCCAGKQMINwMIIAVBAWohBQwBCwsLPwECfwNAIAAoAhAiAigC8AEiAUUgACABRnJFBEAgASIAKAIQKALwASIBRQ0BIAIgATYC8AEgASEADAELCyAACwoAIAAtAAtBB3YLGAAgAC0AAEEgcUUEQCABIAIgABC0BxoLCyABAn8gABA8QQFqIgEQSSICRQRAQQAPCyACIAAgARAfCykBAX5BiI0LQYiNCykDAEKt/tXk1IX9qNgAfkIBfCIANwMAIABCIYinC6sDAgV/AX4gAL1C////////////AINCgYCAgICAgPj/AFQgAb1C////////////AINCgICAgICAgPj/AFhxRQRAIAAgAaAPCyABvSIHQiCIpyICQYCAwP8D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IgJFIAJBCGogAUdyDQAgACABEM4CDwsgACABQQAQ8QgLmQIBBn8gACgCCCIFQYAgcQRAIAAoAgwPCwJAIAVBAXEEQCAAKAIQIgIgACgCFEECdGohBgNAIAIgBk8NAiACKAIAIgQEQAJAIAFFBEAgBCIDIQEMAQsgASAENgIACwNAIAEiBCgCACIBDQALIAIgBDYCACAEIQELIAJBBGohAgwACwALIAAoAgwiA0UEQEEAIQMMAQsDQCADKAIEIgEEQCADIAEoAgA2AgQgASADNgIAIAEhAwwBCwsgAyEBA0AgASIEKAIAIgEEQCABKAIEIgJFDQEDQCABIAIoAgA2AgQgAiABNgIAIAIiASgCBCICDQALIAQgATYCAAwBCwsgACgCCCEFCyAAIAM2AgwgACAFQYAgcjYCCCADC6EBAQJ/AkAgABAjRSACIAFrQQVIcg0AIAEgAhCaBSACQQRrIQQgABBDIgIgABAjaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwuEAQECfyMAQRBrIgIkACAAEKcBBEAgACgCACAAEO8CGhCmBQsgARAjGiABEKcBIQMgACABKAIINgIIIAAgASkCADcCACABQQAQ0AEgAkEAOgAPIAEgAkEPahDPAQJAIAAgAUYiASADckUNAAsgABCnASABckUEQCAAEKIDGgsgAkEQaiQAC1ABAX4CQCADQcAAcQRAIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAiADrSIEhiABQcAAIANrrYiEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC84JAgR/BH4jAEHwAGsiBiQAIARC////////////AIMhCQJAAkAgAVAiBSACQv///////////wCDIgpCgICAgICAwP//AH1CgICAgICAwICAf1QgClAbRQRAIANCAFIgCUKAgICAgIDA//8AfSILQoCAgICAgMCAgH9WIAtCgICAgICAwICAf1EbDQELIAUgCkKAgICAgIDA//8AVCAKQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgCkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgUbIQRCACABIAUbIQMMAgsgAyAJQoCAgICAgMD//wCFhFANASABIAqEUARAIAMgCYRCAFINAiABIAODIQMgAiAEgyEEDAILIAMgCYRQRQ0AIAEhAyACIQQMAQsgAyABIAEgA1QgCSAKViAJIApRGyIIGyEKIAQgAiAIGyIMQv///////z+DIQkgAiAEIAgbIgtCMIinQf//AXEhByAMQjCIp0H//wFxIgVFBEAgBkHgAGogCiAJIAogCSAJUCIFG3kgBUEGdK18pyIFQQ9rELUBIAYpA2ghCSAGKQNgIQpBECAFayEFCyABIAMgCBshAyALQv///////z+DIQEgBwR+IAEFIAZB0ABqIAMgASADIAEgAVAiBxt5IAdBBnStfKciB0EPaxC1AUEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrELUBIAZBMGogAiABIAcQpAMgBikDOCEBIAYpAzAgBikDQCAGKQNIhEIAUq2ECyEJQoCAgICAgIAEhCELIApCA4YhCgJAIARCAFMEQEIAIQNCACEEIAkgCoUgASALhYRQDQIgCiAJfSECIAsgAX0gCSAKVq19IgRC/////////wNWDQEgBkEgaiACIAQgAiAEIARQIgcbeSAHQQZ0rXynQQxrIgcQtQEgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahC1ASAGIAIgBEEBIAVrEKQDIAYpAwAgBikDECAGKQMYhEIAUq2EIQIgBikDCCEECyAEQj2G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IAAoAjAgASkDCBDeCAv5AQEDfyAAKAIgKAIAIQQCQAJ/IAFFBEAgACgCCCIDQYAgcUUNAiAAKAIMDAELIAAoAhgNASAAKAIIIQMgAQshAiAAIANB/19xNgIIAkAgA0EBcQRAIABBADYCDCABRQRAIAAoAhAiASAAKAIUQQJ0aiEDA0AgASADTw0DIAEoAgAiAARAIAEgAjYCACAAKAIAIQIgAEEANgIACyABQQRqIQEMAAsACyAAQQA2AhgDQCACRQ0CIAIoAgAgACACQSAgBBEEABohAgwACwALIAAgA0EMcQR/IAIFIAAgAjYCEEEACzYCDCABBEAgACAAKAIYQQFrNgIYCwsLC2gBAn8jAEEQayICJAAgAkIANwMIIAJCADcDACACIAErAwAQoQsgACACEJ8FIgMgAxA8EKICGiAAQZ7RA0EBEKICGiACIAErAwgQoQsgACACEJ8FIgAgABA8EKICGiACEGYgAkEQaiQACzoBAX8CQCACRQ0AIAAQLyACEMcDIgMgAkcNACADEHhFDQAgACABIAJBARCCDA8LIAAgASACQQAQggwLXwECfyACRQRAQQAPCyAALQAAIgMEfwJAA0AgAyABLQAAIgRHIARFcg0BIAJBAWsiAkUNASABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsgAS0AAGsLHgAgAEUEQEH10wFBj/8AQRVBoIwBEAAACyAAKAIICwwAIABBlZsFQQAQbgs9AQJ/IABBACAAQQBKGyEAA0AgACAERkUEQCADIARBA3QiBWogAiABIAVqKwMAojkDACAEQQFqIQQMAQsLCz0AIAEoAgggAk0EQEHJtQNByIABQT1BjyQQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoLOwECfyMAQdAAayIBJAAgAUEoaiICQQBBKBAzGiAAIAEgAkEoEB8iARDcDyAAKAIIIAFB0ABqJABBAWsLoQEBAn8CQAJAIAEQPCICRQ0AIAAQSCAAECRrIAJJBEAgACACEPACCyAAECQhAyAAECgEQCAAIANqIAEgAhAfGiACQYACTw0CIAAgAC0ADyACajoADyAAECRBEEkNAUG+uQNBr4EBQYUCQbrtABAAAAsgACgCACADaiABIAIQHxogACAAKAIEIAJqNgIECw8LQeTO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oyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQRCACEBggDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDoMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBkiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEQgAhAYDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBkiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCACIBApA4ABNwNAIAIgECkDiAE3A0ggAiAQKQOgATcDUCACIBApA6gBNwNYIAAgAkEGIAQQRCACEBggDyAQKwMQIBArA7ABIBArAwChoDkDICAPIBArAxggECsDuAEgECsDCKGgOQMoIA8gECkDSDcDOCAPIBApA0A3AzAgACAPQSBqIgFBAhA6IA8gECkDiAE3AzggDyAQKQOAATcDMCAAIAFBAhA6IA8gECkDCDcDOCAPIBApAwA3AzAgACABQQIQOgwVCyACQQRHDRtBDEEQEBkiAiABKQMINwMIIAIgASkDADcDACACIAEpAxA3AxAgAiABKQMYNwMYIAIgECsDMCIFIBArA0AgBaEiCaAiBjkDICACIBArAzgiByAQKwNIIAehIgqgIgg5AyggAiAGIAUg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AEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtBoIoLIAA2AgBBfwsLACAAIAEgAhEAAAtkAQJ/IwBBEGsiAyQAAkAgAEEAEK0CIgBFDQACQAJAAkACQCABDgQAAQICAwsgACgCECECDAMLIAAoAgghAgwCCyAAKAIMIQIMAQsgAyABNgIAQcjHBCADEDYLIANBEGokACACC6QBAgN/AnwjAEEQayICJAAgABC8AiAAKAIQIgErAxhEAAAAAAAAUkCjIQQgASsDEEQAAAAAAABSQKMhBSAAEBshAQNAIAEEQCABKAIQKAKUASIDIAMrAwAgBaE5AwAgAyADKwMIIAShOQMIIAAgARAcIQEMAQsLIAIgACgCECIBKQMYNwMIIAIgASkDEDcDACAAIAIQ+gwgAEEBEM4FIAJBEGokAAsPACABQQFqIAAgABCvAZ8LqAECBH8CfCABKAIAIQIgAEEEaiIDIQAgAyEBA0AgACgCACIABEAgACgCECIEKwMIIgYgAisDCCIHYwRAIABBBGohAAwCBSAAIAEgACACIARLIgQbIAYgB2QiBRshASAAIAAgBEECdGogBRshAAwCCwALCwJAAkAgASADRg0AIAIrAwgiBiABKAIQIgArAwgiB2MNACAAIAJNIAYgB2RyDQELIAMhAQsgAQtkAQF/IwBBEGsiBCQAIABBADsBHCAAQQA2AhggACADOQMIIAAgAjYCBCAAIAE2AgAgBCAANgIMIAFBNGogBEEMahC/ASAAKAIEIAQgADYCCEEoaiAEQQhqEL8BIARBEGokACAACzwAIAAgARDMAgRAIAAQwQQPCyAAEJQIIgFFBEBBAA8LIAAgARCTCCEAIAEQaiAAIAAtACRBA3I6ACQgAAucAQEDfwJAIAAEQCABRQRAIAAQNyEBCyAAIAFGBEAMAgsgABAbIQQDQCAE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ASAHa0GfAUoNAiAEKAIAIQAgCCABQQRqNgIAIAEgADYCAAwBC0F/IQAgCSAJQegAaiAKQQxqEJUHIAlrQQJ1IgVBF0oNAQJAAkACQCABQQhrDgMAAgABCyABIAVKDQEMAwsgAUEQRyAFQRZIcg0AIAMoAgAiASACRiABIAJrQQJKcg0CIAFBAWstAABBMEcNAkEAIQAgBEEANgIAIAMgAUEBajYCACABIAVBgLIJai0AADoAAAwCCyADIAMoAgAiAEEBajYCACAAIAVBgLIJai0AADoAACAEIAQoAgBBAWo2AgBBACEADAELQQAhACAEQQA2AgALIApBEGokACAACwsAIABBgKcLEKQCC+8CAQN/IwBBEGsiCiQAIAogADoADwJAAkACQCADKAIAIgsgAkcNACAAQf8BcSIMIAktABhGBH9BKwUgDCAJLQAZRw0BQS0LIQAgAyALQQFqNgIAIAsgADoAAAwBCyAGECNFIAAgBUdyRQRAQQAhACAIKAIAIgEgB2tBnwFKDQIgBCgCACEAIAggAUEEajYCACABIAA2AgAMAQtBfyEAIAkgCUEaaiAKQQ9qEJkHIAlrIgVBF0oNAQJAAkACQCABQQhrDgMAAgABCyABIAVKDQEMAwsgAUEQRyAFQRZIcg0AIAMoAgAiASACRiABIAJrQQJKcg0CIAFBAWstAABBMEcNAkEAIQAgBEEANgIAIAMgAUEBajYCACABIAVBgLIJai0AADoAAAwCCyADIAMoAgAiAEEBajYCACAAIAVBgLIJai0AADoAACAEIAQoAgBBAWo2AgBBACEADAELQQAhACAEQQA2AgALIApBEGokACAACwsAIABB+KYLEKQCCxQAIABB3wBxIAAgAEHhAGtBGkkbCxsBAX8gAUEBENQLIQIgACABNgIEIAAgAjYCAAskACAAQQtPBH8gAEEIakF4cSIAIABBAWsiACAAQQtGGwVBCgsLJAECfyMAQRBrIgIkACAAIAEQpAUhAyACQRBqJAAgASAAIAMbCxMAIAAgASACIAAoAgAoAjARBAAL2QYCDX8BfiMAQbABayIEJAAgBEGYAWogAkE6ENEBIARCADcDkAEgAUEDa0ECSSECAn9BACAEKAKYASINIAQoApwBIg5qIgUtAABBOkcNABogBEGAAWogBUEBakE6ENEBIAQgBCkDgAEiETcD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nyITmUQAAAAAAADgQWMEQCATqgwBC0GAgICAeAs2AgBB6P8KQbT/CigCAEHgABAZNgIAIAAQGyEDIAJBsANqIAAQ+QIgAisDsAMhFAJ/IAItAMADRQRAIAIrA7gDIRNB0wMMAQsgAisDuANEAAAAAAAAUkCjIRMgFEQAAAAAAABSQKMhFEHUAwshBwJAA0AgCEG0/wooAgAiBE8NAUHo/wooAgAgCEHgAGxqIgQgAygCECgClAEiBisDADkDCCAEIAYrAwg5AxAgBEEoaiADIBQgEyAHER8ARQRAIARBATYCHCAEIAg2AhggBEIANwNYIAQgAzYCACAIQQFqIQggACADEBwhAwwBCwtB6P8KKAIAEBhB6P8KQQA2AgAQkQ0MAgtBACEIIAJBsANqQQBB0AAQMxogBARAQej/CigCACEHRP///////+9/IRNE////////7/8hFUT////////v/yEWRP///////+9/IRcDQCAEIAhGBEBEmpmZmZmZqT8hFAJAIABByOcAECYiAEUNACAALQAARQ0AIAAQqQIhFAtBsIALIBYgFiAXoSAUoiIZoCIWOQMAQbiACyAXIBmhIhc5AwBBqIALIBMgFSAToSAUoiIUoSITOQMAQaCACyAVIBSgIhQ5AwAgAiAXOQPYAyACIBY5A+gDIAIgFzkDuAMgAiAUOQPQAyACIBY5A8gDIAIgEzkD8AMgAiAUOQPAAyACIBM5A+ADIAEoAgAhAEEAEOUHIQcCQAJAIABBAkYEQCAHRQ0CIAJBsANqEJANQQAhBANAQej/CigCACEBQbT/CigCACEHQQAhAwNAIAMgB0cEQCABIANB4ABsaiIAIAArAwhEzczMzMzM8D+iOQMIIAAgACsDEETNzMzMzMzwP6I5AxAgA0EBaiEDDAELCyAEQQFqIgQQ5QcNAAtBnNsKLQAARQ0BIAIgBDYCEEHI9ggoAgBBzOADIAJBEGoQHhoMAQsgB0UNASACQbADahCQDUEAIQhBACEDA0AgAkGwA2oiASEAIAgEQCAAEI4NC0HI/wpC/////////3c3AwBBwP8KQv/////////3/wA3AwACQEG0/wooAgAiBgRAIAAoAgAhBET////////vfyETRP///////+//IRRBACEAA0AgACAGRg0CQcD/CiATIAQgAEECdGooAgAiCCsDABAqIhM5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ojkDACADIAUgBqBEAAAAAAAA4D+iOQMIIAMgASkDGDcDGCADIAEpAxA3AxAgAC0AmQFBIHFFBEAgACADIANBAhCTAhoLIAAgAyACIAQRBQALIANBIGokAAsxAQF/AkAgACgCPCIBRQ0AIAEoAgQiAUUNACAAIAERAQALIAAoAgBBADYCGCAAEK8LC68BAQN/An8gARA3IgEoAhAtAHNBAUYEQCAAEJQEDAELIAAgARDnBgsiACIDIQEDQEEAIQICQAJAA0AgAS0AACIERQ0BIAFBAWohASACQQFxBEBBCiECAkACQAJAIARB7ABrDgcCAQIBAQEAAQtBDSECDAELIAQhAgsgAyACOgAADAMLQQEhAiAEQdwARg0ACyADIAQ6AAAMAQsgA0EAOgAAIAAPCyADQQFqIQMMAAsACxgAIAAoAgAgACgCoAEgACgCnAEgARCHCQvJTgIWfw58IwBBsBFrIgIkACACQfgJaiAAKQCYAjcDACACQfAJaiAAKQCQAjcDACACQegJaiAAKQCIAjcDACACIAApAIACNwPgCQJAAkACQCABKAIQIgQoAggiA0UNACADKwAYIAIrA+AJZkUNACACKwPwCSADKwAIZkUNACADKwAgIAIrA+gJZkUNACACKwP4CSADKwAQZg0BCyAEKAJgIgMEfyACIAJB+AlqKQMANwOoAyACIAJB8AlqKQMANwOgAyACIAJB6AlqKQMANwOYAyACIAIpA+AJNwOQAyADIAJBkANqEJ4KDQEgASgCEAUgBAsoAmwiA0UNASADLQBRQQFHDQEgAiACQfgJaikDADcDiAMgAiACQfAJaikDADcDgAMgAiACQegJaikDADcD+AIgAiACKQPgCTcD8AIgAyACQfACahCeCkUNAQsCQCAAKAKcAUECSA0AIAAgAUHA3QooAgBB9YQFEHwiAxCEBA0AIAMtAAANASABQShqIQQDQEEwIQNBAyEIAkACQCAFDgMBAAQAC0FQIQNBAiEICyAEIANBACABKAIAQQNxIAhHG2ooAgBB6NwKKAIAQfWEBRB8IgMtAABFDQEgBUEBaiEFIAAgAxCEBEUNAAsLIAJCADcDuAMgAkIANwOwAyACQbADaiIEIAFBMEEAIAEoAgBBA3FBA0cbaigCKBAgEMMDIARBreABQcOeAyABIAFBMGsiAyABKAIAQQNxQQJG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dCIFaiIGICEgBSAQaiIFKwMAoiAcoDkDACAGICEgBSsDCKIgG6A5AwggCSANaiIFICEgDysDAKIgJaA5AwAgBSAhIA8rAwiiICSgOQMIIAggCWoiBSAhIB2iICOgOQMIIAUgISAZoiAioDkDACAYIRwgGiEbIAQhBQwBCwsgECAFQQR0IgVqIgREAAAAAAAAAEAgIiAcoSIaIBqiICMgG6EiGSAZoqBELUMc6+I2Gj+gn6MiGCAamqIiGjkDCCAEIBkgGKIiGDkDACAFIAlqIgQgISAaoiAboDkDCCAEICEgGKIgHKA5AwAgCkEBaiEKDAELAAsAC0HLywFBubwBQbYRQeE0EAAACyAELQB0QQNxRQRAAkAgAy0AAARAIAAgAxBGDAELIABB+PcAEEYgCkH49wAgCi0AABshCgsgACAKEF4LIAJBgApqIQogAkHwCWohBkEAIQUDQCAFIAEoAhAoAggiAygCBE8NASACQeAJaiADKAIAIAVBMGxqQTAQHxogACACKALgCSACKALkCUEAEIMCIAIoAugJIgQEQCACIAYpAwg3A9gBIAIgBikDADcD0AEgAiACKALgCSIDKQMINwPIASACIAMpAwA3A8ABIABBAiACQdABaiACQcABaiAgIB8gBBDjAgsgAigC7AkiBARAIAIgCikDCDcDuAEgAiAKKQMANwOwASACIAIoAuAJIAIoAuQJQQR0akEQayIDKQMINwOoASACIAMpAwA3A6ABIABBAyACQbABaiACQaABaiAgIB8gBBDjAgsCQCATRSABKAIQKAIIKAIEQQJJcg0AIAIoAugJIAIoAuwJckUNACAAIA4Q4wELIAVBAWohBQwACwALIBcQ5gIQGCAXEBggAkHIEGoQZiAAKAIQIgYoAgghBQJAIAYoAtgBRQRAIAYtAIwCQQFxRQ0BCyAAEJICIAYoApwCIgtFDQAgBigCoAIiBCgCACEIQQEhAwNAIAMgC08NASAGIAQgA0ECdCIBaigCADYClAIgBiAGKAKkAiAIQQR0ajYCmAIgACAGKALYASAGKALsASAGKAL8ASAGKALcARDDASAAEJICIANBAWohAyABIAYoAqACIgRqKAIAIAhqIQggBigCnAIhCwwACwALIAZCADcClAIgACAFKAIQIgMoAggiAQR/IAYoAuQBIQMgBi8BjAIhBCACIAEo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ACgCACAAKAIEIAJqIAAoAgxwQQJ0aiABIAwoAhAuAZoBajYCACALQQFqIQsMAQsLIAhBAWohCAwBCwtBqrYDQZWAAUEVQfMhEAAACyAHQSBqJAAgFA8LIApBAWohCiATIBR8IRQMAAsAC0Hw1AFB0LwBQb0MQeErEAAACyAHIAAQdzYCAEHI9ggoAgBB54MEIAcQHhoQJwAL6QEBBH8jAEEQayIEJAAgABBIIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA5IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARBLIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQeHCA0H+gQFBzQBBibYBEAAACyAEIAE2AgBByPYIKAIAQdXsAyAEEB4aECcAC4MBAQJ/IAAgAUEBEI4BIgEoAhBBADYCxAFBBRC3CCECIAEoAhAiA0EANgLMASADIAI2AsABQQUQtwghAiABKAIQIgMgAjYCyAFBxP4KKAIAIgIgACACGygCEEG4AUHAASACG2ogATYCACADIAI2ArwBQcT+CiABNgIAIANBADYCuAEgAQu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQ4gEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALIAAgACABIAIgAEGLjAEQJiIABH8gABCLAgVBHgsQpg8LTAAgASgCEEHAAWohAQNAIAEoAgAiAQRAIAEoAhAoApgCEBggASgCECgCoAIQGCABKAIQIgFBADYCsAEgAUG4AWohAQwBCwsgABCeDws/AQJ/IAAoAhAoAqgCIQADQCAAIgEoAgwiAEUgACABRnJFBEAgACgCDCICRQ0BIAEgAjYCDCACIQAMAQsLIAELCwAgACABQQEQrw8LCwAgACAB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QCAFIAUoAgBBAnI2AgALA0AgAiADRg0GIAktAABBAkYNByAJQQFqIQkgAkEMaiECDAALAAsgABCEASENIAZFBEAgBCANEKAFIQ0LIAtBAWohEEEAIQ4gCSEHIAIhAQNAIAEgA0YEQCAQIQsgDkUNAiAAEJcBGiAJIQcgAiEBIAggCmpBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABECMgC0YNACAHQQA6AAAgCkEBayEKCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIAsQPywAACERAkAgBgR/IBEFIAQgERCgBQsgDUYEQEEBIQ4gARAjIBBHDQIgB0ECOgAAIApBAWohCgwBCyAHQQA6AAALIAhBAWshCAsgB0EBaiEHIAFBDGohAQwBCwALAAsABSAHQQJBASABEPIBIgsbOgAAIAdBAWohByABQQxqIQEgCiALaiEKIAggC2shCAwBCwALAAsQkgEACyAFIAUoAgBBBHI2AgALIA8QfiAMQYABaiQAIAILJQEBfyMAQRBrIgMkACADIAI2AgwgACABIAIQtQsaIANBEGokAAuhAQECfwJAAkAgARA8IgJFDQAgABBIIAAQJGsgAkkEQCAAIAIQzQELIAAQJCEDIAAQKARAIAAgA2ogASACEB8aIAJBgAJPDQIgACAALQAPIAJqOgAPIAAQJEEQSQ0BQb65A0GvgQFBhQJBuu0AEAAACyAAKAIAIANqIAEgAhAfGiAAIAAoAgQgAmo2AgQLDwtB5M4BQa+BAUGDAkG67QAQAAALDQAgACgCACABKAIASQsHACAAQQtJCwkAIABBARDYCwsWACAAIAEoAgA2AgAgACACKAIANgIECwkAIAAgARChAwsxAQF/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggACADQQxqIANBCGoQpwUgA0EQaiQACxwBAX8gACgCACECIAAgASgCADYCACABIAI2AgALCAAgACgCAEULjQEBAX8CQCAAKAIEIgEgASgCAEEMaygCAGooAhhFDQAgACgCBCIBIAEoAgBBDGsoAgBqEPELRQ0AIAAoAgQiASABKAIAQQxrKAIAaigCBEGAwABxRQ0AIAAoAgQiASABKAIAQQxrKAIAaigCGBDvC0F/Rw0AIAAoAgQiACAAKAIAQQxrKAIAakEBEK8FCwuzAQEBfyAAIAE2AgQgAEEAOgAAIAEgASgCAEEMaygCAGoQ8QsEQCABIAEoAgBBDGsoAgBqKAJIIgEEQCMAQRBrIgIkACABIAEoAgBBDGsoAgBqKAIYBEAgAkEIaiABEK0FGgJAIAItAAhFDQAgASABKAIAQQxrKAIAaigCGBDvC0F/Rw0AIAEgASgCAEEMaygCAGpBARCvBQsgAkEIahCsBQsgAkEQaiQACyAAQQE6AAALIAALaQEBfyMAQRBrIgIkAAJAIAAoAgAEQCABKAIARQ0BIAIgACkCADcDCCACIAEpAgA3AwAgAkEIaiACEPALIAJBEGokAEUPC0G61gFB9v4AQdsAQeE+EAAAC0Gr1gFB9v4AQdwAQeE+EAAACwkAIAAgARDsDQtvAQR/IAAQLyEFAkAgACgCACICIAEoAgBzQQNxDQADQCAFIAJBA3EgAxDnAyIDRQ0BIAEgAygCCBDHByICRQ0BAkAgACADEEIiBBB4BEAgASACIAQQowQMAQsgASACIAQQcwsgACgCACECDAALAAsL2gMCBX8CfiMAQSBrIgQkACABQv///////z+DIQcCQCABQjCIQv//AYMiCKciA0GB/wBrQf0BTQRAIAdCGYinIQICQCAAUCABQv///w+DIgdCgICACFQgB0KAgIAIURtFBEAgAkEBaiECDAELIAAgB0KAgIAIhYRCAFINACACQQFxIAJqIQILQQAgAiACQf///wNLIgUbIQJBgYF/QYCBfyAFGyADaiEDDAELIAAgB4RQIAhC//8BUnJFBEAgB0IZiKdBgICAAnIhAkH/ASEDDAELIANB/oABSwRAQf8BIQMMAQtBgP8AQYH/ACAIUCIFGyIGIANrIgJB8ABKBEBBACECQQAhAwwBCyAEQRBqIAAgByAHQoCAgICAgMAAhCAFGyIHQYABIAJrELUBIAQgACAHIAIQpAMgBCkDCCIAQhmIpyECAkAgBCkDACADIAZHIAQpAxAgBCkDGIRCAFJxrYQiB1AgAEL///8PgyIAQoCAgAhUIABCgICACFEbRQRAIAJBAWohAgwBCyAHIABCgICACIWEQgBSDQAgAkEBcSACaiECCyACQYCAgARzIAIgAkH///8DSyIDGyECCyAEQSBqJAAgAUIgiKdBgICAgHhxIANBF3RyIAJyvgu/AQIFfwJ+IwBBEGsiAyQAIAG8IgRB////A3EhAgJ/IARBF3YiBUH/AXEiBgRAIAZB/wFHBEAgAq1CGYYhByAFQf8BcUGA/wBqDAILIAKtQhmGIQdB//8BDAELIAJFBEBBAAwBCyADIAKtQgAgAmciAkHRAGoQtQEgAykDCEKAgICAgIDAAIUhByADKQMAIQhBif8AIAJrCyECIAAgCDcDACAAIAKtQjCGIARBH3atQj+GhCAHhDcDCCADQRBqJAALqwsBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQJxRQ0BIAAoAgAiAiABaiEBAkACQAJAIAAgAmsiAEGEnwsoAgBHBEAgACgCDCEDIAJB/wFNBEAgAyAAKAIIIgRHDQJB8J4LQfCeCygCAEF+IAJBA3Z3cTYCAAwFCyAAKAIYIQYgACADRwRAIAAoAggiAiADNgIMIAMgAjYCCAwECyAAKAIUIgQEfyAAQRRqBSAAKAIQIgRFDQMgAEEQagshAgNAIAIhByAEIgNBFGohAiADKAIUIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAwDCyAFKAIEIgJBA3FBA0cNA0H4ngsgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggMAgtBACEDCyAGRQ0AAkAgACgCHCICQQJ0QaChC2oiBCgCACAARgRAIAQgAzYCACADDQFB9J4LQfSeCygCAEF+IAJ3cTYCAAwCCwJAIAAgBigCEEYEQCAGIAM2AhAMAQsgBiADNgIUCyADRQ0BCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0AIAMgAjYCFCACIAM2AhgLAkACQAJAAkAgBSgCBCICQQJxRQRAQYifCygCACAFRgRAQYifCyAANgIAQfyeC0H8ngsoAgAgAWoiATYCACAAIAFBAXI2AgQgAEGEnwsoAgBHDQZB+J4LQQA2AgBBhJ8LQQA2AgAPC0GEnwsoAgAgBUYEQEGEnwsgADYCAEH4ngtB+J4LKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohASAFKAIMIQMgAkH/AU0EQCAFKAIIIgQgA0YEQEHwngtB8J4LKAIAQX4gAkEDdndxNgIADAULIAQgAzYCDCADIAQ2AggMBAsgBSgCGCEGIAMgBUcEQCAFKAIIIgIgAzYCDCADIAI2AggMAwsgBSgCFCIEBH8gBUEUagUgBSgCECIERQ0CIAVBEGoLIQIDQCACIQcgBCIDQRRqIQIgAygCFCIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgAMAgsgBSACQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgAMAwtBACEDCyAGRQ0AAkAgBSgCHCICQQJ0QaChC2oiBCgCACAFRgRAIAQgAzYCACADDQFB9J4LQfSeCygCAEF+IAJ3cTYCAAwCCwJAIAUgBigCEEYEQCAGIAM2AhAMAQsgBiADNgIUCyADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEGEnwsoAgBHDQBB+J4LIAE2AgAPCyABQf8BTQRAIAFBeHFBmJ8LaiECAn9B8J4LKAIAIgNBASABQQN2dCIBcUUEQEHwngsgASADcjYCACACDAELIAIoAggLIQEgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBHyEDIAFB////B00EQCABQSYgAUEIdmciAmt2QQFxIAJBAXRrQT5qIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEGgoQtqIQICQAJAQfSeCygCACIEQQEgA3QiB3FFBEBB9J4LIAQgB3I2AgAgAiAANgIAIAAgAjYCGAwBCyABQRkgA0EBdmtBACADQR9HG3QhAyACKAIAIQIDQCACIgQoAgRBeHEgAUYNAiADQR12IQIgA0EBdCEDIAQgAkEEcWoiBygCECICDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC74CAQR/IANB7J4LIAMbIgUoAgAhAwJAAn8CQCABRQRAIAMNAUEADwtBfiACRQ0BGgJAIAMEQCACIQQMAQsgAS0AACIDwCIEQQBOBEAgAARAIAAgAzYCAAsgBEEARw8LQeSMCygCACgCAEUEQEEBIABFDQMaIAAgBEH/vwNxNgIAQQEPCyADQcIBayIDQTJLDQEgA0ECdEHgjwlqKAIAIQMgAkEBayIERQ0DIAFBAWohAQsgAS0AACIGQQN2IgdBEGsgA0EadSAHanJBB0sNAANAIARBAWshBCAGQf8BcUGAAWsgA0EGdHIiA0EATgRAIAVBADYCACAABEAgACADNgIACyACIARrDwsgBEUNAyABQQFqIgEsAAAiBkFASA0ACwsgBUEANgIAQaCKC0EZNgIAQX8LDwsgBSADNgIAQX4LnQQCB38EfiMAQRBrIggkAAJAAkACQCACQSRMBEAgAC0AACIFDQEgACEEDAILQaCKC0EcNgIAQgAhAwwCCyAAIQQCQANAIAXAEMUCRQ0BIAQtAAEhBSAEQQFqIQQgBQ0ACwwBCwJAIAVB/wFxIgZBK2sOAwABAAELQX9BACAGQS1GGyEHIARBAWohBAsCfwJAIAJBEHJBEEcNACAELQAAQTBHDQBBASEJIAQtAAFB3wFxQdgARgRAIARBAmohBEEQDAILIARBAWohBCACQQggAhsMAQsgAkEKIAIbCyIKrSEMQQAhAgNAAkACQCAELQAAIgZBMGsiBUH/AXFBCkkNACAGQeEAa0H/AXFBGU0EQCAGQdcAayEFDAELIAZBwQBrQf8BcUEZSw0BIAZBN2shBQsgCiAFQf8BcUwNACAIIAxCACALQgAQoAFBASEGAkAgCCkDCEIAUg0AIAsgDH4iDSAFrUL/AYMiDkJ/hVYNACANIA58IQtBASEJIAIhBgsgBEEBaiEEIAYhAgwBCwsgAQRAIAEgBCAAIAkbNgIACwJAAkAgAgRAQaCKC0HEADYCACAHQQAgA0IBgyIMUBshByADIQsMAQsgAyALVg0BIANCAYMhDAsgDKcgB3JFBEBBoIoLQcQANgIAIANCAX0hAwwCCyADIAtaDQBBoIoLQcQANgIADAELIAsgB6wiA4UgA30hAwsgCEEQaiQAIAMLawEBfwJAIABFBEBB6J4LKAIAIgBFDQELIAAgARCmBCAAaiICLQAARQRAQeieC0EANgIAQQAPCyACIAEQ8wIgAmoiAC0AAARAQeieCyAAQQFqNgIAIABBADoAACACDwtB6J4LQQA2AgALIAIL6gEBA38CQAJAAkAgAUH/AXEiAiIDBEAgAEEDcQRAA0AgAC0AACIERSACIARGcg0FIABBAWoiAEEDcQ0ACwtBgIKECCAAKAIAIgJrIAJyQYCBgoR4cUGAgYKEeEcNASADQYGChAhsIQQDQEGAgoQIIAIgBHMiA2sgA3JBgIGChHhxQYCBgoR4Rw0CIAAoAgQhAiAAQQRqIgMhACACQYCChAggAmtyQYCBgoR4cUGAgYKEeEYNAAsMAgsgABA8IABqDwsgACEDCwNAIAMiAC0AACICRQ0BIABBAWohAyACIAFB/wFxRw0ACwsgAAsPAEGIjQsgAEEBa603AwALSAECfwJ/IAFBH00EQCAAKAIAIQIgAEEEagwBCyABQSBrIQEgAAsoAgAhAyAAIAIgAXQ2AgAgACADIAF0IAJBICABa3ZyNgIEC8gCAQZ/IwBB8AFrIggkACAIIAMoAgAiBzYC6AEgAygCBCEDIAggADYCACAIIAM2AuwBQQAgAWshDCAFRSEJAkACQAJAAkAgB0EBRwRAIAAhB0EBIQUMAQsgACEHQQEhBSADDQAMAQsDQCAHIAYgBEECdGoiCigCAGsiAyAAIAIQpwNBAEwNASAJQX9zIQtBASEJAkAgCyAEQQJIckEBcUUEQCAKQQhrKAIAIQogByAMaiILIAMgAhCnA0EATg0BIAsgCmsgAyACEKcDQQBODQELIAggBUECdGogAzYCACAIQegBaiIHIAcQjgwiBxC7BSAFQQFqIQUgBCAHaiEEIAMhByAIKALoAUEBRw0BIAgoAuwBDQEMAwsLIAchAwwBCyAHIQMgCUUNAQsgASAIIAUQjQwgAyABIAIgBCAGELMHCyAIQfABaiQAC0sBAn8gACgCBCECIAACfyABQR9NBEAgACgCACEDIAIMAQsgAUEgayEBIAIhA0EACyICIAF2NgIEIAAgAkEgIAFrdCADIAF2cjYCAAshACAAEC8QNyAAKAIAQQNxEKgDIgBFBEBBAA8LIAAQnAELmwEBAX8CQCACQQNPBEBBoIoLQRw2AgAMAQsCQCACQQFHDQAgACgCCCIDRQ0AIAEgAyAAKAIEa6x9IQELIAAoAhQgACgCHEcEQCAAQQBBACAAKAIkEQQAGiAAKAIURQ0BCyAAQQA2AhwgAEIANwMQIAAgASACIAAoAigRHgBCAFMNACAAQgA3AgQgACAAKAIAQW9xNgIAQQAPC0F/C68BAQN/IAMoAkwaIAEgAmwhBSADIAMoAkgiBEEBayAEcjYCSCADKAIEIgYgAygCCCIERgR/IAUFIAAgBiAEIAZrIgQgBSAEIAVJGyIEEB8aIAMgAygCBCAEajYCBCAAIARqIQAgBSAEawsiBARAA0ACQCADELkHRQRAIAMgACAEIAMoAiARBAAiBg0BCyAFIARrIAFuDwsgACAGaiEAIAQgBmsiBA0ACwsgAkEAIAEbCy8AIAAgACABlyABvEH/////B3FBgICA/AdLGyABIAC8Qf////8HcUGAgID8B00bC0EBAn8jAEEQayIBJABBfyECAkAgABC5Bw0AIAAgAUEPakEBIAAoAiARBABBAUcNACABLQAPIQILIAFBEGokACACCzMBAXwCfhAGRAAAAAAAQI9AoyIAmUQAAAAAAADgQ2MEQCAAsAwBC0KAgICAgICAgIB/Cwt/AQJ/IwBBEGsiBCQAAkAgAA0AQdTeCigCACIADQAgBEGg8QkoAgA2AgxB1N4KQQAgBEEMakEAEOABIgA2AgALAn8CQCADRQ0AIAAgAxDHAyIFIANHDQAgBRB4RQ0AIAAgASACIAMQ6QMMAQsgACABIAIgAxAhCxogBEEQaiQAC/oDAwN8An8BfiAAvSIGQiCIp0H/////B3EiBEGAgMCgBE8EQCAARBgtRFT7Ifk/IACmIAC9Qv///////////wCDQoCAgICAgID4/wBWGw8LAkACfyAEQf//7/4DTQRAQX8gBEGAgIDyA08NARoMAgsgAJkhACAEQf//y/8DTQRAIARB//+X/wNNBEAgACAAoEQAAAAAAADwv6AgAEQAAAAAAAAAQKCjIQBBAAwCCyAARAAAAAAAAPC/oCAARAAAAAAAAPA/oKMhAEEBDAELIARB//+NgARNBEAgAEQAAAAAAAD4v6AgAEQAAAAAAAD4P6JEAAAAAAAA8D+goyEAQQIMAQtEAAAAAAAA8L8gAKMhAEEDCyAAIACiIgIgAqIiASABIAEgASABRC9saixEtKK/okSa/d5SLd6tv6CiRG2adK/ysLO/oKJEcRYj/sZxvL+gokTE65iZmZnJv6CiIQMgAiABIAEgASABIAFEEdoi4zqtkD+iROsNdiRLe6k/oKJEUT3QoGYNsT+gokRuIEzFzUW3P6CiRP+DAJIkScI/oKJEDVVVVVVV1T+goiEBIARB///v/gNNBEAgACAAIAMgAaCioQ8LQQN0IgRB4MwIaisDACAAIAMgAaCiIARBgM0IaisDAKEgAKGhIgCaIAAgBkIAUxshAAsgAAsaAQF/EOwDIQBBl94KLQAAQYzeCigCACAAGwvSBwIOfwR8IwBBMGsiBCQAIAEoAhghDyABKAIUIQwgASgCACEGIAEoAgAiB0EAIAdBAEobIQkgASgCGCENIAEoAhQhCANAIAMgCUcEQCAIIANBAnRqKAIAIgUgCCADQQFqIgFBAnRqKAIAIgogBSAKShshCgNAIAUgCkYEQCABIQMMAwsgBUECdCELIAVBAWohBSADIAsgDWooAgBHDQALCwsCQAJAIAMgB04EQCAEQQA2AiggBCAGNgIsIAZBIU8EQCAEIAZBA3YgBkEHcUEAR2pBARAZNgIoCyAGQQAgBkEAShshDQNAIBAiASANRg0CIAwgAUEBaiIQQQJ0aigCACAMIAFBAnRqIgMoAgBrQQFHDQAgBCAEKQIoNwMQIARBEGogARDGAg0AIA8gAygCAEECdGooAgAhCSAEIAQpAig3AwggBEEIaiAJEMYCDQAgBEEoaiAJEMwMIAwgCUECdGoiCigCACEBRAAAAAAAAAAAIRFBACEIQQAhA0EAIQVBACEHA0ACQAJAAkAgCigCBCABSgRAIAwgDyABQQJ0aiIGKAIAIgtBAnRqIg4oAgQgDigCAGtBAUcNAyAEQShqIAsQzAwgAiAAIAkgBigCABDUASESIAYoAgAhCyADIAVHDQIgA0EBdEEBIAMbIgZB/////wNLBEBBxAAhBQwJCyAHIAZBAnQQOSIHRQRAQTAhBQwJCyAHIANBAnRqQQAgBiADa0ECdBAzGiADIAhqIANNDQEgCEECdCEOIAcgBiADIAhrIgNrIghBAnRqIAcgDmogA0ECdBBUGgwBCyAEIAM2AiQgBCAFNgIgIAQgCDYCHCAEIAc2AhggBQRARAAAAAAAAAAARExgd4cuVRhAIAW4IhKjIAVBAUYbIRMgESASoyESIAIgACAJbEEDdGohBkEAIQFEmpmZmZmZuT8hEUEAIQMDQCADIAVGBEADQCABIAVHBEAgBEEYaiABEMsMGiABQQFqIQEMAQsLIAcQGAwHBSAREEUhFCACIARBGGogAxDLDCAAbEEDdGoiCCAUIBKiIAYrAwCgOQMAIAggERBYIBKiIAYrAwigOQMIIANBAWohAyATIBGgIREMAQsACwALQfOkA0GnvwFB2wFBojEQAAALIAYhAwsgESASoCERIAcgBSAIaiADcEECdGogCzYCACAFQQFqIQULIAFBAWohAQwACwALAAtBsKkDQae/AUHIAUGiMRAAAAsgBCgCLEEhTwRAIAQoAigQGAsgBEEwaiQADwsgBCAFEHc2AgBByPYIKAIAQeeDBCAEEB4aECcAC6wCAgp/A3wgACgCGCEHIAAoAhQhBSAAQQEQzAIEQCAFIAAoAgAiBEECdGooAgAiCEUEQEQAAAAAAADwPw8LQQAhACAEQQAgBEEAShshCSABQQAgAUEAShshCgNAIAAgCUcEQCAFIABBAnRqKAIAIgMgBSAAQQFqIgRBAnRqKAIAIgYgAyAGShshBiACIAAgAWxBA3RqIQsDQCADIAZGBEAgBCEADAMFIAcgA0ECdGohDEEAIQBEAAAAAAAAAAAhDgNAIAAgCkZFBEAgCyAAQQN0aisDACACIAwoAgAgAWxBA3RqKwMAoSIPIA+iIA6gIQ4gAEEBaiEADAELCyADQQFqIQMgDSAOn6AhDQwBCwALAAsLIA0gCLejDwtByKcDQae/AUGZAUGe+wAQAAALmAEBA38gAARAIAAoAhAhAiAAKAIUEBggACgCIBAYIAAoAjAQGCAAKAIkBEBBASACdCICQQAgAkEAShshAgNAIAAoAiQhAyABIAJGRQRAIAMgAUECdGooAgAQxwUgAUEBaiEBDAELCyADEBgLIAAoAighAQNAIAEEQCABKAIUIQIgARDaCCAAIAI2AiggAiEBDAELCyAAEBgLCx4BAX8gACgCMCICRQRAIAAgAUEIEBkiAjYCMAsgAgsfAQF/AkAgARDqASICBEAgAigCCA0BCyAAIAEQlwwLC0oCAn8CfCACQQAgAkEAShshAgNAIAIgA0ZFBEAgACADQQN0IgRqKwMAIAEgBGorAwChIgYgBqIgBaAhBSADQQFqIQMMAQsLIAWfC+8BAQR/IwBBEGsiByQAIAEoAhAoAogBIgQgAygCBCIGSQRAIAMhBSAGQSFPBH8gAygCAAUgBQsgBEEDdmoiBSAFLQAAQQEgBEEHcXRyOgAAIAIgAUEBEIUBGiAAIAEQcCEEA0AgBARAIAEgBEEwQQAgBCgCAEEDcSIGQQNHG2ooAigiBUYEQCAEQVBBACAGQQJHG2ooAighBQsgBSgCECgCiAEhBiAHIAMpAgA3AwggB0EIaiAGEMYCRQRAIAAgBSACIAMQywULIAAgBCABEHQhBAwBCwsgB0EQaiQADwtB97MDQdz+AEHQAEHZIRAAAAuuAwIDfwh8IAEQGyEFA0AgBQRAAkAgAyAFRiACIAVGcg0AIAUoAhAiBigC6AEgAUcNACAGLQCGAQ0AIAAgBSAEQQAQgg0QbQsgASAFEBwhBQwBBUEBIQYDQCABKAIQIgUoArQBIAZOBEAgBSgCuAEgBkECdGooAgAiBSACRiADIAVGckUEQEEBQQgQzQIhByAFKAIQIgUrAyghCyAFKwMgIQggBSsDGCEJIAUrAxAhCiAHQQQ2AgQgB0EEQRAQzQIiBTYCAAJ8IAQtABBBAUYEQCAJIAQrAwgiDKEhCSAKIAQrAwAiDaEhCiAIIA2gIQggCyAMoAwBCyAEKwMIIgwgCaIgCSALoEQAAAAAAADgv6IgDEQAAAAAAADwv6CiIg6gIQkgBCsDACINIAqiIAogCKBEAAAAAAAA4L+iIA1EAAAAAAAA8L+goiIPoCEKIA0gCKIgD6AhCCAMIAuiIA6gCyELIAUgCTkDOCAFIAg5AzAgBSALOQMoIAUgCDkDICAFIAs5AxggBSAKOQMQIAUgCTkDCCAFIAo5AwAgACAHEG0LIAZBAWohBgwBCwsLCwucAQEIfyABQQAgAUEAShshCSABQQFqIAFsQQJtQQQQGSEHIAFBBBAZIQQgASEFA0AgAyAJRkUEQCADIAAgASAEEO4DIAIgBWohCCADIQYDQCACIAhGRQRAIAcgAkECdGogBCAGQQJ0aigCALI4AgAgBkEBaiEGIAJBAWohAgwBCwsgBUEBayEFIANBAWohAyAIIQIMAQsLIAQQGCAHCykBAX8gACgCEC8BiAFBDnEhAiABBEAgABDiBxoLIAIEQCAAIAIQzwULCw0AIABB2AMgARD+DBoLuwICA38BfCMAQSBrIgQkAAN/IAAtAAAiBkEJa0EFSSAGQSBGcgR/IABBAWohAAwBBSAGQStGBEBBASEFIABBAWohAAsgASAFOgAQIAQgBEEYajYCACAEIARBEGo2AgQCQAJAAkAgAEGIiQEgBBBPIgAOAgIAAQsgBCAEKwMYOQMQCyABAnwgAS0AEEEBRgRAIAJEAAAAAAAA8D9kBEAgASADIAQrAxggAqMQKjkDACADIAQrAxAgAqMQKgwCCyAEKwMYIQcgAkQAAAAAAADwP2MEQCABIAMgByACoxAiOQMAIAMgBCsDECACoxAiDAILIAEgBzkDACAEKwMQDAELIAEgBCsDGCACo0QAAAAAAADwP6A5AwAgBCsDECACo0QAAAAAAADwP6ALOQMIQQEhAAsgBEEgaiQAIAALCwsmAQJ/IAAoAkgiASAAKAIESQR/IAAgAUEEajYCSCABKAIABUEACwv0AQIFfwh8AkAgACgCCCICRQ0AIAEoAggiA0UNACACKAIkIgQgAygCJCIFRg0AIAIrAwAiCiADKwMIIgeiIAIrAwgiCCADKwMAIguioSIJmUS7vdfZ33zbPWMNACACKwMQIgwgB6IgAysDECINIAiioSAJoyEHAkAgBCsDCCIIIAUrAwgiDmMNACAIIA5hBEAgBCsDACAFKwMAYw0BCyAFIQQgASEACyAALQAQIQACQCAEKwMAIAdlBEAgAA0BDAILIABBAUYNAQtB/P8KEO0HIgYgDSAKoiAMIAuaoqAgCaM5AwggBiAHOQMAIAZBADYCFAsgBguGAQICfwF8IAEgAjYCFCACENQFIAEgAyACKwMIoDkDGCAAKAIAIAAgARCaDUEobGohBANAAkAgBCIFKAIgIgRFDQAgASsDGCIGIAQrAxgiA2QNASADIAZkDQAgAisDACAEKAIUKwMAZA0BCwsgASAENgIgIAUgATYCICAAIAAoAghBAWo2AggLDwAgACAAKAIUQQFqNgIUCyIBAX8gACAAKAIUQQFrIgE2AhQgAUUEQCAAQfz/ChDsBwsLGgAgACsDACABKwMAoSAAKwMIIAErAwihEFALngEBBH8gAEEANgIAAkAgAUEDcUUNAEEEIQNBBCABcEUEQEEEIQEMAQsgASECA0AgAiADRkUEQCACQQAgAiADSCIEGyEFIAJBACADIAQbayECIAMgBWshAwwBCwtBBCACbiABbCEBCyAAIAE2AggCQCAAKAIEIgJFDQADQCACRQ0BIAIoAgAgAigCBBAYIAIQGCECDAALAAsgAEEANgIEC7UBAgN/AnwCQCAAQcgpECYiBARAIAQQiwIiBEECSg0BC0EUIQQLIAQQrwIhBSADIAAoAhAiACsDKEQAAAAAAADgP6KgIQMgAiAAKwMgRAAAAAAAAOA/oqAhAiAEuCEIQQAhAAN/IAAgBEYEfyABIAQ2AgAgBQUgBSAAQQR0aiIGIAC4IAijRBgtRFT7IQlAoiIHIAegIgcQWCADojkDCCAGIAcQRSACojkDACAAQQFqIQAMAQsLCyIAIAAgASsDACACKwMAoDkDACAAIAErAwggAisDCKA5AwgLphECEX8IfCMAQRBrIg0kACAAKAIIIAAoAgRqIgdBIBAZIRAgByAFKAIwIglBAXRBACAJQQBKG2siFUEAIBVBAEobIQ4gASABQ0cDgD+UIAMbuyEXA0AgBiAORwRAIBAgBkEFdGoiCCAFKwMYRAAAAAAAAOA/oiIYIAUoAiggBkEEdGoiESsDACAXokQAAAAAAADgP6IiGSAGQQJ0IhIgAigCAGoqAgC7IhqgoDkDECAIIBogGaEgGKE5AwAgCCAFKwMgRAAAAAAAAOA/oiIYIBErAwggF6JEAAAAAAAA4D+iIhkgAigCBCASaioCALsiGqCgOQMYIAggGiAZoSAYoTkDCCAGQQFqIQYMAQsLAkAgCUEASgRAIAlBAWpBBBAZIRFBACESIAUoAjBBAWpBBBAZIQ5BACECA0AgBSgCMCIGIAJKBEBBACEGIAJBAnQiCiAFKAI0aigCACIIQQAgCEEAShshE0T////////vfyEXRP///////+//IRggCEECaiIMQQQQGSEHIAxBIBAZIQlE////////7/8hGUT////////vfyEaA0AgBiATRwRAIAcgBkECdCILaiAAKAIQIAUoAjggCmooAgAgC2ooAgAiD0ECdGooAgA2AgAgCSAGQQV0aiILIBAgD0EFdGoiDysDACIbOQMAIAsgDysDCCIcOQMIIAsgDysDECIdOQMQIAsgDysDGCIeOQMYIAZBAWohBiAaIBsQKiEaIBcgHBAqIRcgGSAdECIhGSAYIB4QIiEYDAELCyAFKAJEIAJBBXRqIgYgGDkDGCAGIBk5AxAgBiAXOQMIIAYgGjkDACAHIAhBAnRqIAAoAhAgFUECdGogAkEDdGoiBigCADYCACAHIAhBAWoiC0ECdGogBigCBDYCACAJIAhBBXRqIgYgGDkDGCAGIBk5AxAgBiAXOQMIIAYgGjkDACAJIAtBBXRqIgggGDkDGCAIIBk5AxAgCCAXOQMIIAggGjkDACAKIBFqIQsgCiAOagJ/IANFBEAgBiAaRC1DHOviNho/oDkDECAIIBlELUMc6+I2Gr+gOQMAIAwgCSAHIAsgBBD+BwwBCyAGIBdELUMc6+I2Gj+gOQMYIAggGEQtQxzr4jYav6A5AwggDCAJIAcgCxD9BwsiBjYCACAHEBggCRAYIAJBAWohAiAGIBJqIRIMAQsLIAUoAjwgBmoiB0EEEBkhCSAHQSAQGSEIQQAhAiAFKAI8IgZBACAGQQBKGyELA0AgAiALRgRAIAYgByAGIAdKGyEMA0AgBiAMRwRAIAkgBkECdGogBkH7AGpEAAAAAAAA8D8Q/wc2AgAgCCAGQQV0aiICIAUoAkQgBiAFKAI8a0EFdGoiCisDADkDACACIAorAwg5AwggAiAKKwMQOQMQIAIgCisDGDkDGCAGQQFqIQYMAQsLIBEgBSgCMCIGQQJ0aiECIA4gBkECdGoCfyADRQRAIAcgCCAJIAIgBBD+BwwBCyAHIAggCSACEP0HCzYCACAFKAI8IgYgByAGIAdKGyEPA0AgBiAPRwRAIAggBkEFdGohAiAJIAZBAnRqIgwoAgAhBCAGIAUoAjxrQQF0IBVqQQJ0IhMgACgCEGooAgAhCwJ8IANFBEAgAisDECACKwMAoQwBCyACKwMYIAIrAwihC0QAAAAAAADgv6IhFyMAQRBrIgckACALQShqIRQgBCgCLCEWIAQoAighAgNAIAIgFkYEQCAEIAQoAig2AiwgB0EQaiQABSAHIAIoAgAiCjYCDCAKIAs2AgQgCiAXIAorAwigOQMIIBQgB0EMahC/ASACQQRqIQIMAQsLIAwoAgAhAiAAKAIQIBNqKAIEIQojAEEQayIEJAAgCkE0aiELIAIoAjghEyACKAI0IQcDQCAHIBNGBEAgAiACKAI0NgI4IARBEGokAAUgBCAHKAIAIhQ2AgwgFCAKNgIAIAQoAgwiFCAXIBQrAwigOQMIIAsgBEEMahC/ASAHQQRqIQcMAQsLIAwoAgAQxQ0gBkEBaiEGDAELCyAOIAUoAjBBAnRqKAIAIQIgCRAYIAgQGCANIAIgEmoiAxC6BCICNgIMQQAhBANAIAUoAjAgBE4EQEEAIQYgDiAEQQJ0IgdqKAIAIglBACAJQQBKGyEJIAcgEWohCANAIAgoAgAhByAGIAlHBEAgAiAHIAZBAnRqKAIANgIAIAZBAWohBiACQQRqIQIMAQsLQQAgBxDwAyAEQQFqIQQMAQsLIBEQGCAOEBgMAwUgCSACQQJ0IgpqIAAoAhAgBSgCQCAKaigCACIMQQJ0aigCADYCACAIIAJBBXRqIgogECAMQQV0aiIMKwMAOQMAIAogDCsDCDkDCCAKIAwrAxA5AxAgCiAMKwMYOQMYIAJBAWohAgwBCwALAAsgACgCECECIANFBEAgByAQIAIgDUEMaiAEEP4HIQMMAQsgByAQIAIgDUEMahD9ByEDCwJAIAAoAhRBAEwNACAAKAIkEMINIAAoAhghBgNAIAAoAhwhAiAAKAIUIAZKBEAgAiAGQQJ0aigCACICBEAgAhDvDQsgAhAYIAZBAWohBgwBCwsgAiAAKAIgRg0AQQAgAhDwAwsCQCAAKAIYIgJFBEAgACADNgIUIAAgDSgCDDYCHAwBCyAAIAIgA2oiAjYCFCAAIAIQugQ2AhxBACEGIAAoAhQiAkEAIAJBAEobIQIDQCACIAZHBEAgBkECdCIDIAAoAhxqAn8gACgCGCIEIAZKBEAgAyAAKAIgagwBCyANKAIMIAYgBGtBAnRqCygCADYCACAGQQFqIQYMAQsLQQAgDSgCDBDwAyAAKAIUIQMLQZzbCi0AAARAIA0gAzYCAEHI9ggoAgBB8+YDIA0QHhogACgCFCEDCyAAIAAoAgwgACgCCCAAKAIEamogACgCECADIAAoAhwQxw02AiQgEBAYIA1BEGokAAs4AQF/IABBACAAQQBKGyEAA0AgACACRwRAIAEgAkEDdGpEAAAAAAAAAAA5AwAgAkEBaiECDAELCwtFAQN/IABBACAAQQBKGyEAA0AgACAERkUEQCABIARBAnQiBWoiBiACIAMgBWoqAgCUIAYqAgCSOAIAIARBAWohBAwBCwsLQwECfyAAQQAgAEEAShshBQNAIAQgBUZFBEAgAyAEQQN0IgBqIAAgAWorAwAgACACaisDAKA5AwAgBEEBaiEEDAELCwtDAQJ/IABBACAAQQBKGyEFA0AgBCAFRkUEQCADIARBA3QiAGogACABaisDACAAIAJqKwMAoTkDACAEQQFqIQQMAQsLCxAAIAAoAiArAxAgACsDGKALzQICBH8BfCMAQSBrIgUkAAJAIAAoAgQiBCAAKAIISQRAIAMrAwAhCCAEIAEoAgA2AgAgBCACKAIANgIEIAQgAigCBCIBNgIIIAEEQCABIAEoAgRBAWo2AgQLIAQgCDkDECAEQRhqIQIMAQsgBCAAKAIAa0EYbUEBaiIEQavVqtUATwRAEL4EAAsgBUEMakGq1arVACAAKAIIIAAoAgBrQRhtIgZBAXQiByAEIAQgB0kbIAZB1arVKk8bIAAoAgQgACgCAGtBGG0gAEEIahDTDSEEIAMrAwAhCCAEKAIIIgMgASgCADYCACADIAIoAgA2AgQgAyACKAIEIgI2AgggAyEBIAIEQCACIAIoAgRBAWo2AgQgBCgCCCEBCyADIAg5AxAgBCABQRhqNgIIIAAgBBDSDSAAKAIEIQIgBBDRDQsgACACNgIEIAVBIGokAAtKAQF/IAAgARCrAyIBIABBBGpHBEAgARCwASECIAEgACgCAEYEQCAAIAI2AgALIAAgACgCCEEBazYCCCAAKAIEIAEQ2g0gARAYCwt6AQZ8IAErAwAiAiABKwMIIgQgAqFEAAAAAAAA4D+ioCEFIAArAwAiAyAAKwMIIgYgA6FEAAAAAAAA4D+ioCEHIAIgBmNFIAUgB2ZFckUEQCAGIAKhDwsgBCADoUQAAAAAAAAAACAFIAdlG0QAAAAAAAAAACADIARjGwu6AgECfyADIAE2AgggA0IANwIAIAIgAzYCACAAKAIAKAIAIgEEQCAAIAE2AgAgAigCACEDCyADIAMgACgCBCIFRjoADAJAA0AgAyAFRg0BIAMoAggiAi0ADA0BIAIoAggiASgCACIEIAJGBEACQCABKAIEIgRFDQAgBC0ADA0AIAJBAToADCABIAEgBUY6AAwgBEEBOgAMIAEhAwwCCyACKAIAIANHBEAgAhC9BCACKAIIIgIoAgghAQsgAkEBOgAMIAFBADoADCABELwEDAILAkAgBEUNACAELQAMDQAgAkEBOgAMIAEgASAFRjoADCAEQQE6AAwgASEDDAELCyACKAIAIANGBEAgAhC8BCACKAIIIgIoAgghAQsgAkEBOgAMIAFBADoADCABEL0ECyAAIAAoAghBAWo2AggLdAEEfyAAQQRqIQMgACgCACEBA0AgASADRwRAIAEoAhAiBC0AKEEBRgRAIAEiAhCwASEBIAIgACgCAEYEQCAAIAE2AgALIAAgACgCCEEBazYCCCAAKAIEIAIQ2g0gAhAYIAQQ4g0QGAUgARCwASEBCwwBCwsLPgEBfyABQYCAgIAETwRAEL4EAAtB/////wMgACgCCCAAKAIAayIAQQF1IgIgASABIAJJGyAAQfz///8HTxsLuQEBBH8gASACEOsNIAIoAiwhBiACKAIoIQQDQCAEIAZGBEACQCACKAI4IQYgAigCNCEEA0AgBCAGRg0BAkAgBCgCACIHKAIEIgUoAiAgAEcgAyAFRnINACAHLQAcQQFxRQ0AIAAgASAFIAIQ5gULIARBBGohBAwACwALBQJAIAQoAgAiBygCACIFKAIgIABHIAMgBUZyDQAgBy0AHEEBcUUNACAAIAEgBSACEOYFCyAEQQRqIQQMAQsLC7wBAQR/IAEoAjghBiABKAI0IQMDQCADIAZGBEACQCABKAIsIQYgASgCKCEDA0AgAyAGRg0BAkAgAygCACIEKAIAIgUoAiAgAEcgAiAFRnINACAELQAcQQFxRQ0AIARCADcDECAAIAUgARDnBQsgA0EEaiEDDAALAAsFAkAgAygCACIEKAIEIgUoAiAgAEcgAiAFRnINACAELQAcQQFxRQ0AIARCADcDECAAIAUgARDnBQsgA0EEaiEDDAELCwurAQIDfwN8IwBBEGsiBCQAIAJBAToAHCABKwMgIQcgACABKwMYIgggACsDGKAiCTkDGCAAIAArAyAgByADIAiioaAiBzkDICAAIAcgCaM5AxAgASgCBCEGIAEoAgAhAgNAIAIgBkYEQCABQQE6ACggBEEQaiQABSAEIAIoAgAiBTYCDCAFIAA2AiAgBSADIAUrAxigOQMYIAAgBEEMahC/ASACQQRqIQIMAQsLCw0AIAAtABhBAXZBAXELnhgCEn8GfCAAIABBAEGgmQFBABAhQX9BARBjIQIgAEEKEIUCIwBBIGsiBSQAIAVBBTYCFAJAIABBuSYQJiIGRQ0AIAUgBUEUajYCBCAFIAVBGGo2AgAgBkHRtAEgBRBPQQBMDQBBk+gEQQAQKwsgBUEgaiQAIAAgABCHDiAAEIsOQZzbCi0AAARAQbvNBEHI9ggoAgAQgAEaCyAAEJIPIAJBAUYEQCAAQQEQmAhBAA8LQZzbCi0AAARAQfnMBEHI9ggoAgAQgAEaCwJAIAAQhA8iDw0AIAJBAkYEQCAAQQIQmAhBAA8LQZzbCi0AAARAQZrNBEHI9ggoAgAQgAEaCyAAELQOIAJBA0YEQCAAQQIQmAhBAA8LAkAgACgCEC0AiAFBEHFFDQAgAEHz9gBBABCTASIKRQ0AIAoQGyEIA0AgCARAIAogCBAcIAAgCBCFBkEAIQUgACgCECgCxAEiDCAIKAIQKAL0AUHIAGwiDWoiCSgCACIDQQAgA0EAShshAgJAA0AgAiAFRwRAIAggCSgCBCAFQQJ0aigCAEYEQANAIAwgDWohCSAFQQFqIgIgA04NBCAJKAIEIgkgBUECdGogCSACQQJ0aigCADYCACAAKAIQKALEASIMIA1qKAIAIQMgAiEFDAALAAUgBUEBaiEFDAILAAsLQZruAEGHvAFB9gFBjfcAEAAACyAJIANBAWs2AgAgCBCJDiAAIAgQ1AQhCAwBCwsgACAKEMwNCyAAEOUOIABBARDQDiIPDQBBACEPIABBtacBECYQa0UNACMAQcACayIBJAAgABCmCiEQIAAQGyEOA0AgDgRAIAAgDhAtIQcDQAJAAkACQAJAAkAgBwRAIAdBg7QBECYgEBCNDiIDIAdB5vEAECYgEBCNDiIKckUNBSAHKAIQKAIIIgJFDQUgAigCBEECTwRAIAdBMEEAIAcoAgBBA3FBA0cbaigCKBAgIQYgASAHQVBBACAHKAIAQQNxQQJHG2ooAigQIDYCBCABIAY2AgBB2rkEIAEQKwwGCyAHIAdBMGoiBSAHKAIAQQNxIgZBA0YbKAIoIREgByAHQTBrIgwgBkECRhsoAighDSACKAIAIgQoAgQhCSABQZACakEAQTAQMxogASAEKAIMIgs2ApwCIAEgBCgCCCICNgKYAgJAAkACQAJAIANFDQBBtfcDIQgCQCADKAIQIgMrAxAiFCANKAIQIgYrABAiE2VFDQAgEyADKwMgIhVlRQ0AIAMrAxgiFiAGKwAYIhNlRQ0AIBMgAysDKCIXZUUNACADQRBqIRICQCAUIAQoAgAiAysAACITZUUgEyAVZUVyDQAgFiADKwAIIhNlRSATIBdlRXINAAJAIBQgESgCECIGKwAQIhNlRSATIBVlRXINACAWIAYrABgiE2VFDQBB4PcDIQggEyAXZQ0CCwJAIBQgBCsAECITZUUgEyAVZUVyDQAgFiAEKwAYIhNlRQ0AIBMgF2UNAwsgAkUNBSABIAMpAwg3A8gBIAEgAykDADcDwAEgASAEKQMYNwO4ASABIAQpAxA3A7ABIAFB0AFqIAFBwAFqIAFBsAFqIBIQ7QUgBCgCACIGIAEpA9ABNwMwIAYgASkD2AE3AzggBCsAECETIAErA9ABIRggBCgCACICIAQrABggASsD2AEiFqBEAAAAAAAA4D+iIhQ5AxggAiATIBigRAAAAAAAAOA/oiIVOQMQIAQrABAhFyAEKwAYIRMgAiAWIBSgRAAAAAAAAOA/ojkDKCACIBggFaBEAAAAAAAA4D+iOQMgIAIgFCAToEQAAAAAAADgP6I5AwggAiAVIBegRAAAAAAAAOA/ojkDACAEKAIMIgZFBEBBAyEGDAQLIAcgAkEAQQAgAUGQAmogBhDvBkEDaiEGDAMLIAlBAWshBkEAIQMDQAJAIAMgBk8NACAEKAIAIANBBHRqIBIQjA4NACADQQNqIQMMAQsLIAQoAgwhAiADIAZGBEAgAkUNBCAEKAIAIQIgASAEKQMoNwOoASABIAQpAyA3A6ABIAEgAiAGQQR0aiICKQMINwOYASABIAIpAwA3A5ABIAFB0AFqIAFBoAFqIAFBkAFqIBIQ7QUgASABKQPYATcDuAIgASABKQPQATcDsAIMAwsgAgR/IAcgBCgCAEEAIAMgAUGQAmogAhDvBgUgAwtBA2ohBgwCCyARECAhAiAHIAwgBygCAEEDcUECRhsoAigQICEGIAEgB0GDtAEQJjYCiAEgASAGNgKEASABIAI2AoABIAggAUGAAWoQKyAEKAIMIQsLIAlBAWshBiALRQ0AIAEgBCkDIDcDsAIgASAEKQMoNwO4AgsgCkUNBEGT9gMhAyAKKAIQIggrAxAiFCARKAIQIgIrABAiE2VFDQMgEyAIKwMgIhVlRQ0DIAgrAxgiFiACKwAYIhNlRQ0DIBMgCCsDKCIXZUUNAyAIQRBqIQoCQCAUIAYiAkEEdCIIIAQoAgBqIgkrAAAiE2VFIBMgFWVFcg0AIBYgCSsACCITZUUgEyAXZUVyDQACQCAUIA0oAhAiAisAECITZUUgEyAVZUVyDQAgFiACKwAYIhNlRQ0AQb72AyEDIBMgF2UNBQsgBCgCDEUNBQJAIBQgASsDsAIiE2VFIBMgFWVFcg0AIBYgASsDuAIiE2VFDQAgEyAXZQ0GCyABIAkpAwg3A3ggASAJKQMANwNwIAEgASkDuAI3A2ggASABKQOwAjcDYCABQdABaiABQfAAaiABQeAAaiAKEO0FIAQoAgAgBkEDayICQQR0aiIFIAEpA9ABNwMAIAUgASkD2AE3AwggASsDsAIhEyABKwPQASEYIAggBCgCACIIaiIFQQhrIAErA7gCIAErA9gBIhagRAAAAAAAAOA/oiIUOQMAIAVBEGsgEyAYoEQAAAAAAADgP6IiFTkDACABKwOwAiEXIAErA7gCIRMgBUEYayAWIBSgRAAAAAAAAOA/ojkDACAFQSBrIBggFaBEAAAAAAAA4D+iOQMAIAUgFCAToEQAAAAAAADgP6I5AwggBSAVIBegRAAAAAAAAOA/ojkDACAEKAIIIgVFDQcgByAIIAIgAiABQZACaiAFEO4GIQIMBwsDQCACRQ0GQQAhAwNAIANBBEYEQCABQdABaiAKEIwORQRAIAJBA2shAgwDC0EAIQMDQCADQQRHBEAgBCgCACACIANrQQR0aiIIIAFB0AFqIANBBHRqIgUpAwA3AwAgCCAFKQMINwMIIANBAWohAwwBCwsgAkEDayECIAQoAggiBUUNCSAHIAQoAgAgAiAGQQNrIAFBkAJqIAUQ7gYhAgwJBSABQdABaiADQQR0aiIIIAQoAgAgAiADa0EEdGoiBSkDADcDACAIIAUpAwg3AwggA0EBaiEDDAELAAsACwALQfCHAUGJwgFB6wJBq6EBEAAAC0HlhwFBicIBQdkCQauhARAAAAsgACAOEBwhDgwHCyAHIAUgBygCAEEDcUEDRhsoAigQICEFIAcgDCAHKAIAQQNxQQJGGygCKBAgIQIgASAHQebxABAmNgI4IAEgAjYCNCABIAU2AjAgAyABQTBqECsLQQAhAiAEKAIIRQ0BIAEgBCkDEDcDoAIgASAEKQMYNwOoAgwBC0EAIQIgBCgCCEUNACAEKAIAIQUgASAEKQMYNwNYIAEgBCkDEDcDUCABIAUpAwg3A0ggASAFKQMANwNAIAFB0AFqIAFB0ABqIAFBQGsgChDtBSABIAEpA9gBNwOoAiABIAEpA9ABNwOgAgsgASAGIAJrQQFqIgs2ApQCIAtBgICAgAFJBEBBACALIAtBEBBBIgYbRQRAIAEgBjYCkAJBACEDA0AgAyALTwRAIAQoAgAQGCAHKAIQKAIIKAIAIAFBkAJqQTAQHxoMBAUgASgCkAIgA0EEdGoiBSAEKAIAIAJBBHRqIgYpAwA3AwAgBSAGKQMINwMIIAJBAWohAiADQQFqIQMgASgClAIhCwwBCwALAAsgASALQQR0NgIgQcj2CCgCAEHV7AMgAUEgahAeGhAnAAsgAUEQNgIUIAEgCzYCEEHI9ggoAgBBhu0DIAFBEGoQHhoQJwALIAAgBxAwIQcMAAsACwsgEBCaARogAUHAAmokAAsgDwu2AgIBfAR/IwBBkAFrIggkAAJAIAEgAmEEQCABIQYMAQtBfyAAKwMIIgYgA2QgAyAGZBsiCUUhCkEBIQcDQCAHQQRGRQRAIAogCUEARyAJQX8gACAHQQR0aisDCCIGIANkIAMgBmQbIglHcWohCiAHQQFqIQcMAQsLRAAAAAAAAPC/IQYCQAJAIAoOAgIAAQsgACsDOCADoZlEexSuR+F6dD9lRQ0AIAJEAAAAAAAA8L8gACsDMCIBIAVlG0QAAAAAAADwvyABIARmGyEGDAELIAggAEQAAAAAAADgPyAIQdAAaiIAIAhBEGoiBxClASAAIAEgASACoEQAAAAAAADgP6IiASADIAQgBRDrBSIGRAAAAAAAAAAAZg0AIAcgASACIAMgBCAFEOsFIQYLIAhBkAFqJAAgBgu2AgIBfAR/IwBBkAFrIggkAAJAIAEgAmEEQCABIQYMAQtBfyAAKwMAIgYgA2QgAyAGZBsiCUUhCkEBIQcDQCAHQQRGRQRAIAogCUEARyAJQX8gACAHQQR0aisDACIGIANkIAMgBmQbIglHcWohCiAHQQFqIQcMAQsLRAAAAAAAAPC/IQYCQAJAIAoOAgIAAQsgACsDMCADoZlEexSuR+F6dD9lRQ0AIAJEAAAAAAAA8L8gACsDOCIBIAVlG0QAAAAAAADwvyABIARmGyEGDAELIAggAEQAAAAAAADgPyAIQdAAaiIAIAhBEGoiBxClASAAIAEgASACoEQAAAAAAADgP6IiASADIAQgBRDsBSIGRAAAAAAAAAAAZg0AIAcgASACIAMgBCAFEOwFIQYLIAhBkAFqJAAgBguLBAIJfAF/IwBBQGoiDSQAIAMrAxghCCADKwMQIQkgAysDCCEKIAIrAwghByABKwMIIQUgASsDACEGAkACQCACKwMAIgsgAysDACIMY0UNACAAIAw5AwAgACAFAn8gBSAHoSAMIAahoiAGIAuhoyIEmUQAAAAAAADgQWMEQCAEqgwBC0GAgICAeAu3oCIEOQMIIAQgCmZFDQAgBCAIZQ0BCwJAIAkgC2NFDQAgACAJOQMAIAAgBQJ/IAUgB6EgCSAGoaIgBiALoaMiBJlEAAAAAAAA4EFjBEAgBKoMAQtBgICAgHgLt6AiBDkDCCAEIApmRQ0AIAQgCGUNAQsCQCAHIApjRQ0AIAAgCjkDCCAAIAYCfyAGIAuhIAogBaGiIAUgB6GjIgSZRAAAAAAAAOBBYwRAIASqDAELQYCAgIB4C7egIgQ5AwAgBCAMZkUNACAEIAllDQELAkAgByAIZEUNACAAIAg5AwggACAGAn8gBiALoSAIIAWhoiAFIAehoyIEmUQAAAAAAADgQWMEQCAEqgwBC0GAgICAeAu3oCIEOQMAIAQgDGZFDQAgBCAJZQ0BCyANIAg5AzggDSAJOQMwIA0gCjkDKCANIAw5AyAgDSAHOQMYIA0gCzkDECANIAU5AwggDSAGOQMAQdDyBCANEDZBnZ0DQYnCAUHEAEGviAEQAAALIA1BQGskAAu7AQEEfyADIAEQkw4DQAJAIAMoAggiAUUNACADIAFBAWsQkg4hBCADIAMoAghBAWs2AgggBEUNACADKAIQIgEEQCAEIAIgAREDAAsgBUEBaiEFIAAgBBBwIQEDQCABRQ0CIAQgAUEwQQAgASgCAEEDcSIHQQNHG2ooAigiBkYEQCABQVBBACAHQQJHG2ooAighBgsgBkF/IAMoAhQRAABFBEAgAyAGEJMOCyAAIAEgBBB0IQEMAAsACwsgBQusAQEBfwJAIAAQKARAIAAQJEEPRg0BCyAAECQgABBITwRAIABBARCbCAsgABAkIQEgABAoBEAgACABakEAOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG+uQNBr4EBQZ0CQa61ARAAAAsgACgCACABakEAOgAAIAAgACgCBEEBajYCBAsCQCAAECgEQCAAQQA6AA8MAQsgAEEANgIECyAAECgEfyAABSAAKAIACwvxAgEEfyMAQTBrIgIkACACIAE2AgwgAiABNgIsIAIgATYCEAJAAkACQAJAAkBBAEEAQdQXIAEQYSIFQQBIDQBBASEDIAVBAWohAQJAIAUgABBIIAAQJGsiBE8EQCAAEChBACABIARrIgRBAUYbDQEgACAEEJsIC0EAIQMLIAJCADcDGCACQgA3AxAgAyAFQRBPcQ0BIAJBEGohBCAFIAMEfyAEBSAAEHULIAFB1BcgAigCLBBhIgFHIAFBAE5xDQIgAUEATA0AIAAQKARAIAFBgAJPDQQgAwRAIAAQdSACQRBqIAEQHxoLIAAgAC0ADyABajoADyAAECRBEEkNAUG+uQNBr4EBQdgBQZwfEAAACyADDQQgACAAKAIEIAFqNgIECyACQTBqJAAPC0GmqANBr4EBQcsBQZwfEAAAC0HWnANBr4EBQdABQZwfEAAAC0HLzgFBr4EBQdMBQZwfEAAAC0G8oQFBr4EBQdoBQZwfEAAAC/IBAQN/QYvHASEEAkAgAUUNACABIQIDQCACLQAAIQMgAkEBaiECIANB3wBGDQAgA0UEQCABIQQMAgsgA8AiA0FfcUHBAGtBGkkgA0Ewa0EKSXINAAsLAkACQCAEEDwiAUUNACAAEEggABAkayABSQRAIAAgARCbCAsgABAkIQIgABAoBEAgACACaiAEIAEQHxogAUGAAk8NAiAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvrkDQa+BAUGFAkG67QAQAAALIAAoAgAgAmogBCABEB8aIAAgACgCBCABajYCBAsPC0HkzgFBr4EBQYMCQbrtABAAAAv/AwIBfAd/An8gACsDCCIDRAAAAAAAAOA/RAAAAAAAAOC/IANEAAAAAAAAAABmG6AiA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLIQYCfyABKwMIIgNEAAAAAAAA4D9EAAAAAAAA4L8gA0QAAAAAAAAAAGYboCIDmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAsiByAGayIEIARBH3UiBXMgBWsCfyAAKwMAIgNEAAAAAAAA4D9EAAAAAAAA4L8gA0QAAAAAAAAAAGYboCIDmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAshAEEBdCEFQX9BASAEQQBMGyEJQX9BAQJ/IAErAwAiA0QAAAAAAADgP0QAAAAAAADgvyADRAAAAAAAAAAAZhugIgOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CyIIIABrIgFBAEwbIQoCQCAFIAEgAUEfdSIEcyAEa0EBdCIESARAIAUgBEEBdWshAQNAIAIgALcgBrcQuQIgACAIRg0CIAEgBWogBEEAIAFBAE4iBxtrIQEgACAKaiEAIAlBACAHGyAGaiEGDAALAAsgBCAFQQF1ayEBA0AgAiAAtyAGtxC5AiAGIAdGDQEgASAEaiAFQQAgAUEATiIIG2shASAGIAlqIQYgCkEAIAgbIABqIQAMAAsACwtpAQJ/IwBBEGsiAyQAAkAgAEHu9wAQJiIERQRAIAEhAAwBCyADIANBDGo2AgAgBEGrtQEgAxBPQQFGBEAgAygCDCIAQQBODQELIAEhACAELQAAQSByQfQARw0AIAIhAAsgA0EQaiQAIAAL8QECBH8HfCAAIAEgAiADEJYORQRAIAIQvAIgAigCECIDKwMoIQggAysDICEJIAMrAxghCiADKwMQIQsDQCAAIAVGBEAgAyAIOQMoIAMgCTkDICADIAo5AxggAyALOQMQBUEBIQIgASAFQQJ0aigCACgCECIGKAK0ASIEQQAgBEEAShtBAWohBwNAIAIgB0cEQCAGKAK4ASACQQJ0aigCACgCECIEKwAQIQwgBCsAGCENIAQrACAhDiAIIAQrACgQIiEIIAkgDhAiIQkgCiANECohCiALIAwQKiELIAJBAWohAgwBCwsgBUEBaiEFDAELCwsLPAECfyMAQRBrIgEkAEEBIAAQQSICRQRAIAEgADYCAEHI9ggoAgBB1ewDIAEQHhoQJwALIAFBEGokACACC40EAgV/AnwgAygCECIFKAJgBH8gAigCECgC9AEgASgCECgC9AFqQQJtBUF/CyEIAkAgBSgCsAFFBEAgASgCECgC9AEhBwNAIAIoAhAoAvQBIgQgB0oEQCACIQUgBCAHQQFqIgdKBEACQCAHIAhGBEAgAygCECgCYCIFKwMgIQkgBSsDGCEKIAAQswIiBSgCECADKAIQKAJgNgJ4IAUQNyEGIAUoAhAiBCAGKAIQKAL4Abc5A1ggAygCEC0Acw0BIAAQNyEGIAUoAhAiBCAJIAogBigCECgCdEEBcSIGGzkDYCAEIAogCSAGGzkDUAwBCyAAIAAQswIiBRClDiAFKAIQIQQLIAQgBzYC9AELAkACQEEwQQAgASAFIAMQ4QEiASgCAEEDcSIEQQNHGyABaigCKCgCECIGLQCsAUEBRwR/IAYsALYBQQJIBUECC0EMbCABQVBBACAEQQJHG2ooAigoAhAiBC0ArAFBAUcEfyAELAC2AUECSAVBAgtBAnRqQZDJCGooAgAiBEEATgRAIAEoAhAiASgCnAEiBkH/////ByAEbkoNASABIAQgBmw2ApwBDAILQZOXA0HQvAFBig5B/CAQAAALQbC0BEEAEDYQJwALIAUhAQwBCwsgAygCECgCsAFFDQEPC0GC0wFBxMIBQdUAQfXnABAAAAtB+tYBQcTCAUHjAEH15wAQAAALtAECAnwDfyAAKAIQKAKAAkUEQCAAEGIQswIiAygCEEECOgCsASAAEGIQswIiBCgCEEECOgCsAQJAIAAoAhAoAgxFDQAgABBiIABGDQAgABA3KAIQLQB0QQFxDQAgAyAEAn8gACgCECIFKwMwIgEgBSsDUCICIAEgAmQbIgGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4C7dBABCjARoLIAAoAhAiACAENgKEAiAAIAM2AoACCwuBAgIBfwR8IwBBIGsiByQAIAcgACABIANBACAEEK8DIAUgBykDGDcDGCAFIAcpAxA3AxAgBSAHKQMINwMIIAUgBykDADcDACAFQQQ2AjAgBSsDECEIIAUrAwAhCQJAIAYEQCACIARBAiAFQQAQhwUMAQsgAiAEQQIgBUEAEIYFCwJAIAggCWRFDQAgBUE4aiICIAUoAjQiAUEFdGpBCGsrAwAiCiADKAIQIgMrAxggACgCECgCxAEgAygC9AFByABsaisDGKAiC2NFDQAgBSABQQFqNgI0IAIgAUEFdGoiACALOQMYIAAgCDkDECAAIAo5AwggACAJOQMACyAHQSBqJAAL5UYCEn8IfCMAQZAHayICJABB7P4KIAAoAhAoAnQiA0EBcSIKOgAAQej+CiADQQNxNgIAAkAgCgRAIAAQ1Q4MAQsgABDUDgsgACgCECIDLwGIASEKAkAgAy0AcSIDQTZxRQRAIANBAXFFDQFB5NsKKAIADQELIApBDnEhByAAEBshCUEAIQNBACEKA0AgCQRAAkAgCSgCECgCfCIGRQ0AIAYtAFFBAUYEQCAEQQFqIQQMAQsgCkEBaiEKCyAAIAkQLSEFA0AgBQRAAkAgBSgCECIGKAJsIg1FDQAgDS0AUUEBRgRAIARBAWohBAwBCyAHRQ0AIAMgBigCCEEAR2ohAwsCQCAGKAJkIg1FDQAgDS0AUUEBRgRAIARBAWohBAwBCyAHRQ0AIAMgBigCCEEAR2ohAwsCQCAGKAJoIg1FDQAgDS0AUUEBRgRAIARBAWohBAwBCyAHRQ0AIAMgBigCCEEAR2ohAwsCQCAGKAJgIg1FDQAgDS0AUUEBRgRAIARBAWohBAwBCyAHRQ0AIAMgBigCCEEAR2ohAwsgACAFEDAhBQwBCwsgACAJEBwhCQwBCwsgACgCEC0AcUEIcQRAIAAQ0w4hDAsgAyAKaiINRQ0AIAAQOCADIARqIAxqaiIQQSgQGSEJIA1BKBAZIQogAkL/////////dzcDiAcgAkL/////////dzcDgAcgAkL/////////9/8ANwP4BiACQv/////////3/wA3A/AGIAAQGyELIAkhAyAKIQYDQCALBEAgCygCECIFQShBIEHs/gotAAAiBBtqKwMAIRQgAisDiAchFiACKwP4BiEXIAIrA/AGIRggAisDgAchGSADIAVBIEEoIAQbaisDAEQAAAAAAABSQKIiGzkDGCADIBREAAAAAAAAUkCiIho5AxAgAyALKAIQIgUpAxA3AwAgAyAFKQMYNwMIIAMgAysDACAaRAAAAAAAAOA/oqEiFDkDACADIAMrAwggG0QAAAAAAADgP6KhIhU5AwggAiAZIBogFKAiGiAZIBpkGzkDgAcgAiAYIBQgFCAYZBs5A/AGIAIgFyAVIBUgF2QbOQP4BiACIBYgGyAVoCIUIBQgFmMbOQOIBwJAIAsoAhAoAnwiBUUNACAFLQBRQQFGBEAgAiACKQP4BjcDyAUgAiACKQOABzcD0AUgAiACKQOIBzcD2AUgAiACKQPwBjcDwAUgAkHIBmogBSADQShqIgMgAkHABWoQ9wMgAiACKQPgBjcDiAcgAiACKQPYBjcDgAcgAiACKQPQBjcD+AYgAiACKQPIBjcD8AYMAQsCQCAEBEAgBiAFKwMgOQMAIAYgBSsDGDkDCAwBCyAGIAUpAxg3AwAgBiAFKQMgNwMICyAGQQA6ACQgBiAFNgIgIAMgBjYCICAGQShqIQYLIANBKGohAyAAIAsQLSEFA0ACQAJAAkACQAJAIAUEQCAFKAIQIgQoAmAiCARAAkAgCC0AUUEBRgRAIAIgAikD+AY3A5gFIAIgAikDgAc3A6AFIAIgAikDiAc3A6gFIAIgAikD8AY3A5AFIAJByAZqIAggAyACQZAFahD3AyACIAIpA+AGNwOIByACIAIpA9gGNwOAByACIAIpA9AGNwP4BiACIAIpA8gGNwPwBgwBCyAHRQ0DIAQoAghFDQMgAkG4BmogACAFELgKIAIgAikDwAY3A9AGIAIgAikDuAY3A8gGIAJCADcD4AYgAkIANwPYBiADIAIpA+AGNwMYIAMgAikD2AY3AxAgAyACKQPQBjcDCCADIAIpA8gGNwMAIANCADcDIAJAQez+Ci0AAEEBRgRAIAYgCCsDIDkDACAGIAgrAxg5AwgMAQsgBiAIKQMYNwMAIAYgCCkDIDcDCAsgBkEAOgAkIAYgCDYCICADIAY2AiAgBkEoaiEGCyAFKAIQIQQgA0EoaiEDCyAEKAJoIggEQAJAIAgtAFFBAUYEQCACIAIpA/gGNwPoBCACIAIpA4AHNwPwBCACIAIpA4gHNwP4BCACIAIpA/AGNwPgBCACQcgGaiAIIAMgAkHgBGoQ9wMgAiACKQPgBjcDiAcgAiACKQPYBjcDgAcgAiACKQPQBjcD+AYgAiACKQPIBjcD8AYMAQsgB0UNBCAEKAIIRQ0EAkAgBRCXAyIERQRAIAJCADcDsAYgAkIANwOoBgwBCyAEKAIAIgQoAggEQCACIAQpAxg3A7AGIAIgBCkDEDcDqAYMAQsgAiAEKAIAIgQpAwg3A7AGIAIgBCkDADcDqAYLIAIgAikDsAY3A9AGIAIgAikDqAY3A8gGIAJCADcD4AYgAkIANwPYBiADIAIpA+AGNwMYIAMgAikD2AY3AxAgAyACKQPQBjcDCCADIAIpA8gGNwMAIANCADcDIAJAQez+Ci0AAEEBRgRAIAYgCCsDIDkDACAGIAgrAxg5AwgMAQsgBiAIKQMYNwMAIAYgCCkDIDcDCAsgBkEAOgAkIAYgCDYCICADIAY2AiAgBkEoaiEGCyAFKAIQIQQgA0EoaiEDCyAEKAJkIggEQAJAIAgtAFFBAUYEQCACIAIpA/gGNwO4BCACIAIpA4AHNwPABCACIAIpA4gHNwPIBCACIAIpA/AGNwOwBCACQcgGaiAIIAMgAkGwBGoQ9wMgAiACKQPgBjcDiAcgAiACKQPYBjcDgAcgAiACKQPQBjcD+AYgAiACKQPIBjcD8AYMAQsgB0UNBSAEKAIIRQ0FAkAgBRCXAyIERQRAIAJCADcDoAYgAkIANwOYBgwBCyAEKAIAIAQoAgRBMGxqIgRBJGsoAgAEQCACIARBEGsiBCkDCDcDoAYgAiAEKQMANwOYBgwBCyACIARBMGsoAgAgBEEsaygCAEEEdGpBEGsiBCkDCDcDoAYgAiAEKQMANwOYBgsgAiACKQOgBjcD0AYgAiACKQOYBjcDyAYgAkIANwPgBiACQgA3A9gGIAMgAikD4AY3AxggAyACKQPYBjcDECADIAIpA9AGNwMIIAMgAikDyAY3AwAgA0IANwMgAkBB7P4KLQAAQQFGBEAgBiAIKwMgOQMAIAYgCCsDGDkDCAwBCyAGIAgpAxg3AwAgBiAIKQMgNwMICyAGQQA6ACQgBiAINgIgIAMgBjYCICAGQShqIQYLIAUoAhAhBCADQShqIQMLIAQoAmwiCEUNBQJAIAgtAFFBAUYEQCACIAIpA/gGNwOIBCACIAIpA4AHNwOQBCACIAIpA4gHNwOYBCACIAIpA/AGNwOABCACQcgGaiAIIAMgAkGABGoQ9wMgAiACKQPgBjcDiAcgAiACKQPYBjcDgAcgAiACKQPQBjcD+AYgAiACKQPIBjcD8AYMAQsgB0UNBSAEKAIIRQ0FIAJBiAZqIAAgBRC4CiACIAIpA5AGNwPQBiACIAIpA4gGNwPIBiACQgA3A+AGIAJCADcD2AYgAyACKQPgBjcDGCADIAIpA9gGNwMQIAMgAikD0AY3AwggAyACKQPIBjcDACADQgA3AyACQEHs/gotAABBAUYEQCAGIAgrAyA5AwAgBiAIKwMYOQMIDAELIAYgCCkDGDcDACAGIAgpAyA3AwgLIAZBADoAJCAGIAg2AiAgAyAGNgIgIAZBKGohBgsgA0EoaiEDDAULIAAgCxAcIQsMBwsgAiAIKAIANgKwBUHQ+QMgAkGwBWoQKwwDCyACIAgoAgA2AoAFQaf5AyACQYAFahArDAILIAIgCCgCADYC0ARB9PkDIAJB0ARqECsMAQsgAiAIKAIANgKgBEGC+QMgAkGgBGoQKwsgACAFEDAhBQwACwALCyAMBEAgAiACKQOIBzcD4AYgAiACKQOABzcD2AYgAiACKQP4BjcD0AYgAiACKQPwBjcDyAYgAiADNgLoBiACQdgDaiIDIAJByAZqIgZBKBAfGiACQeAFaiIFIAAgAxDSDiAGIAVBKBAfGiACIAIpA9AGNwP4BiACIAIpA9gGNwOAByACIAIpA+AGNwOIByACIAIpA8gGNwPwBgsgACAAQQBBoTBBABAhQQEQsAohAyACIAIpA/gGNwPQBiACIAIpA4AHNwPYBiACIAIpA4gHNwPgBiACIAM6AOgGIAIgAikD8AY3A8gGIAJByAZqIQYjAEHwAGsiBCQAQRwQ9QUiCEH80ApByO4JKAIAEJUBIgs2AhQCQAJAAkACQAJAAkACQCALBEBBAUG4GRBBIgMEQBCoCCIFQQA2AgQgAyAFNgIACyAIIAM2AhggA0UNBiAIIAY2AhAgCCANNgIMIAggCjYCCCAIIBA2AgQgCCAJNgIAAn8gAisD2AYgAisD4AYQIhAyEL0HnCIURAAAAAAAAPBBYyAURAAAAAAAAAAAZnEEQCAUqwwBC0EAC0EBaiEFAkADQCAPIBBGDQFBOBD1BSIHIAkgD0EobGoiAzYCMCADKwMQIRggAysDGCEZIAMrAwAhFCAHIAMrAwgiGwJ8IAMoAiAiA0UEQEQAAAAAAAAAACEVRAAAAAAAAAAADAELIAMrAwAhFSADKwMICyIaoZwiFjkDGCAHIBQgFaGcIhc5AxAgByAaIBsgGaCgmyIZOQMoIAcgFSAUIBigoJsiFDkDICAXIBQgF6FEAAAAAAAA4D+ioCIURAAAAAAAAODBZkUgFEQAAMD////fQWVFcg0DIBYgGSAWoUQAAAAAAADgP6KgIhVEAAAAAAAA4MFmRSAVRAAAwP///99BZUVyDQQCfyAVmUQAAAAAAADgQWMEQCAVqgwBC0GAgICAeAshDAJ/IBSZRAAAAAAAAOBBYwRAIBSqDAELQYCAgIB4CyERQQAhAyAFIQYDQCAGQQBKBEAgESAGQQFrIgZ2QQFxIhJBAXQgA0ECdHIgEiAMIAZ2QQFxIhNzciEDIBNBAWsiE0EAIBJrcSATIAwgEXNxcyISIAxzIQwgESAScyERDAELCyAHIAM2AgggD0EBaiEPIAsgB0EBIAsoAgARBAANAAsMBgsgC0EAQYABIAsoAgARBAAhBgNAIAYEQCAGKAIwIQcgCCgCGCEFIAQgBikDKDcDGCAEIAYpAyA3AxAgBCAGKQMYNwMIIAQgBikDEDcDACMAQfAAayIDJAAgA0EANgJsAkAgBQRAIAQrAwAgBCsDEGUEQCAEKwMIIAQrAxhlDQILQbfIAUHqugFBvAFBjRwQAAALQb3uAEHqugFBugFBjRwQAAALIAUoAgAhCyADIAQpAxg3AxggAyAEKQMQNwMQIAMgBCkDCDcDCCADIAQpAwA3AwAgBSADIAcgCyADQewAahDZDgRAEKgIIgcgBSgCACIMKAIEQQFqNgIEIANBQGsiCyAMEPsFIAMgBSgCADYCYCAFIAsgB0EAEMYEGiADQSBqIAMoAmwQ+wUgAyADKQM4NwNYIAMgAykDMDcDUCADIAMpAyg3A0ggAyADKQMgNwNAIAMgAygCbDYCYCAFIAsgB0EAEMYEGiAFIAc2AgALIANB8ABqJAAgCCgCFCILIAZBCCALKAIAEQQAIQYMAQsLQQAhDCALEJwBA0AgCxCcAQRAIAsoAgwiA0UNBQJ/IAsoAgQoAggiBUEASARAIAMoAggMAQsgAyAFawsiA0UNBSALIANBgCAgCygCABEEABogAxAYIAxBAWohDAwBCwsgDEcNBCALEJoBQQBIDQVBACELQQAhEQNAIBAgEUYEQCAIKAIYIgMoAgAQ2w4gAygCABAYIAMQGCAIEBgMBwUCfyAJIBFBKGxqIgUoAiAiBwRAIAUrAxAhGiAHKwMIIRkgBSsDGCEbIAcrAwAhGCAEQUBrIgZBAEEkEDMaIAcgBSsDACAYoTkDECAHIBsgBSsDCKA5AxggBEEgaiIMIAggBSAGEIACAkACQAJAIAQoAiAiA0UNACAEKwM4IRYgBCsDMCEXIAQrAyghFCAHIAUrAwg5AxggDCAIIAUgBhCAAiAEKAIgIgZFDQAgFCAEKwMoIhVkBEAgBCsDOCEWIAQrAzAhFyAGIQMgFSEUCyAHIAUrAwggBysDCKE5AxggBEEgaiAIIAUgBEFAaxCAAiAEKAIgIgZFDQAgFCAEKwMoIhVkBEAgBCsDOCEWIAQrAzAhFyAGIQMgFSEUCyAHIAUrAwA5AxAgByAFKwMIIAUrAxigOQMYIARBIGogCCAFIARBQGsQgAIgBCgCICIGRQ0AIBQgBCsDKCIVZARAIAQrAzghFiAEKwMwIRcgBiEDIBUhFAsgByAFKwMIIAcrAwihOQMYIARBIGogCCAFIARBQGsQgAIgBCgCICIGRQ0AIBQgBCsDKCIVZARAIAQrAzghFiAEKwMwIRcgBiEDIBUhFAsgByAFKwMAIAUrAxCgOQMQIAcgBSsDCCAFKwMYoDkDGCAEQSBqIAggBSAEQUBrEIACIAQoAiAiBkUNACAUIAQrAygiFWQEQCAEKwM4IRYgBCsDMCEXIAYhAyAVIRQLIAcgBSsDCDkDGCAEQSBqIAggBSAEQUBrEIACIAQoAiAiBkUNACAUIAQrAygiFWQEQCAEKwM4IRYgBCsDMCEXIAYhAyAVIRQLIAcgBSsDCCAHKwMIoTkDGCAEQSBqIAggBSAEQUBrEIACIAQoAiAiBkUNACAUIAQrAygiFWQEQCAEKwM4IRYgBCsDMCEXIAYhAyAVIRQLIBkgGaAgG6BEAAAAAAAA4D+iIRsgGCAYoCAaoEQAAAAAAADAP6IhGgJAIAQoAkAiDCAEKAJcIgYgBCgCWHIgBCgCTCIPIAQoAmAiEnJyckUEQCAFKwMIIRhBACEMDAELIAUrAwghGCAGIBJyRQRAIAcgBSsDACIVIAcrAwChIhk5AxAgByAYIAUrAxigOQMYA0AgFSAFKwMQoCAZZgRAIARBIGogCCAFIARBQGsQgAIgBCgCICIGRQ0EIBQgBCsDKCIVZARAIAQrAzghFiAEKwMwIRcgBiEDIBUhFAsgByAaIAcrAxCgIhk5AxAgBSsDACEVDAELCyAFKwMIIRggBCgCTCEPIAQoAkAhDAsgDCAPcg0AIAcgBSsDACAHKwMAoTkDECAYIAUrAxigIRUDQAJAIAcgFTkDGCAVIBggBysDCKFmRQ0AIARBIGogCCAFIARBQGsQgAIgBCgCICIGRQ0DIBQgBCsDKCIVZARAIAQrAzghFiAEKwMwIRcgBiEDIBUhFAsgBysDGCAboSEVIAUrAwghGAwBCwsgBCgCQCEMCyAHIAUrAwAiFSAFKwMQoCIZOQMQIAcgGCAHKwMIoTkDGAJAIAQoAmAiBiAEKAJEIhIgBCgCSHIgDCAEKAJUIg9ycnJFDQAgDCAScgR/IAYFA0AgFSAHKwMAoSAZZQRAIARBIGogCCAFIARBQGsQgAIgBCgCICIGRQ0EIBQgBCsDKCIVZARAIAQrAzghFiAEKwMwIRcgBiEDIBUhFAsgByAHKwMQIBqhIhk5AxAgBSsDACEVDAELCyAEKAJUIQ8gBCgCYAsgD3INACAHIBUgBSsDEKA5AxAgBSsDCCIYIAcrAwihIRUDQCAHIBU5AxggFSAYIAUrAxigZUUNASAEQSBqIAggBSAEQUBrEIACIAQoAiAiBkUNAiAUIAQrAygiFWQEQCAEKwM4IRYgBCsDMCEXIAYhAyAVIRQLIBsgBysDGKAhFSAFKwMIIRgMAAsACyADDQELIAUoAiAhBgwBCyAURAAAAAAAAAAAYgRAQQEgAi0A6AZBAUcNAxoLIAUoAiAiBiAWOQMYIAYgFzkDEAsgBkEBOgAkCyALCyELIBFBAWohEQwBCwALAAsMBQtBpcoBQYm9AUGPBEHeswEQAAALQYjKAUGJvQFBkARB3rMBEAAAC0GfP0GJvQFBoARB6LMBEAAAC0HXsgFBib0BQacEQeizARAAAAsgBEHwAGokAAwBC0Go3ANBDkEBQcj2CCgCABBTGhAnAAsCQEGc2wotAABFDQAgAiACKwPIBjkDsAMgAiACKwPQBjkDuAMgAiACKwPYBjkDwAMgAiACKwPgBjkDyAMgAiAQNgKgAyACIA02AqQDIAIgAi0A6AY2AqgDQcj2CCgCACIGQfL0BCACQaADahAxQZzbCi0AAEECSQ0AQc7nA0EIQQEgBhBTGkEAIQUgCSEDA0AgBSAQRgRAQeLrA0EIQQEgBhBTGkEAIQUgCiEDA0AgBSANRg0DIAMtACQhECADKwMQIRQgAysDGCEVIAMrAwAhFiADKwMIIRcgAiADKAIgKAIANgLgAiACIBc5A9gCIAIgFjkD0AIgAiAVOQPIAiACIBQ5A8ACIAIgEDYCuAIgAiADNgK0AiACIAU2ArACIAZBroUEIAJBsAJqEDEgA0EoaiEDIAVBAWohBQwACwAFIAMrAxghFCADKwMQIRUgAysDCCEWIAMrAwAhFyACIAMoAiAiBAR/IAQoAiAoAgAFQfWEBQs2ApwDIAIgBDYCmAMgAiAUOQOQAyACIBU5A4gDIAIgFjkDgAMgAiAXOQP4AiACIAU2AvACIAZB8fwEIAJB8AJqEDEgA0EoaiEDIAVBAWohBQwBCwALAAsgCiEDQQAhBQJAA0AgBSANRgRAQZzbCi0AAARAIAIgDTYCpAIgAiAONgKgAkHI9ggoAgBB0ekEIAJBoAJqEB4aDAMLBSADLQAkBEAgAygCICIGQQE6AFEgAysDECEUIAMrAwAhFSAGIAMrAxggAysDCEQAAAAAAADgP6KgOQNAIAYgFCAVRAAAAAAAAOA/oqA5AzggACAGEIYCIA5BAWohDgsgBUEBaiEFIANBKGohAwwBCwsgDSAORg0AIAIgDTYClAIgAiAONgKQAkH06QQgAkGQAmoQKwsgCRAYIAoQGAtEAAAAAAAAAAAhFQJAIAAoAhAiAygCDCIFRQRARAAAAAAAAAAAIRQMAQtEAAAAAAAAAAAhFCAFLQBRDQAgAy0AkwJBAXEhCiAFKwMgRAAAAAAAACBAoCEUIAUrAxhEAAAAAAAAMECgIRVB7P4KLQAAQQFGBEACQCAKBEAgAyAUIAMrAyCgOQMgDAELIAMgAysDECAUoTkDEAsgFSADKwMoIhYgAysDGCIXoSIYZEUNASADIBYgFSAYoUQAAAAAAADgP6IiFqA5AyggAyAXIBahOQMYDAELQej+CigCACEJAkAgCgRAIAlFBEAgAyAUIAMrAyigOQMoDAILIAMgAysDGCAUoTkDGAwBCyAJRQRAIAMgAysDGCAUoTkDGAwBCyADIBQgAysDKKA5AygLIBUgAysDICIWIAMrAxAiF6EiGGRFDQAgAyAWIBUgGKFEAAAAAAAA4D+iIhagOQMgIAMgFyAWoTkDEAsCQCABRQ0AAkACQAJAAkACQAJAQej+CigCACIBQQFrDgMBAgMAC0Hw/gogAykDEDcDAEH4/gogAykDGDcDAEHw/gorAwAhFkH4/gorAwAhFwwECyADKwMoQfj+CiADKwMQIhc5AwCaIRYMAgsgAysDKCEXQfD+CiADKwMQIhY5AwBB+P4KIBeaIhc5AwAMAgsgAysDGCEWQfj+CiADKwMQIhc5AwALQfD+CiAWOQMACyABIBZEAAAAAAAAAABickUgF0QAAAAAAAAAAGFxDQAgABAbIQEDQAJAIAEEQEHo/gooAgAEQCABQQAQkwQLIAIgASgCECIDKQMYNwOIAiACIAMpAxA3A4ACIAJByAZqIgogAkGAAmoQ/wEgAyACKQPQBjcDGCADIAIpA8gGNwMQIAEoAhAoAnwiAwRAIAIgA0FAayIJKQMANwP4ASACIAMpAzg3A/ABIAogAkHwAWoQ/wEgCSACKQPQBjcDACADIAIpA8gGNwM4C0Hg2wooAgBBAUcNASAAIAEQLSEKA0AgCkUNAkEAIQkCQCAKKAIQIgMoAggiBUUEQEHM2wotAAANASADLQBwQQZGDQEgCkEwQQAgCigCAEEDcUEDRxtqKAIoECAhAyACIApBUEEAIAooAgBBA3FBAkcbaigCKBAgNgJ0IAIgAzYCcEGftAQgAkHwAGoQNgwBCwNAIAUoAgQgCU0EQCADKAJgIgkEQCACIAlBQGsiAykDADcD6AEgAiAJKQM4NwPgASACQcgGaiACQeABahD/ASADIAIpA9AGNwMAIAkgAikDyAY3AzggCigCECEDCyADKAJsIgkEQCACIAlBQGsiAykDADcD2AEgAiAJKQM4NwPQASACQcgGaiACQdABahD/ASADIAIpA9AGNwMAIAkgAikDyAY3AzggCigCECEDCyADKAJkIgkEfyACIAlBQGsiAykDADcDyAEgAiAJKQM4NwPAASACQcgGaiACQcABahD/ASADIAIpA9AGNwMAIAkgAikDyAY3AzggCigCEAUgAwsoAmgiA0UNAiACIANBQGsiCSkDADcDuAEgAiADKQM4NwOwASACQcgGaiACQbABahD/ASAJIAIpA9AGNwMAIAMgAikDyAY3AzgMAgsgCUEwbCINIAUoAgBqIgMoAgwhECADKAIIIQUgAygCBCEEIAMoAgAhB0EAIQMDQCADIARGBEAgCigCECEDIAUEQCACIAMoAggoAgAgDWoiAykDGDcDmAEgAiADKQMQNwOQASACQcgGaiACQZABahD/ASADIAIpA9AGNwMYIAMgAikDyAY3AxAgCigCECEDCyAJQQFqIQkgEARAIAIgAygCCCgCACANaiIDKQMoNwOIASACIAMpAyA3A4ABIAJByAZqIAJBgAFqEP8BIAMgAikD0AY3AyggAyACKQPIBjcDICAKKAIQIQMLIAMoAgghBQwCBSACIAcgA0EEdGoiBikDCDcDqAEgAiAGKQMANwOgASACQcgGaiACQaABahD/ASAGIAIpA9AGNwMIIAYgAikDyAY3AwAgA0EBaiEDDAELAAsACwALIAAgChAwIQoMAAsACyAAIAAoAhAoAnRBA3EQ1w4gACgCECIDKAIMIQUMAgsgACABEBwhAQwACwALAkAgBUUNACAFLQBRDQACfCADLQCTAiIAQQRxBEAgAysDICAVRAAAAAAAAOC/oqAMAQsgFUQAAAAAAADgP6IgAysDECIVoCAAQQJxDQAaIBUgAysDIKBEAAAAAAAA4D+iCyEVIBREAAAAAAAA4D+iIRQCfCAAQQFxBEAgAysDKCAUoQwBCyAUIAMrAxigCyEUIAVBAToAUSAFIBQ5A0AgBSAVOQM4CwJAQcDbCigCAARAIAJCADcD0AYgAkIANwPIBgJAQez+Ci0AAEEBRgRAIAJB8P4KKwMAIhQ5AzAgAkH4/gorAwAiFTkDOCACIBQ5AyAgAiAVOQMoIAJByAZqQZKiBCACQSBqEIwBDAELIAJB+P4KKwMAIhQ5A1AgAkHw/gorAwAiFTkDWCACIBWaOQNgIAIgFJo5A2ggAiAUOQNAIAIgFTkDSCACQcgGakH3mwQgAkFAaxCMAQsgAkHIBmoiARAoIQMgARAkIQACQCADBEAgASAAEMQCIgYNASACIABBAWo2AgBByPYIKAIAQdXsAyACEB4aECcACyACQcgGaiIBEEggAE0EQCABQQEQ8AILIAJByAZqIgAQJCEBAkAgABAoBEAgACABakEAOgAAIAIgAi0A1wZBAWo6ANcGIAAQJEEQSQ0BQb65A0GvgQFBnQJBrrUBEAAACyACKALIBiABakEAOgAACyACKALIBiEGCyACQgA3A9AGIAJCADcDyAYCQEHA2wooAgAiA0HE2wooAgAiBUcEQEG42wooAgAhBEG82wooAgAhDgwBCyADQQF0QQEgAxsiBUH/////A0sEQEHEACEDDAMLQbjbCigCACAFQQJ0EDkiBEUEQEEwIQMMAwsgBEHE2wooAgAiAEECdGpBACAFIABrQQJ0EDMaIABBwNsKKAIAIgNBvNsKKAIAIg5qSQRAIA5BAnQhASAEIAUgACAOayIAayIOQQJ0aiABIARqIABBAnQQVBpBvNsKIA42AgALQcTbCiAFNgIAQbjbCiAENgIACyAEIAMgDmogBXBBAnRqIAY2AgBBwNsKIANBAWo2AgALIAJBkAdqJAAPCyACIAMQdzYCEEHI9ggoAgBB54MEIAJBEGoQHhoQJwALQwECfCAAIAEoAiAiASsDECICEDI5AwAgACABKwMYIgMQMjkDCCAAIAIgASsDAKAQMjkDECAAIAMgASsDCKAQMjkDGAulAgEEfyMAQeAAayICJAACQCABBEAgABDgDiABQQhqIQVBACEBQQEhBANAIAFBwABGDQIgBSABQShsaiIDKAIgBEACQCAEBEAgACADKQMANwMAIAAgAykDGDcDGCAAIAMpAxA3AxAgACADKQMINwMIDAELIAIgACkDCDcDKCACIAApAxA3AzAgAiAAKQMYNwM4IAIgACkDADcDICACIAMpAwg3AwggAiADKQMQNwMQIAIgAykDGDcDGCACIAMpAwA3AwAgAkFAayACQSBqIAIQhQMgACACKQNYNwMYIAAgAikDUDcDECAAIAIpA0g3AwggACACKQNANwMAC0EAIQQLIAFBAWohAQwACwALQb3u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IAAgACgCAEEMaygCAGpBBRCvBQsgAkEIahCsBSACQRBqJAAgAAsMACAAQQRqEPMLIAALKAECfyMAQRBrIgIkACABKAIAIAAoAgBIIQMgAkEQaiQAIAEgACADGwsQACAAIAE3AwggAEIANwMACwIACxQAIABBtJEJNgIAIABBBGoQTiAAC/MDAgJ+BX8jAEEgayIFJAAgAUL///////8/gyECAn4gAUIwiEL//wGDIgOnIgRBgfgAa0H9D00EQCACQgSGIABCPIiEIQIgBEGA+ABrrSEDAkAgAEL//////////w+DIgBCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyAAQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIEGyEAIAStIAN8DAELIAAgAoRQIANC//8BUnJFBEAgAkIEhiAAQjyIhEKAgICAgICABIQhAEL/DwwBCyAEQf6HAUsEQEIAIQBC/w8MAQtBgPgAQYH4ACADUCIHGyIIIARrIgZB8ABKBEBCACEAQgAMAQsgBUEQaiAAIAIgAkKAgICAgIDAAIQgBxsiAkGAASAGaxC1ASAFIAAgAiAGEKQDIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C5kBAQJ/AkAgABAvIgQgACgCAEEDcSABQQAQISIDDQACQCAEQfWEBRDHAyIDQfWEBUcNACADEHhFDQAgBCAAKAIAQQNxIAFB9YQFEOkDIQMMAQsgBCAAKAIAQQNxIAFB9YQFECEhAwsCQAJAIAJFDQAgBCACEMcDIgEgAkcNACABEHhFDQAgACADIAIQowQMAQsgACADIAIQcwsLiQIAAkAgAAR/IAFB/wBNDQECQEHkjAsoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIPCyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAw8LIAFBgIAEa0H//z9NBEAgACABQT9xQYABcjoAAyAAIAFBEnZB8AFyOgAAIAAgAUEGdkE/cUGAAXI6AAIgACABQQx2QT9xQYABcjoAAUEEDwsLQaCKC0EZNgIAQX8FQQELDwsgACABOgAAQQELwgIBBH8jAEHQAWsiBSQAIAUgAjYCzAEgBUGgAWoiAkEAQSgQMxogBSAFKALMATYCyAECQEEAIAEgBUHIAWogBUHQAGogAiADIAQQ/gtBAEgEQEF/IQQMAQsgACgCTEEASCAAIAAoAgAiCEFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQYgACAFNgIsDAELIAAoAhANAQtBfyAAELYHDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEP4LCyECIAYEQCAAQQBBACAAKAIkEQQAGiAAQQA2AjAgACAGNgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAIQSBxcjYCAEF/IAIgAEEgcRshBA0ACyAFQdABaiQAIAQLEgAgACABQQpCgICAgAgQtQWnC2EAAkAgAA0AIAIoAgAiAA0AQQAPCyAAIAEQpgQgAGoiAC0AAEUEQCACQQA2AgBBAA8LIAAgARDzAiAAaiIBLQAABEAgAiABQQFqNgIAIAFBADoAACAADwsgAkEANgIAIAALfwICfwJ+IwBBoAFrIgQkACAEIAE2AjwgBCABNgIUIARBfzYCGCAEQRBqIgVCABCKAiAEIAUgA0EBEIQMIAQpAwghBiAEKQMAIQcgAgRAIAIgBCgCiAEgASAEKAIUIAQoAjxramo2AgALIAAgBjcDCCAAIAc3AwAgBEGgAWokAAvcAQECfwJAAkAgASAAIgNzQQNxBEAgAS0AACECDAELIAFBA3EEQANAIAMgAS0AACICOgAAIAJFDQMgA0EBaiEDIAFBAWoiAUEDcQ0ACwtBgIKECCABKAIAIgJrIAJyQYCBgoR4cUGAgYKEeEcNAANAIAMgAjYCACADQQRqIQMgASgCBCECIAFBBGohASACQYCChAggAmtyQYCBgoR4cUGAgYKEeEYNAAsLIAMgAjoAACACQf8BcUUNAANAIAMgAS0AASICOgABIANBAWohAyABQQFqIQEgAg0ACwsgAAtJAQF/IwBBEGsiASQAIAFBjuYAOwEKIAEgADsBDCABIABBEHY7AQ5BwI4LQdDWCkEGEB8aQdDWCiABQQpqQQYQHxogAUEQaiQAC1EBAn8jAEEwayIBJAACQAJAIAAEQEEBIAAQsgciAEF/Rg0CQcyKCyAANgIADAELQcyKCygCACEACyAAQQhqQe7dASAAGyECCyABQTBqJAAgAgvnAgEDfwJAIAEtAAANAEGT1wEQpwQiAQRAIAEtAAANAQsgAEEMbEHg9QhqEKcEIgEEQCABLQAADQELQd7ZARCnBCIBBEAgAS0AAA0BC0HV8QEhAQsCQANAIAEgAmotAAAiBEUgBEEvRnJFBEBBFyEEIAJBAWoiAkEXRw0BDAILCyACIQQLQdXxASEDAkACQAJAAkACQCABLQAAIgJBLkYNACABIARqLQAADQAgASEDIAJBwwBHDQELIAMtAAFFDQELIANB1fEBEEdFDQAgA0GCygEQRw0BCyAARQRAQYT1CCECIAMtAAFBLkYNAgtBAA8LQaCNCygCACICBEADQCADIAJBCGoQR0UNAiACKAIgIgINAAsLQSQQSSICBEAgAkGE9QgpAgA3AgAgAkEIaiIBIAMgBBAfGiABIARqQQA6AAAgAkGgjQsoAgA2AiBBoI0LIAI2AgALIAJBhPUIIAAgAnIbIQILIAILrwEBBn8jAEHwAWsiBiQAIAYgADYCAEEBIQcCQCADQQJIDQBBACABayEJIAAhBQNAIAAgBSAJaiIFIAQgA0ECayIKQQJ0aigCAGsiCCACEKcDQQBOBEAgACAFIAIQpwNBAE4NAgsgBiAHQQJ0aiAIIAUgCCAFIAIQpwNBAE4iCBsiBTYCACAHQQFqIQcgA0EBayAKIAgbIgNBAUoNAAsLIAEgBiAHEI0MIAZB8AFqJAALwgEBA38CQCACKAIQIgMEfyADBSACELYHDQEgAigCEAsgAigCFCIEayABSQRAIAIgACABIAIoAiQRBAAPCwJAAkAgAUUgAigCUEEASHINACABIQMDQCAAIANqIgVBAWstAABBCkcEQCADQQFrIgMNAQwCCwsgAiAAIAMgAigCJBEEACIEIANJDQIgASADayEBIAIoAhQhBAwBCyAAIQVBACEDCyAEIAUgARAfGiACIAIoAhQgAWo2AhQgASADaiEECyAEC5QBAQN/IwBBEGsiAyQAIAMgAToADwJAAkAgACgCECICBH8gAgUgABC2BwRAQX8hAgwDCyAAKAIQCyAAKAIUIgRGDQAgAUH/AXEiAiAAKAJQRg0AIAAgBEEBajYCFCAEIAE6AAAMAQsgACADQQ9qQQEgACgCJBEEAEEBRwRAQX8hAgwBCyADLQAPIQILIANBEGokACACC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEAC5EBAQJ/IAEQnAFFBEAgAEEAQYABIAAoAgARBAAhBANAIAQEQCAEKAIMEHghBSACIAQoAgggBCgCDCAFQQBHIAQoAhAgAxCtBCIFIAQtABY6ABYgBSAELQAVOgAVIAEgBUEBIAEoAgARBAAaIAAgBEEIIAAoAgARBAAhBAwBCwsPC0HrmgNBx70BQeMAQcYlEAAAC5QDAgN+An8CQCAAvSICQjSIp0H/D3EiBEH/D0cNACAARAAAAAAAgFZAoiIAIACjDwsgAkIBhiIBQoCAgICAgMDWgH9YBEAgAEQAAAAAAAAAAKIgACABQoCAgICAgMDWgH9RGw8LAn4gBEUEQEEAIQQgAkIMhiIBQgBZBEADQCAEQQFrIQQgAUIBhiIBQgBZDQALCyACQQEgBGuthgwBCyACQv////////8Hg0KAgICAgICACIQLIQEgBEGFCEoEQANAAkAgAUKAgICAgICgC30iA0IAUw0AIAMiAUIAUg0AIABEAAAAAAAAAACiDwsgAUIBhiEBIARBAWsiBEGFCEoNAAtBhQghBAsCQCABQoCAgICAgKALfSIDQgBTDQAgAyIBQgBSDQAgAEQAAAAAAAAAAKIPCyABQv////////8HWARAA0AgBEEBayEEIAFCgICAgICAgARUIAFCAYYhAQ0ACwsgAkKAgICAgICAgIB/gyABQoCAgICAgIAIfSAErUI0hoQgAUEBIARrrYggBEEAShuEvwt8AQJ/IAAgACgCSCIBQQFrIAFyNgJIIAAoAhQgACgCHEcEQCAAQQBBACAAKAIkEQQAGgsgAEEANgIcIABCADcDECAAKAIAIgFBBHEEQCAAIAFBIHI2AgBBfw8LIAAgACgCLCAAKAIwaiICNgIIIAAgAjYCBCABQRt0QR91C6QYAxN/BHwBfiMAQTBrIgkkAAJAAkACQCAAvSIZQiCIpyIDQf////8HcSIGQfrUvYAETQRAIANB//8/cUH7wyRGDQEgBkH8souABE0EQCAZQgBZBEAgASAARAAAQFT7Ifm/oCIARDFjYhphtNC9oCIVOQMAIAEgACAVoUQxY2IaYbTQvaA5AwhBASEDDAULIAEgAEQAAEBU+yH5P6AiAEQxY2IaYbTQPaAiFTkDACABIAAgFaFEMWNiGmG00D2gOQMIQX8hAwwECyAZQgBZBEAgASAARAAAQFT7IQnAoCIARDFjYhphtOC9oCIVOQMAIAEgACAVoUQxY2IaYbTgvaA5AwhBAiEDDAQLIAEgAEQAAEBU+yEJQKAiAEQxY2IaYbTgPaAiFTkDACABIAAgFaFEMWNiGmG04D2gOQMIQX4hAwwDCyAGQbuM8YAETQRAIAZBvPvXgARNBEAgBkH8ssuABEYNAiAZQgBZBEAgASAARAAAMH982RLAoCIARMqUk6eRDum9oCIVOQMAIAEgACAVoUTKlJOnkQ7pvaA5AwhBAyEDDAULIAEgAEQAADB/fNkSQKAiAETKlJOnkQ7pPaAiFTkDACABIAAgFaFEypSTp5EO6T2gOQMIQX0hAwwECyAGQfvD5IAERg0BIBlCAFkEQCABIABEAABAVPshGcCgIgBEMWNiGmG08L2gIhU5AwAgASAAIBWhRDFjYhphtPC9oDkDCEEEIQMMBAsgASAARAAAQFT7IRlAoCIARDFjYhphtPA9oCIVOQMAIAEgACAVoUQxY2IaYbTwPaA5AwhBfCEDDAMLIAZB+sPkiQRLDQELIAAgAESDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCIWRAAAQFT7Ifm/oqAiFSAWRDFjYhphtNA9oiIXoSIYRBgtRFT7Iem/YyECAn8gFplEAAAAAAAA4EFjBEAgFqoMAQtBgICAgHgLIQMCQCACBEAgA0EBayEDIBZEAAAAAAAA8L+gIhZEMWNiGmG00D2iIRcgACAWRAAAQFT7Ifm/oqAhFQwBCyAYRBgtRFT7Iek/ZEUNACADQQFqIQMgFkQAAAAAAADwP6AiFkQxY2IaYbTQPaIhFyAAIBZEAABAVPsh+b+ioCEVCyABIBUgF6EiADkDAAJAIAZBFHYiAiAAvUI0iKdB/w9xa0ERSA0AIAEgFSAWRAAAYBphtNA9oiIAoSIYIBZEc3ADLooZozuiIBUgGKEgAKGhIhehIgA5AwAgAiAAvUI0iKdB/w9xa0EySARAIBghFQwBCyABIBggFkQAAAAuihmjO6IiAKEiFSAWRMFJICWag3s5oiAYIBWhIAChoSIXoSIAOQMACyABIBUgAKEgF6E5AwgMAQsgBkGAgMD/B08EQCABIAAgAKEiADkDACABIAA5AwhBACEDDAELIAlBEGoiA0EIciEEIBlC/////////weDQoCAgICAgICwwQCEvyEAQQEhAgNAIAMCfyAAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAu3IhU5AwAgACAVoUQAAAAAAABwQaIhACACQQAhAiAEIQMNAAsgCSAAOQMgQQIhAwNAIAMiAkEBayEDIAlBEGoiDiACQQN0aisDAEQAAAAAAAAAAGENAAtBACEEIwBBsARrIgUkACAGQRR2QZYIayIDQQNrQRhtIgdBACAHQQBKGyIPQWhsIANqIQdB5M0IKAIAIgogAkEBaiINQQFrIghqQQBOBEAgCiANaiEDIA8gCGshAgNAIAVBwAJqIARBA3RqIAJBAEgEfEQAAAAAAAAAAAUgAkECdEHwzQhqKAIAtws5AwAgAkEBaiECIARBAWoiBCADRw0ACwsgB0EYayEGQQAhAyAKQQAgCkEAShshBCANQQBMIQsDQAJAIAsEQEQAAAAAAAAAACEADAELIAMgCGohDEEAIQJEAAAAAAAAAAAhAANAIA4gAkEDdGorAwAgBUHAAmogDCACa0EDdGorAwCiIACgIQAgAkEBaiICIA1HDQALCyAFIANBA3RqIAA5AwAgAyAERiADQQFqIQNFDQALQS8gB2shEUEwIAdrIRAgB0EZayESIAohAwJAA0AgBSADQQN0aisDACEAQQAhAiADIQQgA0EASgRAA0AgBUHgA2ogAkECdGoCfwJ/IABEAAAAAAAAcD6iIhWZRAAAAAAAAOBBYwRAIBWqDAELQYCAgIB4C7ciFUQAAAAAAABwwaIgAKAiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLNgIAIAUgBEEBayIEQQN0aisDACAVoCEAIAJBAWoiAiADRw0ACwsCfyAAIAYQ9AIiACAARAAAAAAAAMA/opxEAAAAAAAAIMCioCIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAshCCAAIAi3oSEAAkACQAJAAn8gBkEATCITRQRAIANBAnQgBWoiAiACKALcAyICIAIgEHUiAiAQdGsiBDYC3AMgAiAIaiEIIAQgEXUMAQsgBg0BIANBAnQgBWooAtwDQRd1CyILQQBMDQIMAQtBAiELIABEAAAAAAAA4D9mDQBBACELDAELQQAhAkEAIQxBASEEIANBAEoEQANAIAVB4ANqIAJBAnRqIhQoAgAhBAJ/AkAgFCAMBH9B////BwUgBEUNAUGAgIAICyAEazYCAEEBIQxBAAwBC0EAIQxBAQshBCACQQFqIgIgA0cNAAsLAkAgEw0AQf///wMhAgJAAkAgEg4CAQACC0H///8BIQILIANBAnQgBWoiDCAMKALcAyACcTYC3AMLIAhBAWohCCALQQJHDQBEAAAAAAAA8D8gAKEhAEECIQsgBA0AIABEAAAAAAAA8D8gBhD0AqEhAAsgAEQAAAAAAAAAAGEEQEEAIQQgAyECAkAgAyAKTA0AA0AgBUHgA2ogAkEBayICQQJ0aigCACAEciEEIAIgCkoNAAsgBEUNACAGIQcDQCAHQRhrIQcgBUHgA2ogA0EBayIDQQJ0aigCAEUNAAsMAwtBASECA0AgAiIEQQFqIQIgBUHgA2ogCiAEa0ECdGooAgBFDQALIAMgBGohBANAIAVBwAJqIAMgDWoiCEEDdGogA0EBaiIDIA9qQQJ0QfDNCGooAgC3OQMAQQAhAkQAAAAAAAAAACEAIA1BAEoEQANAIA4gAkEDdGorAwAgBUHAAmogCCACa0EDdGorAwCiIACgIQAgAkEBaiICIA1HDQALCyAFIANBA3RqIAA5AwAgAyAESA0ACyAEIQMMAQsLAkAgAEEYIAdrEPQCIgBEAAAAAAAAcEFmBEAgBUHgA2ogA0ECdGoCfwJ/IABEAAAAAAAAcD6iIhWZRAAAAAAAAOBBYwRAIBWqDAELQYCAgIB4CyICt0QAAAAAAABwwaIgAKAiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLNgIAIANBAWohAwwBCwJ/IACZRAAAAAAAAOBBYwRAIACqDAELQYCAgIB4CyECIAYhBwsgBUHgA2ogA0ECdGogAjYCAAtEAAAAAAAA8D8gBxD0AiEAIANBAE4EQCADIQIDQCAFIAIiBEEDdGogACAFQeADaiACQQJ0aigCALeiOQMAIAJBAWshAiAARAAAAAAAAHA+oiEAIAQNAAsgAyEEA0BEAAAAAAAAAAAhAEEAIQIgCiADIARrIgcgByAKShsiBkEATgRAA0AgAkEDdEHA4whqKwMAIAUgAiAEakEDdGorAwCiIACgIQAgAiAGRyACQQFqIQINAAsLIAVBoAFqIAdBA3RqIAA5AwAgBEEASiAEQQFrIQQNAAsLRAAAAAAAAAAAIQAgA0EATgRAIAMhAgNAIAIiBEEBayECIAAgBUGgAWogBEEDdGorAwCgIQAgBA0ACwsgCSAAmiAAIAsbOQMAIAUrA6ABIAChIQBBASECIANBAEoEQANAIAAgBUGgAWogAkEDdGorAwCgIQAgAiADRyACQQFqIQINAAsLIAkgAJogACALGzkDCCAFQbAEaiQAIAhBB3EhAyAJKwMAIQAgGUIAUwRAIAEgAJo5AwAgASAJKwMImjkDCEEAIANrIQMMAQsgASAAOQMAIAEgCSsDCDkDCAsgCUEwaiQAIAMLFAAgABAEIgBBACAAQRtHGxCmAxoL9gECAXwBfyAAvUIgiKdB/////wdxIgJBgIDA/wdPBEAgACAAoA8LAkACfyACQf//P0sEQCAAIQFBk/H91AIMAQsgAEQAAAAAAABQQ6IiAb1CIIinQf////8HcSICRQ0BQZPx/csCCyACQQNuaq1CIIa/IAGmIgEgASABoiABIACjoiIBIAEgAaKiIAFE1+3k1ACwwj+iRNlR577LROi/oKIgASABRMLWSUpg8fk/okQgJPCS4Cj+v6CiRJLmYQ/mA/4/oKCivUKAgICAfINCgICAgAh8vyIBIAAgASABoqMiACABoSABIAGgIACgo6IgAaAhAAsgAAvHAwMFfAJ+An8CQAJ/AkAgAL0iBkL/////////B1cEQCAARAAAAAAAAAAAYQRARAAAAAAAAPC/IAAgAKKjDwsgBkIAWQ0BIAAgAKFEAAAAAAAAAACjDwsgBkL/////////9/8AVg0CQYF4IQkgBkIgiCIHQoCAwP8DUgRAIAenDAILQYCAwP8DIAanDQEaRAAAAAAAAAAADwtBy3chCSAARAAAAAAAAFBDor0iBkIgiKcLIQggBkL/////D4MgCEHiviVqIghB//8/cUGewZr/A2qtQiCGhL9EAAAAAAAA8L+gIgAgACAARAAAAAAAAOA/oqIiA6G9QoCAgIBwg78iBEQAACBlRxX3P6IiASAJIAhBFHZqtyICoCIFIAEgAiAFoaAgACAARAAAAAAAAABAoKMiASADIAEgAaIiAiACoiIBIAEgAUSfxnjQCZrDP6JEr3iOHcVxzD+gokQE+peZmZnZP6CiIAIgASABIAFERFI+3xLxwj+iRN4Dy5ZkRsc/oKJEWZMilCRJ0j+gokSTVVVVVVXlP6CioKCiIAAgBKEgA6GgIgAgBKBEAKLvLvwF5z2iIABEAAAgZUcV9z+ioKCgIQALIAALlAIBA38gABAvIQUgABDqASEGAkAgASgCECIEQQBIDQAgABC8BSAETA0AIAUgBigCDCABKAIQQQJ0aigCACIEIAQQeEEARxCNARoCfyADBEAgBSACEM4CDAELIAUgAhCxAQshBCAGKAIMIAEoAhBBAnRqIAQ2AgACQCAALQAAQQNxDQAgBUEAEK0CKAIQIgQgASgCCBDAByIGBEAgBSAGKAIMIgQgBBB4QQBHEI0BGiAGAn8gAwRAIAUgAhDOAgwBCyAFIAIQsQELNgIMDAELIAQgBSABKAIIIAIgAyABKAIQIAAoAgBBA3EQrQRBASAEKAIAEQQAGgsgBSAAIAEQsg0PC0HYpgNBx70BQYYEQefGARAAAAvYAQEEfyMAQRBrIgQkAAJAAkAgARDqASIBBEAgAigCECIDQf////8DTw0BIAEoAgwgA0ECdCIFQQRqIgYQOSIDRQ0CIAMgBWpBADYAACABIAM2AgwgAigCDBB4IQUgAigCDCEDAn8gBQRAIAAgAxDOAgwBCyAAIAMQsQELIQAgASgCDCACKAIQQQJ0aiAANgIAIARBEGokAA8LQbbUAUHHvQFB5AFBvzcQAAALQeHCA0H+gQFBzQBBibYBEAAACyAEIAY2AgBByPYIKAIAQdXsAyAEEB4aECcAC1YBAn8jAEEgayICJAAgAEEAEOECIQMgAkIANwMIIAJBADYCGCACQgA3AxAgAiABNgIIIAJCADcDACAAIAJBBCAAKAIAEQQAIAAgAxDhAhogAkEgaiQAC5UBAgN/BXwgAxBYIgiaIQkgACgCCCEGIAMQRSEHIAYQGyEEA0AgBARAIAQoAhAoApQBIgUgAiAFKwMAIgogCKIgByAFKwMIIguioKA5AwggBSABIAogB6IgCyAJoqCgOQMAIAYgBBAcIQQMAQsLIABBMGohBANAIAQoAgAiAARAIAAgASACIAMQwQcgAEEEaiEEDAELCwtXAQF/IAAEQANAIAEgACgCCE9FBEAgACABEMwBGiABQQFqIQEMAQsLIABCADcCBCAAKAIAEBggAEIANwIIIABCADcCAA8LQfXTAUGP/wBBFUHVogEQAAALQQACQCAABEAgASAAKAIITw0BIAAgARCuBCACNgIADwtB9dMBQY//AEEVQeYhEAAAC0H1tQNBj/8AQRVB5iEQAAALgwIBBX8CQAJAAkAgABDpASABTwRAIABBABCMAiAARQ0BIAAoAgQhBANAIAQEQCAAKAIMIgVFDQQgACgCACgCACEDA0AgBQRAIAAoAgAgBUEBayIFQQJ0aiIGKAIAIAYgAzYCACEDDAEFIAAgBEEBayIENgIEDAMLAAsACwsgACgCCCAAKAIMSw0DIAAQ6QEgAUF/c2pBAnQiAwRAIAAgAUEBahCuBCAAIAEQrgQgAxBUGgsgACABIAIQwwcPC0GKpANBu7sBQRNBqRoQAAALQfXTAUGP/wBBFUHXtgEQAAALQdaUA0GP/wBBFUHXtgEQAAALQdahA0GP/wBBFUHXtgEQAAALHQAgACgCCCABQQEQhQEaIAEoAhAoAoABIAA2AgwLRAEBfyAABEAgACgCBCIBBEAgARBqCyAAKAIIIgEEQCABEGoLIAAoAgwQGCAAKAIUIgEEQCABIAAoAhARAQALIAAQGAsLWQEBfyMAQSBrIgIkACAAEOoBIgAEfyAAKAIIIQAgAkIANwMIIAJBADYCGCACQgA3AxAgAiABNgIIIAJCADcDACAAIAJBBCAAKAIAEQQABUEACyACQSBqJAALGwAgACABIAJBCEEDQYCAgIACQf////8BEMoKC+UHAgd/AnwgACgCECEHAkACQAJAAkACQAJAAkACQCAAKAIAIgZFBEAgACACOQMIIABBATYCACAAIAdBCBAZIgc2AiAgACgCECIEQQAgBEEAShshBgNAIAUgBkZFBEAgByAFQQN0IghqIAEgCGorAwA5AwAgBUEBaiEFDAELCyAEIAIgASADENUMIQEgACgCKA0BIAAgATYCKCAADwsgACgCLCIKIARKBEAgACACIAArAwigOQMIIAdBACAHQQBKGyEIIAZBAWq3IQwgBrchDQNAIAUgCEZFBEAgBUEDdCIGIAAoAiBqIgkgCSsDACANoiABIAZqKwMAoCAMozkDACAFQQFqIQUMAQsLQQEgB3QhCCAAKAIkIgVFBEAgACAIQQQQGSIFNgIkCyAHIAAoAhQiCyABENQMIgkgCE4gCUEASHINAiAFIAlBAnQiBmooAgAiBQR/IAUFIAAoAhAgCyAAKwMYRAAAAAAAAOA/oiAKIAkQ1gwhBSAAKAIkIAZqIAU2AgAgACgCJCAGaigCAAsgASACIAMgBEEBaiIFEMkHIQEgACgCJCAGaiABNgIAIAAoAiQiBCAGaigCAEUNAwJAIAAoAigiAUUNACAAKAIAQQFHDQUgASgCDCEGIAErAwAhAiAIIAcgACgCFCIHIAEoAggiCBDUDCIDTCADQQBIcg0GIAQgA0ECdCIBaigCACIEBH8gBAUgACgCECAHIAArAxhEAAAAAAAA4D+iIAogAxDWDCEDIAAoAiQgAWogAzYCACAAKAIkIAFqKAIACyAIIAIgBiAFEMkHIQMgACgCJCABaiADNgIAIAAoAiQgAWooAgBFDQcgACgCKCEFA0AgBUUNASAFKAIUIQEgBRDaCCAAIAE2AiggASEFDAALAAsgACAAKAIAQQFqNgIAIAAPCyAAKAIkDQYgACAGQQFqIgQ2AgAgACACIAArAwigOQMIIAdBACAHQQBKGyEIIAZBAmq3IQwgBLchDQNAIAUgCEZFBEAgBUEDdCIEIAAoAiBqIgYgBisDACANoiABIARqKwMAoCAMozkDACAFQQFqIQUMAQsLIAcgAiABIAMQ1QwhASAAKAIoIgNFDQcgASADNgIUIAAgATYCKCAADwtB0KYDQd7BAUHMA0HB9AAQAAALQfaXA0HewQFB2ANBwfQAEAAAC0GJyAFB3sEBQdwDQcH0ABAAAAtBnowDQd7BAUHgA0HB9AAQAAALQfaXA0HewQFB5ANBwfQAEAAAC0GJyAFB3sEBQekDQcH0ABAAAAtB6aQDQd7BAUH1A0HB9AAQAAALQbf1AEHewQFB+wNBwfQAEAAAC9sDAgp/A3wCQCAAQQgQGSIHRSAAQQgQGSIIRXIgAEEIEBkiCkVyDQAgAEEAIABBAEobIQkDQCAFIAlGBEADQCAEIAlGBEBBASABIAFBAUwbIQtBASEFA0AgBSALRwRAIAMgACAFbEEDdGohDEEAIQQDQCAEIAlHBEAgByAEQQN0IgZqIg0gDSsDACAGIAxqKwMAIg4QKjkDACAGIAhqIgYgBisDACAOECI5AwAgBEEBaiEEDAELCyAFQQFqIQUMAQsLIAgrAwAgBysDAKEhDkEAIQQDQCAEIAlHBEAgCiAEQQN0IgVqIAUgB2orAwAiDyAFIAhqKwMAIhCgRAAAAAAAAOA/ojkDACAEQQFqIQQgDiAQIA+hECIhDgwBCwtBACEEIAFBACABQQBKGyEBIAAgCiAORPFo44i1+OQ+ECJEpHA9Ctej4D+iIAIQ1wwhBQNAIAEgBEYNBSAFBEAgBSADIAAgBGxBA3RqRAAAAAAAAPA/IARBABDJBxoLIARBAWohBAwACwAFIAggBEEDdCIFaiADIAVqKwMAOQMAIARBAWohBAwBCwALAAUgByAFQQN0IgZqIAMgBmorAwA5AwAgBUEBaiEFDAELAAsACyAHEBggCBAYIAoQGCAFC0cBAX8gACABQQEQjgEiAUGFKUHAAkEBEDUaQSAQVSECIAEoAhAgAjYCgAEgACgCEC8BsAFBCBAZIQAgASgCECAANgKUASABC1IBAX8gAEEAIAJBABAhIgMEQCAAIAMQQiEAIAFBACACQQAQISIDBEAgASADIAAQcw8LIAAQeARAIAFBACACIAAQ6QMaDwsgAUEAIAIgABAhGgsL4wIBBX8jAEEQayIDJAAgA0IANwMIIANCADcDACABIQYgAUUEQCADQQAQbSADIQYLIAAQeyEEA0AgBARAAkAgBBDEAQRAIARB6yhBmAJBARA1GkE4EFUhBSAEKAIQIAU2AowBIAIQNyEFIAQoAhAiByAFKAIQLwGwATsBsAEgAigCECgCjAEoAiwhBSAHKAKMASIHIAI2AjAgByAFQQFqNgIsIAYgBBBtIARBACAEEM0HDAELIAQgBiACEM0HCyAEEHohBAwBCwsCQAJAIAENACADKAIIIgFBAWsiAkEASA0BIAAoAhAgAjYCtAEgAUECTwRAIAMQ3wwgAygCDCIBIAMoAggiAksEQCADIAMoAgAgASACEOIBNgIAIAMgAygCCDYCDAsgAxDfDCAAKAIQIAMoAgA2ArgBDAELIANCADcCBCADKAIAEBgLIANBEGokAA8LQfjMAUGauwFB9QdBwywQAAALRAEBfCAAKAIQKwMoIQFBkIILLQAAQQFGBEAgAUQAAAAAAADgP6JBiIILKwMAoA8LIAFBiIILKwMAokQAAAAAAADgP6ILRAEBfCAAKAIQKwMgIQFBkIILLQAAQQFGBEAgAUQAAAAAAADgP6JBgIILKwMAoA8LIAFBgIILKwMAokQAAAAAAADgP6ILTAEDfyABKAIQKAKUASIDKwMAIAAoAhAoApQBIgQrAwChmSAAEM8HIAEQzwegZQR/IAMrAwggBCsDCKGZIAAQzgcgARDOB6BlBUEACwsIAEEBQTgQGQsvACAAKAIIRQRAQeKfA0G4vQFBIUHEHhAAAAsgACgCACAAKAIEIAAoAgxwQQJ0ags+AQN/IAAQLyECIAAoAhAiAQRAA0AgASgCBCACIAEoAgBBABCNARogARAYIgEgACgCEEcNAAsLIABBADYCEAsOACAAELwCIABBARDOBQuaqwEEMH8IfAZ9An4jAEHQAWsiECQAAkAgAUH4OhAmIgUEQCAFEIsCIQUMAQtByAEhBQJAAkAgAkEBaw4EAgEBAAELQR4hBQwBCyABEDhB5ABsIQULQdjbCiAFNgIAAkACQCABIAIQhQ4iBkECSA0AQdjbCigCAEEASA0AAkACQAJAAkAgAg4FAAICAgECCwJAAkACQAJAIANBAWsOAwEAAwILQQAhACABIAYgEEGAAWpBAEECQQAQ7gwiAigCCCEFIAIgBhDzByACIAYQrQ0hBCACIAYgBRDyByABKAIQKAKgASEHA0AgACAGRwRAIAcgAEECdCIFaigCACEIIAQgBWooAgAhCUEAIQUDQCAFIAZHBEAgCCAFQQN0aiAJIAVBAnRqKAIAtzkDACAFQQFqIQUMAQsLIABBAWohAAwBCwsgBCgCABAYIAQQGCACEPgMDAULIAYgBkQAAAAAAAAAABCCAyEEIAYgBkQAAAAAAAAAABCCAyEFIAEQGyECA0AgAgRAIAEgAhBwIQADQCAABEAgAEEwQQAgACgCAEEDcSIIQQNHG2ooAigoAgBBBHYiByAAQVBBACAIQQJHG2ooAigoAgBBBHYiCEcEQCAEIAhBAnRqKAIAIAdBA3RqRAAAAAAAAPC/IAAoAhArA4gBoyI1OQMAIAQgB0ECdGooAgAgCEEDdGogNTkDAAsgASAAIAIQdCEADAELCyABIAIQHCECDAELCwJAIAYgBCAFEPcMIghFDQBBACECIAZBACAGQQBKGyEJA0AgAiAJRg0BIAUgAkECdCIKaiETQQAhAANAIAAgBkcEQCAAQQN0IgcgASgCECgCoAEgCmooAgBqIBMoAgAiFiACQQN0aisDACAFIABBAnRqKAIAIAdqKwMAoCAHIBZqKwMAIjUgNaChOQMAIABBAWohAAwBCwsgAkEBaiECDAALAAsgBBCBAyAFEIEDIAgNBCAQIAEQIDYCYEHnkAQgEEHgAGoQK0Hg5ARBABCBAUHgmARBABCBAUHX4gRBABCBAQsgASAGEP4NDAMLIAEgBhD+DSABEBshCgNAIApFDQMgASAKEC0hBQNAIAUEQCAFQTBBACAFKAIAQQNxIgJBA0cbaigCKCgCAEEEdiIAIAVBUEEAIAJBAkcbaigCKCgCAEEEdiICRwRAIAEoAhAoAqABIgQgAkECdGooAgAgAEEDdGogBSgCECsDiAEiNTkDACAEIABBAnRqKAIAIAJBA3RqIDU5AwALIAEgBRAwIQUMAQsLIAEgChAcIQoMAAsACyABIQJBACEEIwBBsBRrIgUkAEGLkgQhAAJAAkACQCADQQFrDgMBAgACC0HXkgQhAAtBACEDIABBABArCyACEDghE0Gc2wotAAAEQEGl4QFBN0EBQcj2CCgCABBTGkHA4AoQrAELIBNBACATQQBKGyEWQQAhAAJAA0AgACAWRgRAAkAgBEEQEBkhCiACEBshAUEAIQcCQANAAkAgAUUEQEEBQRgQGSIGIAhBAWpBBBAZIgA2AgQgBUHYAGogCBDhByAGIAUpA1g3AgggBiAHQQQQGTYCECAHQQQQGSEBIAYgCDYCACAGIAE2AhQgB0EATg0BQbjLAUGgwgFBOEGHEBAAAAsgASgCECgCiAEgCEcNAiACIAEQcCEAA0AgAARAIAcgAEEwQQAgACgCAEEDcSIGQQNHG2ooAiggAEFQQQAgBkECRxtqKAIoR2ohByACIAAgARB0IQAMAQUgCEEBaiEIIAIgARAcIQEMAwsACwALCyAGQQhqIRQgACAIQQJ0aiAHNgIAIAIQGyEIQQAhAQJAAkADQAJAIAhFBEAgCSAGKAIARg0BQcftAEGgwgFBzgBBhxAQAAALIAFBAEgNAyAGKAIEIAlBAnRqIAE2AgAgFCAJIAgoAhAtAIcBQQFLELEEIAIgCBBwIQADQCAARQRAIAlBAWohCSACIAgQHCEIDAMLIABBMEEAIAAoAgBBA3EiC0EDRxtqKAIoIgcgAEFQQQAgC0ECRxtqKAIoIgtHBEAgAUECdCIOIAYoAhBqIAsgByAHIAhGGygCECgCiAE2AgAgBigCFCAOaiAAKAIQKwOIAbYiPTgCACA9QwAAAABeRQ0EIAFBAWohAQsgAiAAIAgQdCEADAALAAsLIAFBAE4EQCAGKAIEIgsgCUECdGooAgAgAUYEQAJAIAMOAwkGAAYLIAVB2ABqIAkQ4QcgBUGgFGogCRDhB0EAIQADQCAAIAlGBEAgBUHYAGoQ4AcgBUGgFGoQ4AdBACEDDAoLIAsgAEEBaiIBQQJ0aiEOIAsgAEECdGoiDygCACEHQQAhEgNAIA4oAgAiACAHTQRAIA8oAgAhAwNAIAAgA00EQCAPKAIAIQcDQCAAIAdNBEAgASEADAYFIAVB2ABqIAYoAhAgB0ECdGooAgBBABCxBCAHQQFqIQcgDigCACEADAELAAsACyALIAYoAhAiESADQQJ0IhVqKAIAQQJ0aiINKAIAIQBBACEIQQAhDANAIA0oAgQiByAATQRAAkAgBigCFCAVaiAMIBJqIAhBAXRrIgCyOAIAIABBAEoNAEHHlgNBoMIBQfIAQYcQEAAACwUgESAAQQJ0aigCACEHIAUgBSkCoBQ3A1AgBUHQAGogBxDGAkUEQCAFQaAUaiAHQQEQsQQgBSAFKQJYNwNIIAxBAWohDCAFQcgAaiAHEMYCIAhqIQgLIABBAWohAAwBCwsgDSgCACEAA0AgACAHTwRAIANBAWohAyAOKAIAIQAMAgUgBUGgFGogESAAQQJ0aigCAEEAELEEIABBAWohACANKAIEIQcMAQsACwALAAUgBigCECAHQQJ0aigCACEAIAUgBSkCWDcDQCAFQUBrIAAQxgJFBEAgBUHYAGogAEEBELEEIBJBAWohEgsgB0EBaiEHDAELAAsACwALQZrHAUGgwgFB0ABBhxAQAAALQbjLAUGgwgFBzwBBhxAQAAALQd2WA0GgwgFByQBBhxAQAAALQbjLAUGgwgFBPUGHEBAAAAtBhjRBoMIBQSlBhxAQAAALBSAHIAdBAWoiASACKAIQKAKYASAAQQJ0aigCACgCEC0AhwFBAUsiBhshB0EAIBMgAWsgBhsgBGohBCAAQQFqIQAMAQsLIAVBgQE2AgQgBUGgwgE2AgBByPYIKAIAQd7BBCAFEB4aEGkACyADIQADQCADIBZGBEAgACAERwRAQbAvQaDCAUGwAUGKrAEQAAALBSACKAIQKAKYASADQQJ0aigCACgCEC0AhwFBAU0EQAJ/IAogAEEEdGohDUEAIQEjAEEgayIHJAAgBigCABC+ASEJIAYoAgAQvgEhCCAGKAIAIQsDQCABIAtGBEAgCCADQQJ0IgFqQQA2AgAgBigCBCABaiIOKAIAIgEgDigCBCIOIAEgDksbIQ4CQANAIAEgDkYEQCALQQBOBEAgB0EQaiADIAkgCCALELENQQAhCyAHQQA2AgwDQAJAIAdBEGogB0EMaiAJIAgQsA1FDQAgCCAHKAIMIgFBAnQiEmoqAgAiPUP//39/Ww0AIAcgBikACCJDNwMYIAEgQ0IgiKdPDQ8CQCABIANOBEAgAUEDdiAHQRhqIEOnIENCgICAgJAEVBtqLQAAQQEgAUEHcXRxRQ0BCyANIAtBBHRqIg5DAACAPyA9ID2UlTgCDCAOID04AgggDiABNgIEIA4gAzYCACALQQFqIQsLIAYoAgQiDiASaigCACEBA0AgASAOIBJqKAIETw0CIAFBAnQiDiAGKAIQaigCACIMQQBIDQYgB0EQaiAMID0gBigCFCAOaioCAJIgCSAIEK8NIAFBAWohASAGKAIEIQ4MAAsACwsgBygCEBAYIAkQGCAIEBggB0EgaiQAIAsMBgsFIAggAUECdCISIAYoAhBqKAIAQQJ0aiAGKAIUIBJqKgIAOAIAIAFBAWohAQwBCwtBmcwBQbPCAUGxAkGBrAEQAAALQZXLAUGzwgFBxwJBgawBEAAABSAIIAFBAnRqQf////sHNgIAIAFBAWohAQwBCwALAAsgAGohAAsgA0EBaiEDDAELCyAGKAIEEBggFBDgByAGKAIQEBggBigCFBAYIAYQGEGc2wotAAAEQCAFEI8BOQMwQcj2CCgCAEHazAQgBUEwahAxC0EBIAQgBEEBTBshAUEBIQAgCioCDCI9IT4DQCAAIAFGBEBBACEAQdjbCigCAEHQ2worAwAhNSACIBMQgg5EAAAAAAAA8D8gPrujIjcgNSA9u6OjITVBAWshByATQQF0QQgQGSEGIBNBARAZIQkDQCAAIBZGBEACQEHI9ggoAgAhE0Gc2wotAAACfAJAAn8CQCA1vSJDQv////////8HVwRARAAAAAAAAPC/IDUgNaKjIDVEAAAAAAAAAABhDQQaIENCAFkNASA1IDWhRAAAAAAAAAAAowwECyBDQv/////////3/wBWDQJBgXghACBDQiCIIkRCgIDA/wNSBEAgRKcMAgtBgIDA/wMgQ6cNARpEAAAAAAAAAAAMAwtBy3chACA1RAAAAAAAAFBDor0iQ0IgiKcLQeK+JWoiA0EUdiAAarciOEQAAOD+Qi7mP6IgQ0L/////D4MgA0H//z9xQZ7Bmv8Daq1CIIaEv0QAAAAAAADwv6AiNSA1IDVEAAAAAAAAAECgoyI2IDUgNUQAAAAAAADgP6KiIjogNiA2oiI2IDaiIjUgNSA1RJ/GeNAJmsM/okSveI4dxXHMP6CiRAT6l5mZmdk/oKIgNiA1IDUgNUREUj7fEvHCP6JE3gPLlmRGxz+gokRZkyKUJEnSP6CiRJNVVVVVVeU/oKKgoKIgOER2PHk17znqPaKgIDqhoKAhNQsgNQshNQRAQc3iAUEOQQEgExBTGkHA4AoQrAELIAVB2ABqIQNBACEAQQAhAQNAIAFB8ARHBEAgAyABQQJ0aiAANgIAIAFBAWoiASAAQR52IABzQeWSnuAGbGohAAwBCwsgA0HwBDYCwBMgBEEAIARBAEobIQsgNZogB7ejIThBACEIA0AgBCEAQdjbCigCACAITARAQQAhAEGc2wotAAAEQCAFEI8BOQMgIBNBwswEIAVBIGoQMQsgChAYA0AgACAWRg0DIAIoAhAoApgBIABBAnRqKAIAKAIQKAKUASIBIAYgAEEEdGoiAysDADkDACABIAMrAwg5AwggAEEBaiEADAALAAUDQCAAQQJOBEAgAEEBayIABH8gBUHYAGohAyAAQQF2IAByIgFBAnYgAXIiAUEEdiABciIBQQh2IAFyIgFBEHYgAXIhDgNAQQAhBwJAIAMoAsATIgFB8ARGBEADQEHjASEBIAdB4wFGBEADQCABQe8ERwRAIAMgAUECdGoiByAHQYwHaygCAEHf4aLIeUEAIAMgAUEBaiIBQQJ0aigCACISQQFxG3MgEkH+////B3EgBygCAEGAgICAeHFyQQF2czYCAAwBCwtBASEHIAMgAygCsAxB3+GiyHlBACADKAIAIgFBAXEbcyABQf7///8HcSADKAK8E0GAgICAeHFyQQF2czYCvBMMAwUgAyAHQQJ0aiIBIAFBtAxqKAIAQd/hosh5QQAgAyAHQQFqIgdBAnRqKAIAIhJBAXEbcyASQf7///8HcSABKAIAQYCAgIB4cXJBAXZzNgIADAELAAsACyABQQFqIQcgAyABQQJ0aigCACEBCyADIAc2AsATIA4gAUELdiABcyIBQQd0QYCtsel5cSABcyIBQQ90QYCAmP5+cSABcyIBQRJ2IAFzcSIBIABLDQALIAEFQQALIQMgBUGoFGoiByAKIABBBHRqIgEpAgg3AwAgBSABKQIANwOgFCABIAogA0EEdGoiAykCCDcCCCABIAMpAgA3AgAgAyAHKQMANwIIIAMgBSkDoBQ3AgAMAQsLIDcgOCAIuKIQoAyiITpBACEAAkADQAJAIAAgC0YEQEEAIQBBnNsKLQAARQ0DRAAAAAAAAAAAITUDQCAAIAtGDQIgCiAAQQR0aiIBKgIMuyAGIAEoAgBBBHRqIgMrAwAgBiABKAIEQQR0aiIHKwMAoSADKwMIIAcrAwihEFAgASoCCLuhIjYgNqKiIDWgITUgAEEBaiEADAALAAsgBiAKIABBBHRqIgMoAgAiDkEEdGoiBysDACI7IAYgAygCBCISQQR0aiIBKwMAoSI2IAcrAwgiPCABKwMIoSI5EFAhNSADKgIIIT0gOSA6IAMqAgy7okQAAAAAAADwPxAqIDUgPbuhoiA1IDWgoyI5oiE1IDYgOaIhNiAJIA5qLQAAQQFGBEAgByA7IDahOQMAIAcgPCA1oTkDCAsgCSASai0AAEEBRgRAIAEgNiABKwMAoDkDACABIDUgASsDCKA5AwgLIABBAWohAAwBCwsgBSA1OQMQIBNB8ooBIAVBEGoQMQsgCEEBaiEIDAELAAsACwUgBiAAQQR0aiIBIAIoAhAoApgBIABBAnRqKAIAKAIQIgMoApQBIggrAwA5AwAgASAIKwMIOQMIIAAgCWogAy0AhwFBAkk6AAAgAEEBaiEADAELCyAGEBggCRAYIAVBsBRqJAAFID0gCiAAQQR0aioCDCI/EL8FIT0gPiA/EJoMIT4gAEEBaiEADAELCwwCC0Hc2wovAQAhBSABIAYgAkECR0EBdBDwDCEHIAEgAUEAQdQYQQAQIUECQQAQYyILQQAgC0EDSBtFBEAgEEHUGDYCQEHPmgQgEEFAaxArQQIhCwsgBUEEEBkiEyAFIAZsQQgQGSIINgIAQQFB3NsKLwEAIgUgBUEBTRshCUEBIQUCQAJAA0AgBSAJRgRAAkAgCyALQQRyIAcbIQVBnNsKLQAABEAgEEHQ2worAwA5AzAgECADNgIgIBAgB0U2AiQgECAFQQNxNgIoIBBB2NsKKAIANgIsQcj2CCgCACIHQdWsBCAQQSBqEDFB8s4DQQ9BASAHEFMaQcDgChCsAUGIjwRBDUEBIAcQUxoLIAEgBiAQQcwBaiACIAMgEEHIAWoQ7gwhFkGc2wotAAAEQCAQEI8BOQMYIBAgBjYCEEHI9ggoAgBBh8wEIBBBEGoQMQsCQCACQQFHBEAgASABQQBB2N8AQQAQIUQAAAAAAAAAAET////////v/xBKITYgAkECRgRAIAYhBCAQKALIASEHQdzbCi8BACEKQdjbCigCACErQQAhAEEAIQJBACEIIwBBMGsiFCQAIBRBADYCLCAUQQA2AigCQAJAIBYoAhBFDQAgBEEAIARBAEobIR4DQCAVIB5HBEBBASEGQQEgFiAVQRRsaiIJKAIAIgsgC0EBTRshCwNAIAYgC0YEQCAVQQFqIRUMAwUgACAJKAIQIAZBAnRqKgIAQwAAAABcciEAIAZBAWohBgwBCwALAAsLIABBAXFFDQACQAJAIAVBBHEiGwRAAkAgCkEDSQ0AQX8hGkEAIQYgFiAEIBNBBGogByAKQQFrIgAgBSADQQ8Q2QdBAEgNBSATIABBAnRqIQADQCAGIB5GDQEgBkEDdCIJIAAoAgBqIBMoAgQgCWorAwA5AwAgBkEBaiEGDAALAAsgEygCACEJQX8hGiAWIAQgEygCBCILIAQQtA0NAiAWIAQgCyAUQSxqIBRBKGogFEEkahDxBw0CIBQoAiQiDkEATARAIBQoAigQGAwECwJAIDZEAAAAAAAAAABkRQ0AIA5BAWshEkEAIQcgFCgCKCENIBQoAiwhBQNAIAcgDkYNASAEIQAgNUQAAAAAAAAAACA2IAsgBSANIAdBAnRqIgwoAgAiBkECdGoiD0EEaygCAEEDdGorAwAgNSALIA8oAgBBA3RqKwMAoKGgIjUgNUQAAAAAAAAAAGMboCE1IAcgEkgEQCAMKAIEIQALIAAgBiAAIAZKGyEAA0AgACAGRgRAIAdBAWohBwwCBSALIAUgBkECdGooAgBBA3RqIgwgNSAMKwMAoDkDACAGQQFqIQYMAQsACwALAAsgCkECRw0BAn9B0NsKKwMAITpBACEFIARBACAEQQBKGyEHIARBBBAZIQ4gBEEIEBkhDwJAIBYoAggEQCAWIAQQrQ0hBgwBCyAEQQAgBEEAShshACAEIARsEL4BIRIgBBC+ASEGA0AgACAFRgRAA0AgACAIRg0DIAggFiAEIAYgCEECdGooAgAQ7gMgCEEBaiEIDAALAAUgBiAFQQJ0aiASIAQgBWxBAnRqNgIAIAVBAWohBQwBCwALAAsDQCACIAdHBEAgBiACQQJ0aiEFQQAhAANAIAAgBEcEQCAFKAIAIABBAnRqIgggCCgCAEEIdDYCACAAQQFqIQAMAQsLIAJBAWohAgwBCwsgCwRAQQEgBCAEQQFMGyEXQQEhAgNAIAIgF0cEQCALIAJBA3RqKwMAITsgBiACQQJ0aigCACEIQQAhAANAIAAgAkcEQEQAAAAAAADwPyAIIABBAnRqKAIAIgW3oyA7IAsgAEEDdGorAwChmSI1oiA3oCE3RAAAAAAAAPA/IAUgBWy4oyA1oiA1oiA4oCE4IABBAWohAAwBCwsgAkEBaiECDAELCyA3IDijIjtEAAAAAAAAAAAgOJkiPEQAAAAAAADwf2IbITVBACEAA0AgACAHRwRAIAsgAEEDdGoiAiA1IAIrAwCiOQMAIABBAWohAAwBCwtBACEAIAQgBGwiGEEEEBkhAiAEQQQQGSESA0AgACAHRwRAIBIgAEECdGogAiAAIARsQQJ0ajYCACAAQQFqIQAMAQsLIASyIT1EAAAAAAAAAAAhOEEAIQIgBEEEEBkhBQNAIAIgB0cEQCAGIAJBAnQiCGohDUQAAAAAAAAAACE3QQAhAANAIAAgBEcEQCANKAIAIABBAnRqKAIAtyI5IDmiIjkgN6AhNyA5IDigITggAEEBaiEADAELCyAFIAhqIDe2ID2VOAIAIAJBAWohAgwBCwsgOLYgGLOVIT1BACEIQQEhAgNAIAcgCEcEQCASIAhBAnQiDWooAgAhESAFIA1qKgIAIT4gBiANaigCACEVQQAhAANAIAAgAkcEQCARIABBAnQiDGogBSAMaioCACA+IAwgFWooAgCyIj8gP5STkiA9kyI/OAIAIAwgEmooAgAgDWogPzgCACAAQQFqIQAMAQsLIAJBAWohAiAIQQFqIQgMAQsLIAUQGEEAIQBBAUEIEBkhESAEQQgQGSEFQQAhAgNAIAIgB0YEQEQAAAAAAAAAACE3A0AgACAHRwRAIDcgBSAAQQN0aisDAKAhNyAAQQFqIQAMAQsLIDcgBLejITdBACEAA0AgACAHRwRAIAUgAEEDdGoiAiACKwMAIDehOQMAIABBAWohAAwBCwsgBSAEQQFrIg0QqgMiN5lEAAAAAAAAsDxjRQRAIAQgBUQAAAAAAADwPyA3oyAFEOsBC0EBIAQgBEEAShshGUQAAAAAAADwPyA6oSE4QQAhCCAEQQgQGSEMIARBCBAZIRUCQANAAkBBACEAIAggGU4NAANAIAAgBEcEQCAJIABBA3RqEKoBQeQAb7c5AwAgAEEBaiEADAELIAVFDQMgCSANIAQgBSAJEK8BmiAFELkEQQAhACAJIA0QqgMiN0S7vdfZ33zbPWMNAAsgBCAJRAAAAAAAAPA/IDejIAkQ6wEDQCAEIAkgFRCOAkEAIQIDQCACIAdHBEAgEiACQQJ0aiEdRAAAAAAAAAAAITdBACEAA0AgACAHRwRAIB0oAgAgAEECdGoqAgC7IAkgAEEDdGorAwCiIDegITcgAEEBaiEADAELCyAMIAJBA3RqIDc5AwAgAkEBaiECDAELCyAMIA0gBCAMIAUQrwGaIAUQuQQgBCAMIAkQjgIgCSANEKoDIjdEu73X2d982z1jDQEgBCAJRAAAAAAAAPA/IDejIAkQ6wEgBCAJIBUQrwEiOZkgOGMNAAsgESA3IDmiOQMAQQEhCAwBCwsDQEEAIQACQCAIIBlIBEADQCAAIARGDQIgCSAAQQN0ahCqAUHkAG+3OQMAIABBAWohAAwACwALIAwQGCAVEBgDQCAAIAdHBEAgCSAAQQN0aiICIAIrAwAgESsDAJmfojkDACAAQQFqIQAMAQsLIBIoAgAQGCASEBggERAYIAUQGEEAIQIgGEEEEBkhDUEBIQgDQCACIAdGBEBBACEFA0AgCCAXRgRAA0AgBSAHRgRAQQAhBUEAIQgDQAJAIAVBAXFFIAhBxwFNcUUEQEEAIQUgO5lEAAAAAAAAsDxjRSA8RAAAAAAAAPB/YnFFDQFBACEAA0AgACAHRg0CIAsgAEEDdCICaiIIIAgrAwAgNaM5AwAgAiAJaiICIAIrAwAgNaM5AwAgAEEBaiEADAALAAtBACECQQEhBSAOIAkgDyAEIDogBEEBELUNQQBIDQADQCACIAdHBEAgDiACQQJ0IgBqIRIgACAGaiENIAkgAkEDdCIMaisDACE5RAAAAAAAAAAAITdBACEAA0AgACAERwRAAkAgACACRg0AIABBAnQiESANKAIAaigCALIgEigCACARaioCAIyUuyE4IAkgAEEDdGorAwAgOWUEQCA3IDigITcMAQsgNyA4oSE3CyAAQQFqIQAMAQsLIDcgDCAPaiIAKwMAIjhhRAAAAAAAAPA/IDcgOKOhmUTxaOOItfjkPmRFckUEQCAAIDc5AwBBACEFCyACQQFqIQIMAQsLIAhBAWohCAwBCwsgBigCABAYIAYQGCAOKAIAEBggDhAYIA8QGCAFDAwFIAkgBUEDdCIAaisDACE4IAAgD2oiAkIANwMAIA4gBUECdCIAaiEIIAAgBmohEkEAIQBEAAAAAAAAAAAhNwNAIAAgBEcEQCAAIAVHBEAgAiA3IABBAnQiDSASKAIAaigCALIgCCgCACANaioCAIyUuyI5oCA3IDmhIDggCSAAQQN0aisDAGYbIjc5AwALIABBAWohAAwBCwsgBUEBaiEFDAELAAsABSAGIAhBAnQiAmooAgAhEiALIAhBA3RqKwMAITdBACEAA0AgACAIRwRAIBIgAEECdCINaiIMKAIAtyI4IDiiIDcgCyAAQQN0aisDAKEiOCA4oqEiOEQAAAAAAAAAAGQhESAGIA1qKAIAIAJqAn8gOJ8iOJlEAAAAAAAA4EFjBEAgOKoMAQtBgICAgHgLQQAgERsiDTYCACAMIA02AgAgAEEBaiEADAELCyAIQQFqIQgMAQsACwAFIA4gAkECdCIFaiANIAIgBGxBAnRqIhI2AgAgBSAGaiEMQQAhAEMAAAAAIT0DQCAAIARHBEAgACACRwRAIBIgAEECdCIRakMAAIC/IAwoAgAgEWooAgCyIj4gPpSVIj44AgAgPSA+kyE9CyAAQQFqIQAMAQsLIAUgEmogPTgCACACQQFqIQIMAQsACwALIAQgCUQAAAAAAADwPyAJIA0QqgOjIAkQ6wEgEUIANwMAQQEhCAwACwALQYDVAUHyugFB4ABB+oIBEAAABSAFIAJBA3QiCGogCCALaisDADkDACACQQFqIQIMAQsACwALQfrSAUHyugFBlAJBxe8AEAAAC0UNAQwCCyAEIAogEyAHEN8HGkF/IRogFiAEQQAgFEEsaiAUQShqIBRBJGoQ8QcNAQsgBEEBRgRAIBQoAigQGEEAIRoMAwsgK0UEQCAUKAIoEBhBACEaDAMLQZzbCi0AAARAQcDgChCsAQsCQAJAAn8CQAJAAkAgA0EBaw4DAQACBAtBnNsKLQAABEBB2vIAQRhBAUHI9ggoAgAQUxoLIBYgBBDaBwwCCyAWIAQQ3gciGA0DQZuRBEEAECtB4OQEQQAQgQEMAgtBnNsKLQAABEBB8/IAQRVBAUHI9ggoAgAQUxoLIBYgBBDdBwsiGA0BC0Gc2wotAAAEQEH5MEEaQQFByPYIKAIAEFMaCyAWIAQQzQUhGAtBnNsKLQAABEAgFBCPATkDEEHI9ggoAgAiAEHZzAQgFEEQahAxQbguQRlBASAAEFMaQcDgChCsAQsgBEEBayILIARsQQJtIQMCQCAbDQBBACEFIAohAkQAAAAAAADwPyE1A0AgAiAFRwRAIBMgBUECdGohAEEAIQYDQCAGIB5GBEAgBUEBaiEFDAMFIDUgACgCACAGQQN0aisDAJkQIiE1IAZBAWohBgwBCwALAAsLRAAAAAAAACRAIDWjITVBACEAA0AgACACRg0BIBMgAEECdGohBUEAIQYDQCAGIB5GBEAgAEEBaiEADAIFIAUoAgAgBkEDdGoiByA1IAcrAwCiOQMAIAZBAWohBgwBCwALAAsACyADIARqISREAAAAAAAAAAAhNQJAIDZEAAAAAAAAAABkRQ0AQQAhBSALQQAgC0EAShshByADsiE9QQAhAANAIAUgB0cEQCAFQQFqIgIhBgNAIABBAWohACAEIAZMBEAgAiEFDAMFIDUgEyAKIAUgBhCrDSAYIABBAnRqKgIAu6OgITUgBkEBaiEGDAELAAsACwtBACEGICRBACAkQQBKGyEAIDUgPbujtiE9A0AgACAGRg0BIBggBkECdGoiAiACKgIAID2UOAIAIAZBAWohBgwACwALQQAhBiAKIR0DQCAGIB1HBEAgBCATIAZBAnRqKAIAEMkCIAZBAWohBgwBCwsgEygCBCIAKwMAITVBACEGA0AgBiAeRwRAIAAgBkEDdGoiAiACKwMAIDWhOQMAIAZBAWohBgwBCwtBACEAIApBBBAZIRkgBCAKbCIIQQQQGSECA0AgACAdRwRAIBkgAEECdCIFaiACIAAgBGxBAnRqIgc2AgAgBSATaiEFQQAhBgNAIAYgHkYEQCAAQQFqIQAMAwUgByAGQQJ0aiAFKAIAIAZBA3RqKwMAtjgCACAGQQFqIQYMAQsACwALC0EAIQBBnNsKLQAABEAgFBCPATkDAEHI9ggoAgBB77kBIBQQMQsgA7IgJCAYELgEICQgGBD5ByAEIARBCBAZIh8Q2wUgC0EAIAtBAEobIS8gBCEHQQAhBgNAAkAgACAvRgRAQQAhBiAEIQBBACEFA0AgBiAeRg0CIBggBUECdGogHyAGQQN0aisDALY4AgAgACAFaiEFIAZBAWohBiAAQQFrIQAMAAsACyAfIABBA3RqIQNBASEFIAZBASAHIAdBAUwbakEBayEJRAAAAAAAAAAAITUDQCAGQQFqIQIgBiAJRgRAIAMgAysDACA1oTkDACAHQQFrIQcgAEEBaiEAIAIhBgwDBSADIAVBA3RqIgYgBisDACAYIAJBAnRqKgIAuyI3oTkDACAFQQFqIQUgNSA3oCE1IAIhBgwBCwALAAsLIApBBBAZIiAgCEEEEBkiADYCAEEBIAogCkEBTRshAkEBIQYDQCACIAZHBEAgICAGQQJ0aiAAIAQgBmxBAnRqNgIAIAZBAWohBgwBCwsgH0EIaiEyIDa2IUG7ITdE////////738hNiAEQQQQGSEhIARBBBAZISIgJEEEEBkhJyAUKAIsIQAgFCgCKCECIBQoAiQhA0EBQSQQGSIMIAM2AiAgDCACNgIcIAwgADYCGCAMIAQ2AgQgDCAYIAQQqA02AgAgDCAEQQQQGTYCCCAMIARBBBAZNgIMIAwgBEEEEBk2AhAgDCAEQQQQGTYCFEEAIRVBACEaAkADQCAVQQFxIBogK05yRQRAIAQgHxDbBSAkIBggJxD4B0EAIQMgCyEAQQAhBUEAIRUDQCAFIC9GBEAgBCEAQQAhFQNAQQAhBiADIB5GBEBBACEAA0AgACAdRgRAAkBEAAAAAAAAAAAhNQNAIAYgHUYNASA1IAQgGSAGQQJ0IgBqKAIAIAAgIGooAgAQyAKgITUgBkEBaiEGDAALAAsFICcgBCAZIABBAnQiAmooAgAgAiAgaigCABD8AiAAQQFqIQAMAQsLIDUgNaAgN6AhNUEAIQYDQCAGIB1HBEAgGCAEIBkgBkECdGoiACgCACAhEPwCIAZBAWohBiA1IAQgACgCACAhEMgCoSE1DAELC0EAIQYgGkEBSyA1IDZkcUHQ2worAwAgNSA2oSA2RLu919nffNs9oKOZZHIhFQNAAkAgBiAdRwRAIAZBAUYEQCAgKAIEITNBACEAQQAhDkEAISwjAEEQayIPJAAgGSgCBCEXIAwoAiAhEiAMKAIcISkgDCgCACEmIAwoAgQiCUEAIAlBAEobIS0gDCgCGCIRQQRrIQVDKGtuziE9QX8hAkEAIQMDQCAAIC1HBEAgACADTgRAIAkhAyASIAJBAWoiAkcEQCApIAJBAnRqKAIAIQMLIAAEfSBBIBcgBSAAQQJ0aigCAEECdGoqAgCSBUMoa27OCyE9IANBAWsiByAASgRAIBEgAEECdGogByAAa0EBakHQAyAXEKoNCwsgPSAXIBEgAEECdGooAgBBAnRqIgcqAgBeBEAgByA9OAIACyAAQQFqIQAMAQsLIAwoAhAhKiAMKAIMITAgDCgCCCElIA9CADcDCCAPQgA3AwBBACECQX8hAyAJQQQQGSEbQQAhAANAIAAgLUYEQAJAIDBBBGsiMSAJQQJ0aiE0IAlBAWshDSAMKAIUISgDQAJAICxBD0gEQEMoa27OIUIgDkEAIQJBASEORQ0BCyAbEBggDxCnDSAPKAIAEBgMAgsDQCACIAlIBEBDAAAAACE9IBcgESACIgVBAnRqKAIAIgBBAnRqKgIAIkAhPgNAICggAEECdGogPTgCACAFQQFqIQoCQAJ/IAUgDUYEQCANIQUgCQwBCyAXIBEgCkECdCIDaigCACIAQQJ0aioCACI9IEEgPpIgPiADIBtqKAIAIBsgBUECdGooAgBKGyI+k4u7RJXWJugLLhE+ZEUNASAKCyEIIAIhBwNAIAUgB0gEQCAPEKcNIAIhAANAIAAgBUoEQEEAIQNDAAAAACE/IA8oAgghB0MAAAAAIT0DQCADIAdGBEAgByAJRiAJQQBOcSIuBEAgNCBAOAIAC0MAAAAAIT9DAAAAACE9IAchAANAIABFBEAgLgRAICogQDgCAAtBACEAQX8hA0QAAAAAAAAAACE2AkACQAJAA0AgACAHRgRAAkAgA0F/Rg0EICogA0ECdCIAaioCACI9IT4gAwRAIAAgMWoqAgAhPgsgPSAJIApKBH0gFyARIAhBAnRqKAIAQQJ0IgBqKgIAIj0gQZMgPSAAIBtqKAIAIBsgESAFQQJ0aigCAEECdGooAgBKGyAoIA8gB0EBaxDVAUECdGoqAgCTBUMoa25OCxCaDCI/ID4gQhC/BSI9XUUNAyA/IEBdRQ0AIEAgPSA9IEBeGyI9IT8MAwsFICogAEECdCIcaioCACE+AkAgAARAID4gHCAxaioCACI9XUUNASA+IEBdBEAgQCA9ID0gQF4bIj0hPgwCCyA9IEBeRQ0BCyA+IT0LIAcgAGuzuyA+IECTi7uiIACzuyA9IECTi7uioCI4IDYgNiA4YyIcGyE2IAAgAyAcGyEDIABBAWohAAwBCwsgPSBAXkUNACA/IT0LQQAhAANAIAAgA0YEQCADIAcgAyAHSxshAANAIAAgA0YEQAJ9AkAgCSAKTA0AIBsgESAIQQJ0aigCAEECdGooAgAgGyARIAVBAnRqKAIAQQJ0aigCAEwNACBBIBcgDyAHQQFrENUBQQJ0aioCAJIMAQsgFyAPIAdBAWsQ1QFBAnRqKgIACyFCIAIhAANAIAAgBUoEQCAOID0gQJOLQwrXIzxdcSA/IECTi0MK1yM8XXEhDgwHBSARIABBAnRqIA8gACACaxDVATYCACAAQQFqIQAMAQsACwAFICggDyADENUBQQJ0aioCACE+IBcgDyADENUBQQJ0aiA/ID6SOAIAIANBAWohAwwBCwALAAUgKCAPIAAQ1QFBAnRqKgIAIT4gFyAPIAAQ1QFBAnRqID0gPpI4AgAgAEEBaiEADAELAAsACwJAIAkgCkoEQCAbIBEgCEECdGooAgBBAnRqKAIAIBsgESAFQQJ0aigCAEECdGooAgBKDQELIBcgDyAHQQFrENUBQQJ0aioCACFCDAELIEEgFyAPIAdBAWsQ1QFBAnRqKgIAkiFCCyAIIQIMCwsgJiAPIABBAWsiAxDVAUECdCIcaigCACEjQwAAAAAhPgNAIAAgB08EQCAqIANBAnRqID4gPpIiPiBAlCA9ID+UIBwgJWoqAgAgHCAjaiIAKgIAIj+Uk5IgPiA9ID+TkpUiPzgCACA9ID4gACoCAJOSIT0gAyEADAIFID4gIyAPIAAQ1QFBAnRqKgIAkyE+IABBAWohAAwBCwALAAsACyAmIA8gAxDVAUECdCIcaigCACEjQQAhAEMAAAAAIT4DQCAAIANGBEAgMCADQQJ0aiA+ID6SIj4gQJQgPSA/lCAcICVqKgIAIBwgI2oiACoCACI/lJOSID4gPSA/k5KVIj84AgAgA0EBaiEDID0gPiAAKgIAk5IhPQwCBSA+ICMgDyAAENUBQQJ0aioCAJMhPiAAQQFqIQAMAQsACwALAAsgCCEHIBIgGyARIABBAnRqKAIAQQJ0aigCACIDRwRAIAcgKSADQQJ0aigCACIDIAMgB0obIQcLIAcgACAAIAdIGyEcIAAhAwNAAkAgAyAcRgRAIAAhAwNAIAMgHEYNAiBAICUgESADQQJ0aigCACIjQQJ0aioCAFsEQCAPICMQbQsgA0EBaiEDDAALAAsgQCAlIBEgA0ECdGooAgAiI0ECdGoqAgBeBEAgDyAjEG0LIANBAWohAwwBCwsDQCAAIBxGBEAgByEADAILIEAgJSARIABBAnRqKAIAIgNBAnRqKgIAXQRAIA8gAxBtCyAAQQFqIQAMAAsACwALICYgESAHQQJ0aigCACIjQQJ0IgNqKAIAIRwgAyAzaioCAIwhPkEAIQADQCAAIC1GBEAgAyAlaiA+IAMgHGoqAgCMlSADIChqKgIAkzgCACAHQQFqIQcMAgUgACAjRwRAIBwgAEECdCIuaioCACAXIC5qKgIAlCA+kiE+CyAAQQFqIQAMAQsACwALAAsgPSBAkyE9IAohBQwACwALCyAJIBcQ/QIgLEEBaiEsDAALAAsFAkAgACACSA0AIANBAWohBSAJIQIgBSASIgNGDQAgKSAFQQJ0aigCACECIAUhAwsgGyARIABBAnRqKAIAQQJ0aiADNgIAIABBAWohAAwBCwsgD0EQaiQADAILIBggGSAGQQJ0IgBqKAIAIAAgIGooAgAgBCAEELcERQ0BQX8hGgwJCyAaQQFqIRogNSE2DAcLIAZBAWohBgwACwAFICcgFUECdGogHyADQQN0aisDALY4AgAgACAVaiEVIANBAWohAyAAQQFrIQAMAQsACwAFIABBACAAQQBKGyEHIARDAAAAACAiEO8DIAQgBUF/c2ohAkEAIQYDQCAGIB1HBEAgAiAFQQJ0IgggGSAGQQJ0aiIJKAIAaioCACAhEO8DIAIgIUMAAIC/IAkoAgAgCGpBBGoQ3AUgAiAhELgEIAIgISAiICIQuA0gBkEBaiEGDAELCyACICIQ9wdBACEGA0ACQCAGIAdGBEAgMiAFQQN0IgJqIQhBACEGRAAAAAAAAAAAITUMAQsgIiAGQQJ0aiICKgIAIj1D//9/f2AgPUMAAAAAXXIEQCACQQA2AgALIAZBAWohBgwBCwsDQCAVQQFqIRUgBiAHRwRAICcgFUECdGoiCSAiIAZBAnRqKgIAIAkqAgCUIj04AgAgCCAGQQN0aiIJIAkrAwAgPbsiOKE5AwAgNSA4oCE1IAZBAWohBgwBCwsgAiAfaiICIAIrAwAgNaE5AwAgAEEBayEAIAVBAWohBQwBCwALAAsLIBkEQEEAIQADQCAAIB1HBEAgEyAAQQJ0IgJqIQMgAiAZaiECQQAhBgNAIAYgHkYEQCAAQQFqIQAMAwUgAygCACAGQQN0aiACKAIAIAZBAnRqKgIAuzkDACAGQQFqIQYMAQsACwALCyAZKAIAEBggGRAYCyAhEBggIhAYIB8QGCAYEBggJxAYCyAMBEAgDCgCACgCABAYIAwoAgAQGCAMKAIIEBggDCgCDBAYIAwoAhAQGCAMKAIUEBggDBAYCyAgKAIAEBggIBAYCyAUKAIsEBggFCgCKBAYDAELIBYgBCATIAcgCiAFIAMgKxDZByEaCyAUQTBqJAAgGiEFDAILIBAgARA4IgI2AmwgEEEANgJoIAJBIU8EQCAQIAJBA3YgAkEHcUEAR2pBARAZNgJoCyABEDghCyAAEHshBQNAIAUEQCAFEMQBIBhqIRggBRB6IQUMAQsLIBhBBBAZIQ4gGEEEEBkhEiAAEHshACAOIQggEiEHA0AgAARAAkAgABDEAUUNACAHIAAQOCICNgIAIAggAkEEEBkiCjYCACAIQQRqIQggB0EEaiEHIAIgDWohDSAAEBshAgNAIAJFDQFBACEJIAEQGyEFA0ACQCAFRQ0AIAIoAgAgBSgCAHNBEEkNACAJQQFqIQkgASAFEBwhBQwBCwsgCiAJNgIAIAkgECgCbCIFTw0GIAlBA3YgEEHoAGogECgCaCAFQSFJG2oiBSAFLQAAQQEgCUEHcXRyOgAAIAtBAWshCyAKQQRqIQogACACEBwhAgwACwALIAAQeiEADAELCyAYQSAQGSEnIAtBBBAZISAgEEGAAWogECkDaCJDpyIAIENCgICAgJAEVBshAiBDQiCIpyEHQQAhBUEAIQkDQCABEDggBUoEQCAQIEM3A4ABIAUgB0YNCyACIAVBA3ZqLQAAIAVBB3F2QQFxRQRAICAgCUECdGogBTYCACAJQQFqIQkLIAVBAWohBQwBCwsgCyABEDggDWtHDQUgQ0KAgICAkARaBEAgABAYCyAGQRAQGSEhIBAgJzYCxAEgECAgNgLAASAQIAs2ArwBIBAgDjYCuAEgECASNgK0ASAQIBg2ArABIBAgDTYCrAEgECAhNgKoASAQIDY5A4gBAkAgAUHVKRAmIgAQawRAIBBBATYCgAFBnNsKLQAARQ0BQefqBEEfQQFByPYIKAIAEFMaDAELAkAgAEUNACAAQY88QQQQ+wENACAQQQI2AoABQZzbCi0AAEUNAUGH6wRBKEEBQcj2CCgCABBTGgwBCyAQQQA2AoABCwJAAkACQAJAIAQoAgBBEGsOAgEAAgsgEEEBNgKQAUGc2wotAABFDQJBwOoEQSZBAUHI9ggoAgAQUxoMAgsgEEECNgKQAUGc2wotAABFDQFBsOsEQSRBAUHI9ggoAgAQUxoMAQsgEEEANgKQAQsgEEHoAGogARD5AkQcx3Ecx3G8PyE1RBzHcRzHcbw/ITYgEC0AeEEBcQRAIBArA3BEAAAAAAAAUkCjIjUgNaAhNiAQKwNoRAAAAAAAAFJAoyI1IDWgITULIBAgNjkDoAEgECA1OQOYAUEAIQlBnNsKLQAABEAgECA2OQMIIBAgNTkDAEHI9ggoAgBBo6wEIBAQMQsgARAbIQUDQCAFBEAgISAJQQR0aiIAIAUoAhAiAisDIDkDACAAIAIrAyg5AwggCUEBaiEJIAEgBRAcIQUMAQsLIBAoAsgBIQBB3NsKLwEAIQtB2NsKKAIAISIgEEGAAWohFEEAIQRBACEHQQAhBSMAQeAAayIMJAAgBiALIBMgABDfBxoCQCAGQQFGDQAgBkEAIAZBAEobIRoDQCAEIBpHBEBBASECQQEgFiAEQRRsaiIAKAIAIgggCEEBTRshCANAIAIgCEYEQCAEQQFqIQQMAwUgACgCCCACQQJ0aioCACI+ID0gPSA+XRshPSACQQFqIQIMAQsACwALCyAiRQ0AQZzbCi0AAARAQcDgChCsAQsCQAJAAn8CQAJAAkAgA0EBaw4DAQACBAtBnNsKLQAABEBB2vIAQRhBAUHI9ggoAgAQUxoLIBYgBhDaBwwCCyAWIAYQ3gciBw0DQZuRBEEAECtB4OQEQQAQgQEMAgtBnNsKLQAABEBB8/IAQRVBAUHI9ggoAgAQUxoLIBYgBhDdBwsiBw0BC0Gc2wotAAAEQEH5MEEaQQFByPYIKAIAEFMaCyAWIAYQzQUhBwtBnNsKLQAABEAgDBCPATkDUEHI9ggoAgAiAEHZzAQgDEHQAGoQMUG4LkEZQQEgABBTGkHA4AoQrAELIAZBAWsiCiAGbEECbUQAAAAAAADwPyE1A0AgBSALRwRAIBMgBUECdGohA0EAIQIDQCACIBpGBEAgBUEBaiEFDAMFIDUgAygCACACQQN0aisDAJkQIiE1IAJBAWohAgwBCwALAAsLRAAAAAAAACRAIDWjITVBACEEQQAhAwNAAkAgAyALRgRAA0AgBCALRg0CIAYgEyAEQQJ0aigCABDJAiAEQQFqIQQMAAsACyATIANBAnRqIQVBACECA0AgAiAaRgRAIANBAWohAwwDBSAFKAIAIAJBA3RqIgggNSAIKwMAojkDACACQQFqIQIMAQsACwALCyATKAIEIgMrAwAhNUEAIQIDQCACIBpHBEAgAyACQQN0aiIEIAQrAwAgNaE5AwAgAkEBaiECDAELCyAGaiEZQZzbCi0AAARAIAwQjwE5A0BByPYIKAIAQe+5ASAMQUBrEDELIBkgBxC4BCAZIAcQ+QcCQCAUKAIwIgBBAEwEQCAHIQkgBiEADAELQwAAgD8gPSA9lCI9lSA9ID1DCtcjPF4bIT4gAEEBdCAGaiIAQQAgAEEAShshDSAAQQFrIgogAGxBAm0gAGoiGUEEEBkhCSAAIQhBACEEQQAhBUEAIQMDQCAEIA1HBEAgCEEAIAhBAEobIQ8gBEEBcSERIAYgBGshFUEAIQIDQCACIA9GBEAgCEEBayEIIARBAWohBAwDBQJAIAQgBk4gAiAVTnJFBEAgByAFQQJ0aioCACE9IAVBAWohBQwBC0MAAAAAID4gAkEBRxtDAAAAACARGyE9CyAJIANBAnRqID04AgAgAkEBaiECIANBAWohAwwBCwALAAsLIAcQGAsgACAAQQgQGSIRENsFQQAhAiAKQQAgCkEAShshKCAAIQRBACEIA0AgCCAoRwRAIBEgCEEDdGohB0EBIQUgAkEBIAQgBEEBTBtqQQFrIQ1EAAAAAAAAAAAhNQNAIAJBAWohAyACIA1GBEAgByAHKwMAIDWhOQMAIARBAWshBCAIQQFqIQggAyECDAMFIAcgBUEDdGoiAiACKwMAIAkgA0ECdGoqAgC7IjahOQMAIAVBAWohBSA1IDagITUgAyECDAELAAsACwtBACEDIABBACAAQQBKGyEkIAAhBUEAIQIDQCACICRHBEAgCSADQQJ0aiARIAJBA3RqKwMAtjgCACADIAVqIQMgAkEBaiECIAVBAWshBQwBCwtBACEEIAtBBBAZIQ0gACALbCIDQQQQGSEFA0AgBCALRwRAIA0gBEECdCICaiAFIAAgBGxBAnRqIgc2AgAgAiATaiEIQQAhAgNAIAIgJEYEQCAEQQFqIQQMAwUgByACQQJ0aiACIAZIBH0gCCgCACACQQN0aisDALYFQwAAAAALOAIAIAJBAWohAgwBCwALAAsLIAtBBBAZIg8gA0EEEBkiAzYCAEEBIAsgC0EBTRshBCAAIApsQQJtIQVBASECA0AgAiAERwRAIA8gAkECdGogAyAAIAJsQQJ0ajYCACACQQFqIQIMAQsLQX8hByAAQQQQGSEVIABBBBAZIRcCQAJAAkAgACAJIBYgFEEAEO8HIh5FDQAgACAJIBYgFCAUKAIAEO8HIh1FDQAgIkEBayErIBFBCGohLEHI9ggoAgAhHyAFsrshOET////////vfyE2IBlBBBAZIRtEAAAAAAAAAAAhNUEAIQRBACEHA0AgBEEBcSAHICJOckUEQCAAIBEQ2wUgGSAJIBsQ+AdBACElIAohBUEAIQNBACEIA0AgCCAoRgRAIAAhA0EAIQQDQEEAIQIgBCAkRgRAQQAhBANAIAQgC0YEQAJARAAAAAAAAAAAITUDQCACIAtGDQEgNSAAIA0gAkECdCIDaigCACADIA9qKAIAEMgCoCE1IAJBAWohAgwACwALBSAbIAAgDSAEQQJ0IgNqKAIAIAMgD2ooAgAQ/AIgBEEBaiEEDAELCyA1IDWgIDigITVBACECA0AgAiALRwRAIAkgACANIAJBAnRqIgMoAgAgFRD8AiACQQFqIQIgNSAAIAMoAgAgFRDIAqEhNQwBCwsCQEGc2wotAABFDQAgDCA1OQMwIB9BwMwDIAxBMGoQMSAHQQpvDQBBCiAfEPYCGgtBACEEQQAhAyAUKAIQIQIgNSA2YwRAQdDbCisDACA1IDahIDZEu73X2d982z2go5lkIQMLAkAgA0UgByArSHENACA3RCuHFtnO9+8/Y0UgAkEBR3JFBEAgN0SamZmZmZm5P6AhN0Gc2wotAAAEfyAMIAc2AiggDCA3OQMgIB9B0sIEIAxBIGoQMSAUKAIQBUEBCyECQQAhBwwBCyADIQQLIDdE/Knx0k1iUD9kRSACQQFHckUEQCAeIDe2IA1BACA3RAAAAAAAAOA/ZiAUENoFCwJAAkACQAJAIB4oAhRBAEoEQCAeIA8oAgAgDSgCABCmDRoMAQsgCSANKAIAIA8oAgAgACAAELcEQQBIDQELIDdE/Knx0k1iUD9kRSAUKAIQQQFHckUEQCAdIDe2IA1BAUEAIBQQ2gULIB0oAhRBAEwNASAdIA8oAgQgDSgCBBCmDUEATg0CC0F/IQcMCQsgCSANKAIEIA8oAgQgACAAELcEGgsgB0EBaiEHIDUhNgwFBSAbICVBAnRqIBEgBEEDdGorAwC2OAIAIAMgJWohJSAEQQFqIQQgA0EBayEDDAELAAsABSAFQQAgBUEAShshKiAAQwAAAAAgFxDvAyAAIAhBf3NqIQJBACEEA0AgBCALRwRAIAIgCEECdCIpIA0gBEECdGoiJigCAGoqAgAgFRDvAyACIBVDAACAvyAmKAIAIClqQQRqENwFIAIgFRC4BCACIBUgFyAXELgNIARBAWohBAwBCwsgAiAXEPcHQQAhAgNAAkAgAiAqRgRAICwgCEEDdCIEaiEpQQAhAkQAAAAAAAAAACE1DAELIBcgAkECdGoiBCoCACI9Q///f39gID1DAAAAAF1yBEAgBEEANgIACyACQQFqIQIMAQsLA0AgA0EBaiEDIAIgKkcEQCAbIANBAnRqIiYgFyACQQJ0aioCACAmKgIAlCI9OAIAICkgAkEDdGoiJiAmKwMAID27IjqhOQMAIDUgOqAhNSACQQFqIQIMAQsLIAQgEWoiAiACKwMAIDWhOQMAIAVBAWshBSAIQQFqIQgMAQsACwALC0Gc2wotAAAEQCAMEI8BOQMQIAwgBzYCCCAMIDU5AwAgH0G1ywQgDBAxCyAeEO4HIB0Q7gcgFCgCEEECRw0AIAYgDSAUEKUNCyANRQ0BC0EAIQgDQCAIIAtHBEAgEyAIQQJ0IgBqIQMgACANaiEAQQAhAgNAIAIgGkYEQCAIQQFqIQgMAwUgAygCACACQQN0aiAAKAIAIAJBAnRqKgIAuzkDACACQQFqIQIMAQsACwALCyANKAIAEBggDRAYCyAPKAIAEBggDxAYIBUQGCAXEBggERAYIAkQGCAbEBgLIAxB4ABqJAAgByEFIBgEQCAOKAIAEBggDhAYIBIQGCAgEBggJxAYCyAhEBgMAQsgFiAGIBMgECgCyAFB3NsKLwEAIAUgA0HY2wooAgAQ2QchBQsgBUEASARAQYO6BEEAEIEBDAULIAEQGyEKA0AgCkUNBUEAIQVB3NsKLwEAIQAgCigCECICKAKIAUEDdCEDA0AgACAFRgRAIAEgChAcIQoMAgUgAigClAEgBUEDdGogEyAFQQJ0aigCACADaisDADkDACAFQQFqIQUMAQsACwALAAsFIBMgBUECdGogCCAFIAZsQQN0ajYCACAFQQFqIQUMAQsLQfezA0Hc/gBB0ABB2SEQAAALQeosQZG8AUH2AUHM3gAQAAALIBYQ+AwgEygCABAYIBMQGCAQKALIARAYDAELIAEgBhCCDkEAIQIjAEHgAGsiBCQAQZzbCi0AAARAQdjOA0EZQQFByPYIKAIAEFMaQcDgChCsAQsgBkEAIAZBAEobIQkgASgCECIAKAKgASEIIAAoAqQBIQUDQCACIAlHBEAgBSACQQJ0IgdqIQogByAIaiETQQAhAANAIAAgAkcEQEQAAAAAAADwPyAAQQN0IhYgEygCAGorAwAiNSA1oqMhNSABIAEoAhAoApgBIgsgB2ooAgAgCyAAQQJ0Ig5qKAIAQQBBABBfIgsEQCA1IAsoAhArA4ABoiE1CyAFIA5qKAIAIAJBA3RqIDU5AwAgCigCACAWaiA1OQMAIABBAWohAAwBCwsgAkEBaiECDAELC0EAIQJB3NsKLwEAIQUDf0EAIQAgAiAJRgR/IAEoAhAiBSgCmAEhCkEABQNAIAAgBUcEQCABKAIQKAKoASACQQJ0aigCACAAQQN0akIANwMAIABBAWohAAwBCwsgAkEBaiECDAELCyEHA0ACQAJAIAogB0ECdCIIaigCACIWBEBBACECQdzbCi8BACELA0AgAiAJRg0CAkAgAiAHRg0AQQAhACAWKAIQKAKUASAKIAJBAnQiDmooAgAoAhAoApQBIARBEGoQgQ4hNQNAIAAgC0YNASAAQQN0IhMgBSgCrAEgCGooAgAgDmooAgBqIAJBA3QiEiAFKAKkASAIaigCAGorAwAgBEEQaiATaisDACI2IDYgBSgCoAEgCGooAgAgEmorAwCiIDWjoaIiNjkDACAFKAKoASAIaigCACATaiITIDYgEysDAKA5AwAgAEEBaiEADAALAAsgAkEBaiECDAALAAtBnNsKLQAABEAgBBCPATkDAEHI9ggoAgBB28wEIAQQMQsgBEHgAGokAAwBCyAHQQFqIQcMAQsLQZzbCi0AAARAIBAgAzYCUCAQQdjbCigCADYCVCAQQdDbCisDADkDWEHI9ggoAgBBjq0EIBBB0ABqEDFBwOAKEKwBCyABIQkjAEHAAmsiCiQAQZD/CkHQ2worAwAiNSA1ojkDACAGQQAgBkEAShshFkHI9ggoAgAhEwNAAkBBpP8KQaT/CigCAEEBaiIENgIAIAkoAhAiAygCnAFB2NsKKAIATg0AQQAhCEHc2wovAQAhBUQAAAAAAAAAACE1QQAhAQNAIAggFkcEQAJAIAhBAnQiByADKAKYAWooAgAiAigCEC0AhwFBAUsNAEQAAAAAAAAAACE2QQAhAANAIAAgBUcEQCADKAKoASAHaigCACAAQQN0aisDACI3IDeiIDagITYgAEEBaiEADAELCyA1IDZjRQ0AIDYhNSACIQELIAhBAWohCAwBCwsgNUGQ/worAwBjDQACQEGc2wotAABFIARB5ABvcg0AIAogNZ85A0AgE0HAzAMgCkFAaxAxQaT/CigCAEHoB28NAEEKIBMQ9gIaCyABRQ0AQQAhAyAKQaABakEAQdAAEDMaIApB0ABqQQBB0AAQMxogASgCECgCiAEhC0Hc2wovAQAiACAAbEEIEBkhBSAJKAIQIgIoApgBIg4gC0ECdCIIaigCACESQdzbCi8BACEEIAIoAqABIAIoAqQBIQ0DQCADIARHBEAgBSADIARsQQN0aiEMQQAhAANAIAAgBEcEQCAMIABBA3RqQgA3AwAgAEEBaiEADAELCyADQQFqIQMMAQsLIARBAWohDCAIaiEUIAggDWohDUEAIQcDfyAHIBZGBH9BASEDQQEgBCAEQQFNGwUCQCAHIAtGDQAgDiAHQQJ0aigCACEPRAAAAAAAAAAAITVBACEAA0AgACAERwRAIABBA3QiAyAKQfABamogEigCECgClAEgA2orAwAgDygCECgClAEgA2orAwChIjY5AwAgNiA2oiA1oCE1IABBAWohAAwBCwtEAAAAAAAA8D8gNZ8iNiA2IDaioqMhNkEAIQMDQCADIARGDQEgB0EDdCIAIA0oAgBqKwMAIjggFCgCACAAaisDACI6oiADQQN0IgAgCkHwAWpqKwMAIjeiITsgACAFaiEPQQAhAANAIAAgA0cEQCAPIAAgBGxBA3RqIhEgOyAKQfABaiAAQQN0aisDAKIgNqIgESsDAKA5AwAgAEEBaiEADAELCyAFIAMgDGxBA3RqIgAgOEQAAAAAAADwPyA6IDUgNyA3oqGiIDaioaIgACsDAKA5AwAgA0EBaiEDDAALAAsgB0EBaiEHDAELCyEHA0ACQCADIAdHBEAgBSADQQN0aiEOIAUgAyAEbEEDdGohEkEAIQADQCAAIANGDQIgEiAAQQN0aiAOIAAgBGxBA3RqKwMAOQMAIABBAWohAAwACwALQQAhAANAIAAgBEcEQCAAQQN0IgMgCkHQAGpqIAIoAqgBIAhqKAIAIANqKwMAmjkDACAAQQFqIQAMAQsLIApBoAFqIQ4gCkHQAGohB0EAIQJBACEDAkACQAJAIARBAUsEQCAEIARsIhIQwgEhDSAEEMIBIQwDQCADIARGBEADQCACIBJGBEAgBEEBayEUQQAhAANAIAAgFEYNBiAFIABBA3QiD2ohEUQAAAAAAAAAACE1QQAhAyAAIQIDQCACIARPBEAgNUS7vdfZ33zbPWMNCSAFIAAgBGxBA3RqIREgBSADIARsQQN0aiEVIAAhAgNAIAIgBE8EQCAHIANBA3RqIgIpAwAhQyACIAcgD2oiFSsDADkDACAVIEM3AwAgDyARaiEXIAAhAwNAIAQgA0EBaiIDSwRAIAcgA0EDdGoiAiAFIAMgBGxBA3RqIhggD2orAwCaIBcrAwCjIjUgFSsDAKIgAisDAKA5AwBBACECA0AgAiAERg0CIBggAkEDdCIaaiIZIDUgESAaaisDAKIgGSsDAKA5AwAgAkEBaiECDAALAAsLIABBAWohAAwEBSAVIAJBA3QiF2oiGCkDACFDIBggESAXaiIXKwMAOQMAIBcgQzcDACACQQFqIQIMAQsACwAFIDUgESACIARsQQN0aisDAJkiNiA1IDZkIhUbITUgAyACIBUbIQMgAkEBaiECDAELAAsACwAFIA0gAkEDdCIAaiAAIAVqKwMAOQMAIAJBAWohAgwBCwALAAUgDCADQQN0IgBqIAAgB2orAwA5AwAgA0EBaiEDDAELAAsAC0Hv7QJBz8ABQRdBio4BEAAACyAFIBJBA3RqQQhrKwMAIjWZRLu919nffNs9Yw0AIA4gFEEDdCIAaiAAIAdqKwMAIDWjOQMAIARBAWohFUEAIQBBACEDA0AgAyAURgRAA0AgACAERgRAQQAhAgNAIAIgEkYNBiAFIAJBA3QiAGogACANaisDADkDACACQQFqIQIMAAsABSAHIABBA3QiAmogAiAMaisDADkDACAAQQFqIQAMAQsACwALIA4gBCADayICQQJrIg9BA3QiF2oiESAHIBdqKwMAIjU5AwAgAkEBayECIAUgBCAPbEEDdGohFwNAIAIgBE8EQCARIDUgBSAPIBVsQQN0aisDAKM5AwAgA0EBaiEDDAIFIBEgNSAXIAJBA3QiGGorAwAgDiAYaisDAKKhIjU5AwAgAkEBaiECDAELAAsACwALQdTZCigCABoCQEHAsAFBiNkKEIABQQBIDQACQEHY2QooAgBBCkYNAEGc2QooAgAiAEGY2QooAgBGDQBBnNkKIABBAWo2AgAgAEEKOgAADAELQYjZCkEKELUHGgsLIA0QGCAMEBhBACEAA0BB3NsKLwEAIg4gAEsEQEHw2worAwAhNRDSASE2IABBA3QiAiAKQaABamoiAyADKwMAIDUgNkQAAAAAAADwPyA1oSI1IDWgoqCiIjU5AwAgASgCECgClAEgAmoiAiA1IAIrAwCgOQMAIABBAWohAAwBCwsgCSgCECICIAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCBDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIBErAwAgNqA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBlN8KKAIABEBBACEAQdzbCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmgITYgAEEBaiEADAELCyABECAhACAKIDafOQM4IAogADYCMCATQc2nBCAKQTBqEDELIAUQGAwFBSACKAKoASAIaigCACAAQQN0akIANwMAIABBAWohAAwBCwALAAsgA0EBaiEDDAALAAsLQQAhAEGc2wotAAAEQEEBIAYgBkEBTBtBAWshBUHc2wovAQAhB0QAAAAAAAAAACE1A0AgACAFRwRAIAkoAhAiAigCmAEiCCAAQQJ0IgRqKAIAIRYgAEEBaiIBIQMDQCADIAZGBEAgASEADAMFIAggA0ECdGooAgAhC0EAIQBEAAAAAAAAAAAhNgNAIAAgB0cEQCAAQQN0Ig4gFigCECgClAFqKwMAIAsoAhAoApQBIA5qKwMAoSI3IDeiIDagITYgAEEBaiEADAELCyADQQN0IgAgAigCpAEgBGooAgBqKwMAIAIoAqABIARqKAIAIABqKwMAIjdEAAAAAAAAAMCiIDafoiA3IDeiIDagoKIgNaAhNSADQQFqIQMMAQsACwALCyAKIDU5AyAgE0HeiwEgCkEgahAxQdjbCigCACEBIAkoAhAoApwBIQAgChCPATkDGCAKIAA2AhAgCkGNygNB9YQFIAAgAUYbNgIUIBNBmssEIApBEGoQMQsgCSgCECgCnAEiAEHY2wooAgBGBEAgCiAJECA2AgQgCiAANgIAQbP6AyAKECsLIApBwAJqJAALIBBB0AFqJAAPC0GptANB3P4AQcEAQYIjEAAAC4QBAQN/IwBBkAhrIgIkAAJAQdzbCi8BAEEDSQ0AQfjcCigCAEUNACAAEBshAQNAIAFFDQEgAiABKAIQKAKUASsDEEQAAAAAAABSQKI5AwAgAkEQaiIDQYAIQZyJASACEKEBGiABQfjcCigCACADEHMgACABEBwhAQwACwALIAJBkAhqJAALpSECEn8KfCMAQfAAayIIJABBsNsKKwMAIRoCQAJAQajbCigCAARAQbDbCkKAgICAgICAqcAANwMAIAAQ7wwgABDWByMAQZABayIEJAAgACIDQQBB69wAQQAQISEHIABBAEHRwwFBABAhIQIgAEGDlwEQJhBrIRIgAkUEQCAAQQBB0cMBQfWEBRAhIQILIANBABCFDhoCQAJAA0AgAygCECgCmAEgAUECdGooAgAiAARAIAAoAhAiBi0AhwEEfyAGBSAAECBBxzoQvwJFDQMgACgCEAsoAnwiBgRAIAAgBkHQ3AAQrwQLIAFBAWohAQwBCwsgAyAHIAIQ8gwCQCADELICRQRAQQIhBwwBC0EAIQcgA0ECQZ4uQQAQISIJRQ0AQajbCigCAEECSA0AIAMQGyEKA0AgCgRAIAMgChAtIQYDQCAGBEACQCAGIAkQQiIBLQAARQ0AIAYgBEH8AGogBEH4AGoQ8QZEAAAAAAAAAAAhE0EAIQxEAAAAAAAAAAAhFUQAAAAAAAAAACEWRAAAAAAAAAAAIRRBACENA0AgBCAEQYwBajYCSCAEIARBgAFqNgJEIAQgBEHYAGo2AkAgAUH27QAgBEFAaxBPQQJGBEBBASENIAQrA4ABIRUgASAEKAKMAWohASAEKwNYIRMLIAQgBEGMAWo2AjggBCAEQYABajYCNCAEIARB2ABqNgIwQQAhAiABQYLuACAEQTBqEE9BAkYEQEEBIQwgBCsDgAEhFCAEKwNYIRYgASAEKAKMAWohAQsgASEAA0ACQAJAAkACQCAALQAAIgcODgMCAgICAgICAgEBAQEBAAsgB0EgRw0BCyAAQQFqIQAMAgsgAkEBaiECA0ACQAJAIAdB/wFxIgcODgMBAQEBAQEBAQQEBAQEAAsgB0EgRg0DIAdBO0YNAgsgAC0AASEHIABBAWohAAwACwALCyACQQNwQQFGIAJBBE5xRQRAIAYQ/gRB+IALLQAAQfiAC0EBOgAAQQFxDQIgBkEwQQAgBigCAEEDcUEDRxtqKAIoECAhACAEIAZBUEEAIAYoAgBBA3FBAkcbaigCKBAgNgIkIAQgADYCIEG65gMgBEEgahArDAILIAJBEBAZIgshACACIQcDQCAHBEAgBCAEQYwBajYCGCAEIARBgAFqNgIUIAQgBEHYAGo2AhAgAUGF7gAgBEEQahBPQQFMBEBB+IALLQAAQfiAC0EBOgAAQQFxRQRAIAZBMEEAIAYoAgBBA3FBA0cbaigCKBAgIQAgBCAGQVBBACAGKAIAQQNxQQJHG2ooAigQIDYCBCAEIAA2AgBBzvAEIAQQKwsgCxAYIAYQ/gQMBAUgBCgCjAEhDiAAIAQrA1g5AwAgACAEKwOAATkDCCAHQQFrIQcgAEEQaiEAIAEgDmohAQwCCwALCwNAIAEtAAAiDkEJayIAQRdLQQEgAHRBn4CABHFFckUEQCABQQFqIQEMAQsLIAYgAhDzBiEHIA0EQCAEKAJ8IQAgByAVOQMYIAcgEzkDECAHIAA2AggLIAwEQCAEKAJ4IQAgByAUOQMoIAcgFjkDICAHIAA2AgwLIAFBAWohAUEAIQADQCAAIAJHBEAgAEEEdCIPIAcoAgBqIhAgCyAPaiIPKQMANwMAIBAgDykDCDcDCCAAQQFqIQAMAQsLIAsQGCAODQALIAYoAhAiACgCYCIBBEAgBiABQevcABCvBCAGKAIQIQALIAAoAmwiAQRAIAYgAUHQ3AAQrwQgBigCECEACyAAKAJkIgEEfyAGIAFB5twAEK8EIAYoAhAFIAALKAJoIgAEQCAGIABB3twAEK8ECyAFQQFqIQULIAMgBhAwIQYMAQsLIAMgChAcIQoMAQsLIAVFBEBBACEHDAELQQJBASADELICIAVGGyEHC0EAIQZBACECIAMoAhAoAggiACgCWCIMBEAgAEEANgJUQQEhAgsCQCAMDQBBqNsKKAIAQQFHDQAgAxC0BEUNAEEBIQYgAygCECgCDCIARQ0AIABBADoAUQsgAxC8AiAMBEAgAygCECEKRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkEAIQ1BACEOQQAhDyMAQUBqIgUkACADKAIQIgAoApABIRAgBEHYAGoiASAAKQMQNwMAIAEgACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARC0BiAAIAUpAxg3A2ggACAFKQMQNwNgIAAgBSkDCDcDWCAAIAUpAwA3A1AMBQsgBSAAKAIMIAAoAgggARC0BiAAIAUpAxg3A2ggACAFKQMQNwNgIAAgBSkDCDcDWCAAIAUpAwA3A1AMBAsgBSAAKAIMIAAoAgggARC0BiAAIAUpAxg3A2ggACAFKQMQNwNgIAAgBSkDCDcDWCAAIAUpAwA3A1AMAwsgAEE4EIcDNgJwIAAoAigQZSEJIAAoAnAiESAJNgIAIBEgACgCGEGExAhqLQAAOgAwIAUgGTkDMCAFIA42AiAgBSAFKAI4QYB/cSAPQf8AcXI2AjggECgCiAEiCSAFQSBqQQEgCSgCABEEACEJIAAoAnAiESAJNgIEIAUgECAREPsGIAArAwghEyAAKAJwIgkrAyghFyAJKwMgIRQCQAJAAkACQCAJLQAwQewAaw4HAAMBAwMDAgMLIBMgFKAhFiATIRUMAgsgEyAURAAAAAAAAOA/oiIVoCEWIBMgFaEhFQwBCyATIBShIRUgEyEWCyAAKwMQIRMgCSsDECEUIAAgFjkDYCAAIBU5A1AgACATIBSgIhM5A2ggACATIBehIhQ5A1ggASABKwMQIBUQIiAWECI5AxAgASABKwMYIBQQIiATECI5AxggASABKwMAIBUQKiAWECo5AwAgASABKwMIIBQQKiATECo5AwggCygCDA0CIAtBkwI2AgwMAgsgACgCECEOIAArAwghGQwBCyAAKAIIIQ8LIA1BAWohDSAAQfgAaiEADAALAAsgBUFAayQAIAogBCkDcDcDKCAKIAQpA2g3AyAgCiAEKQNgNwMYIAogBCkDWDcDEAsCQCAMIBJyDQAgAygCECIAKwMQRAAAAAAAAAAAYQRAIAArAxhEAAAAAAAAAABhDQELIAMQ/AwLIAMQ4gchAAJAAkAgB0UNACAAIAZyQQFGBEAgAxAbIQEDQCABRQ0CIAMgARAtIQADQCAABEAgABD+BCAAKAIQKAJgELwBIAAoAhAoAmwQvAEgACgCECgCZBC8ASAAKAIQKAJoELwBIAMgABAwIQAMAQsLIAMgARAcIQEMAAsACyAHQQJGDQELIANBABDOBQwCC0Hg2wpBATYCAAwBCyAAECAhACAEIAMQIDYCVCAEIAA2AlBByYwEIARB0ABqEDZBfyECCyAEQZABaiQAIAJBAE4EQCADQQAQ+QUMAgtBv5sEQQAQgQEMAgsgAEGDlwEQJhBrIQRBsNsKIAAQsQo5AwAgABDvDAJ/IABBwaMBECYiAwRAQQEhAUEBIANB9YQFEGQNARpBACEBQQAgA0Ga2AEQZA0BGkEBIQFBASADQYA6EGQNARpBBCADQYqsARBkDQEaQQIgA0GPPBBkDQEaQQMgA0H83QAQZA0BGiAIIAAQIDYCJCAIIAM2AiBBv7sEIAhBIGoQKwtBASEBQQELIQYgACAIQThqEJMNAkAgAEGD8wAQJiIDRQ0AIANB9YQFEGQNACADQbsgEGQEQEEBIQcMAQsgA0HSIRBkBEBBAiEHDAELIANB0/sAEGQNACADQcw0EGQEQCAAQQJBlukAQQAQIQRAQQMhBwwCCyAIIAAQIDYCAEHMkQQgCBArQafkBEEAEIEBDAELIAggABAgNgIUIAggAzYCEEGBuwQgCEEQahArCyAAQQAgCEHQAGoQngghAkH0gAsgAEF/QQgQ8wUiAzYCAAJAAkACQAJAIAJFBEAgAUUgA0EATnINAUH0gAtBCDYCACAIQQI2AmAMAgsgA0EATg0BQfSAC0EINgIADAELIAhBAjYCYCADQQBIDQELQQAhAyMAQdAAayICJAAgAkIANwNIIAJCADcDQAJ/IAAQOEUEQCAIQQA2AjRBAAwBCyACQgA3AyAgAkIANwMwIAJCADcDGCACQgA3AyggAkGxAzYCPCACQbIDNgI4IAAQGyEBA0AgAQRAIAEoAhBBADYCsAEgACABEBwhAQwBCwsgABAbIQEDQCABBEACQCABQX8gAigCPBEAAA0AIAEoAhAtAIcBQQNHDQAgA0UEQCACQUBrIgNBt7oBEPEFIAIgAigCIDYCECADIAJBEGoQ8AUgACADEO8FQQEQkwEiA0HrKEGYAkEBEDUaIAJBGGogAxBtQQEhBQsgACABIAMgAkEoahDuBRoLIAAgARAcIQEMAQsLIAAQGyEBA0AgAQRAIAFBfyACKAI8EQAARQRAIAJBQGsiA0G3ugEQ8QUgAiACKAIgNgIAIAMgAhDwBSAAIAMQ7wVBARCTASIDQesoQZgCQQEQNRogACABIAMgAkEoahDuBRogAkEYaiADEG0LIAAgARAcIQEMAQsLIAJBKGoQnQggAkFAaxBmIAggAigCIDYCNCAIIAU6ADMgAkEYahCcCAshAyACQdAAaiQAAkAgCCgCNCICQQJPBEBBACEBAkADQCABIAJPBEAgCC0AM0UEQEEAIQEMAwsFIAMgAUECdGooAgAiAkEAEK4DGiAAIAIgBiAHIAhBOGoiBRDVByACIAUQ7QMaIAJBAhCFAgJAIAQEQCACENQHDAELIAIQqQMLIAFBAWohASAIKAI0IQIMAQsLIAJBARAZIgFBAToAACAIKAI0IQILIAggATYCZCAIQQE6AFwgCEH0gAsoAgA2AlggAiADIAAgCEHQAGoQlg4aIAEQGAwBCyAAIAAgBiAHIAhBOGoiARDVByAAIAEQ7QMaIAQEQCAAENQHDAELIAAQqQMLIAAQvAIgABDWB0EAIQIDQCAIKAI0IAJNBEAgAxAYIAAQNxB7IQIDQCACRQ0EIAIQxAEEQCACQesoQZgCQQEQNRogACACEIMGIAIQvAILIAIQeiECDAALAAUgAyACQQJ0aigCACIBEIMOIAFB6ygQ3wEgACABELgBIAJBAWohAgwBCwALAAsgACAAIAYgByAIQThqIgMQ1QcgACADEO0DGiAAENYHIAQEQCAAENQHDAELIAAQqQMLIAAgBEEBcxD5BQtBsNsKIBo5AwALIAhB8ABqJAALhgIBA38jAEHQAGsiAyQAAkAgAEGjHBAmIgRFDQAgBCwAACIFRQ0AAkACQCAFQV9xQcEAa0EZTQRAIARB5YgBEL8CBEBBACEBDAQLIARBlD4QvwIEQEEBIQEMBAsgBEG27wAQvwJFDQEgBEEGaiEEDAILIAFBAkYgBUEwa0EKSXINAQwCCyABQQJHDQELAkAgBCwAAEEwa0EJTQRAIAMgA0HMAGo2AhAgBEGnqwEgA0EQahBPQQBKDQELIAMQwQWnQSpzIgE2AkwgAyABrDcDACADQSNqIgFBKUGGqwEgAxChARogAEGjHCABEOcBCyACIAMoAkw2AgBBAiEBCyADQdAAaiQAIAEL2EsEJH8EfAF9An4jAEGwAmsiDiQAIAdBAE4EQEGc2wotAAAEQEHA4AoQrAELAkACQAJ/IAZBAkYEQEGc2wotAAAEQEHa8gBBGEEBQcj2CCgCABBTGgsgACABENoHDAELAkACQCAGQQFrDgMAAwEDCyAAIAEQ3gciHQ0DQZuRBEEAECtB4OQEQQAQgQEMAgtBnNsKLQAABEBB8/IAQRVBAUHI9ggoAgAQUxoLIAAgARDdBwsiHQ0BC0Gc2wotAAAEQEH5MEEaQQFByPYIKAIAEFMaCyAAKAIIBEAgACABENwHIR0MAQsgACABEM0FIR0LQZzbCi0AAARAIA4QjwE5A5ACQcj2CCgCACIIQdnMBCAOQZACahAxQbguQRlBASAIEFMaQcDgChCsAQsgBUEDcSEiAkACQAJAAn8gBUEEcUUgAUECSHJFBEBBMiABIAFBMk8bIghBBBAZIRUgASAIbEEIEBkhCUEAIQUDQCAFIAhHBEAgFSAFQQJ0aiAJIAEgBWxBA3RqNgIAIAVBAWohBQwBCwtBACEFIA5BADYCrAIgBkECRiENIAFBMiAIQQF0IgkgCUEyTRsiCSABIAlJGyIJIAFsEL4BIQsgARC+ASEUIAAiFigCCCEbIA4gCRC+ASISNgKsAkEAIQAgCUEAIAlBAEobIQoDQCAAIApHBEAgEiAAQQJ0aiALIAAgAWxBAnRqNgIAIABBAWohAAwBCwsgDQRAIBYgARDzBwsQqgEgAW8hCyASKAIAIQACQCANBEAgCyAWIAEgABC2BAwBCyALIBYgASAAEO4DC0EAIQAgAUEAIAFBAEobIRFBACEKA0AgACARRgRAQQEgCSAJQQFMGyEYQQEhDwNAIA8gGEcEQCASIA9BAnRqIhMoAgAhAAJAIA0EQCALIBYgASAAELYEDAELIAsgFiABIAAQ7gMLQQAhAEEAIQoDQCAAIBFHBEAgFCAAQQJ0IhBqIhcgFygCACIXIBMoAgAgEGooAgAiECAQIBdKGyIQNgIAIBAgCiAKIBBIIhAbIQogACALIBAbIQsgAEEBaiEADAELCyAPQQFqIQ8MAQsLIBQQGCANBEAgFiABIBsQ8gcLBSAUIABBAnQiD2ogEigCACAPaigCACIPNgIAIA8gCiAKIA9IIg8bIQogACALIA8bIQsgAEEBaiEADAELCyAOKAKsAiEPQQAhCyAJQQAgCUEAShshEiABQQAgAUEAShshCiABtyEtA0AgCyASRwRAIA8gC0ECdGohDUQAAAAAAAAAACEsQQAhAANAIAAgCkcEQCAsIA0oAgAgAEECdGooAgC3oCEsIABBAWohAAwBCwsCfyAsIC2jIiyZRAAAAAAAAOBBYwRAICyqDAELQYCAgIB4CyEUQQAhAANAIAAgCkcEQCANKAIAIABBAnRqIhEgESgCACAUazYCACAAQQFqIQAMAQsLIAtBAWohCwwBCwsgDigCrAIhEkEAIQsgCCIAQQAgCEEAShshESAIQQQQGSEPA0AgCyARRwRAIA8gC0ECdGogCUEIEBk2AgAgC0EBaiELDAELC0EAIQsgCUEAIAlBAEobIRAgAEEIEBkhGyAJQQQQGSENIAkgCWxBCBAZIQggCUEDdCEKA0AgCyAQRgRAQQAhCCABQQAgAUEAShshGEEBIRQDQCAIIBBHBEAgEiAIQQJ0IgtqIRMgCyANaigCACEXQQAhCgNAIAogFEcEQCASIApBAnQiHGohH0QAAAAAAAAAACEsQQAhCwNAIAsgGEcEQCAsIAtBAnQiHiAfKAIAaigCACATKAIAIB5qKAIAbLegISwgC0EBaiELDAELCyANIBxqKAIAIAhBA3RqICw5AwAgFyAKQQN0aiAsOQMAIApBAWohCgwBCwsgFEEBaiEUIAhBAWohCAwBCwsgDSAJIAAgDyAbEL8NGkEAIQpBACEJA0AgCSARRgRAA0AgCiARRwRAIA8gCkECdGooAgAQGCAKQQFqIQoMAQsLBSAVIAlBAnQiCGohFCAIIA9qIRNBACEIA0BEAAAAAAAAAAAhLEEAIQsgCCAYRwRAA0AgCyAQRwRAIBIgC0ECdGooAgAgCEECdGooAgC3IBMoAgAgC0EDdGorAwCiICygISwgC0EBaiELDAELCyAUKAIAIAhBA3RqICw5AwAgCEEBaiEIDAELCyAJQQFqIQkMAQsLIA8QGCAbEBggDSgCABAYIA0QGAUgDSALQQJ0aiAINgIAIAtBAWohCyAIIApqIQgMAQsLIA4oAqwCKAIAEBggDigCrAIQGCABQQQQGSEbA0AgASAFRwRAIBsgBUECdGpBfzYCACAFQQFqIQUMAQsLIBYoAgghJSAGQQJGBEAgFiABEPMHC0EAIQUgAUEEEBkhD0EoQQQQGSEfIAFBKGxBBBAZIQhBKEEEEBkhDQNAIAVBKEcEQCANIAVBAnRqIAggASAFbEECdGo2AgAgBUEBaiEFDAELCyAbEKoBIAFvIghBAnRqQQA2AgAgHyAINgIAIA0oAgAhEQJAIAZBAkYEQCAIIBYgASARELYEDAELIAggFiABIBEQ7gMLQQEhC0EAIQUDQCABIAVGBEADQAJAIAtBKEYEQEEAIQUDQCABIAVGDQIgDyAFQQJ0akF/NgIAIAVBAWohBQwACwALIBsgCEECdGogCzYCACAfIAtBAnQiBWogCDYCACAFIA1qKAIAIQoCQCAGQQJGBEAgCCAWIAEgChC2BAwBCyAIIBYgASAKEO4DC0EAIQlBACEFA0AgASAFRgRAIAtBAWohCwwDBSAPIAVBAnQiDGoiEiASKAIAIhIgCiAMaigCACIMIAwgEkobIgw2AgACQCAJIAxOBEAgCSAMRw0BEKoBIAVBAWpvDQELIAwhCSAFIQgLIAVBAWohBQwBCwALAAsLIAFBAWshCSABQQQQGSEXIAFBEBAZIRRBACELQQAhDEEAIQhBACESA0ACfwJAIAEgCEcEQCAbIAhBAnQiGGooAgAiE0EASA0BIBQgCEEEdGoiBSAJQQQQGSIQNgIEIAlBBBAZIQogBUEBOgAMIAUgCTYCACAFIAo2AgggDSATQQJ0aiEYQQAhBQNAIAUgCEYEQCAIIQUDQCAFIAlGBEAgCQwGBSAQIAVBAnQiE2ogBUEBaiIFNgIAIAogE2ogGCgCACAFQQJ0aigCADYCAAwBCwALAAUgECAFQQJ0IhNqIAU2AgAgCiATaiAYKAIAIBNqKAIANgIAIAVBAWohBQwBCwALAAsgDxAYIBcQGCAREBggDRAYQQAhCyABQRQQGSEZIAEgEmoiBUEEEBkhCSAFQQQQGSEKICJBAkchEQNAIAEgC0cEQCAZIAtBFGxqIgggCjYCCCAIIAk2AgRBASEFIAggFCALQQR0aiIIKAIAQQFqIgw2AgBBASAMIAxBAU0bIQ8gCCgCCEEEayESRAAAAAAAAAAAISwCQCARRQRAA0AgBSAPRg0CIAkgBUECdCINaiAIKAIEIA1qQQRrKAIANgIAIAogDWpDAACAvyANIBJqKAIAsiIwIDCUlSIwOAIAIAVBAWohBSAsIDC7oSEsDAALAAsDQCAFIA9GDQEgCSAFQQJ0Ig1qIAgoAgQgDWpBBGsoAgA2AgAgCiANakMAAIC/IA0gEmooAgCylSIwOAIAIAVBAWohBSAsIDC7oSEsDAALAAsgCSALNgIAIAogLLY4AgAgC0EBaiELIAogDEECdCIFaiEKIAUgCWohCQwBCwsgBEEEEBkiEiAAIARsQQgQGSIINgIAQQEgBCAEQQFMGyEJQQEhBQNAIAUgCUYEQEEAIQkgBEEAIARBAEobIRgDQCAJIBhHBEAgEiAJQQJ0aigCACEMQQAhBQNAIAAgBUcEQCAMIAVBA3RqQgA3AwAgBUEBaiEFDAELCyAJQQFqIQkMAQsLAkAgBEECRwRAQQAhBQNAIAUgGEYNAiASIAVBAnRqKAIAIAVBA3RqQoCAgICAgID4PzcDACAFQQFqIQUMAAsACyAIQoCAgICAgID4PzcDACASKAIEIiQhBUEAIQtBACEKIwBBIGsiDCQAIAwgBTYCHCAMQQA2AhQgDEEANgIQIBUoAgAhESABQQJ0IQ9BACEFIwBB4ABrIgkkACAJQgA3AzggCUIANwMwAkAgAUEATgRAIAFBBBAZIR4gAUEEEBkhICABQQQQGSENIAFBBBAZIRADQCABIAVGBEBB6IALKAIAQeyACygCAHJFBEBB7IALIBE2AgBB6IALQd0DNgIAIAFBAk8EQCANIAFBBEHeAxCYAQtBACEFQeyAC0EANgIAQeiAC0EANgIAA0AgASAFRgRAQQAhBSAJIAFBAWsiE0EAIAEgE08bIgg2AlwgCSAINgJYIAkgCEEQEBkiFzYCVAJAIAFFDQADQCAFIBNGBEAgE0EBdiEFA0AgBUF/Rg0DIAlB1ABqIAUQ9gwgBUEBayEFDAALAAUgESANIAVBAnRqKAIAIhxBA3RqKwMAISwgESANIAVBAWoiCEECdGooAgAiGkEDdGorAwAhLSAXIAVBBHRqIgUgGjYCBCAFIBw2AgAgBSAtICyhOQMIIAghBQwBCwALAAtBASABIAFBAU0bIQhBASEFA0AgBSAIRgRAAkAgAUUNAEEAIQUDQCAFIBNGDQEgICANIAVBAnRqKAIAQQJ0aiANIAVBAWoiBUECdGooAgA2AgAMAAsACwUgHiANIAVBAnRqIhcoAgBBAnRqIBdBBGsoAgA2AgAgBUEBaiEFDAELCyAPQQAgD0EAShshJiANQQRqIScgDUEEayEoQQAhD0EAIQgDQAJAAkACQAJAICMgJkYEQCAJIAg2AjwgCSAKNgI4IAkgCzYCNCAJIA82AjAgCSgCVCEFDAELIAkoAlQhBSAJKAJYIhoEQCAFKAIAIRcgBSgCBCEcIAUgBSAaQQR0akEQayIhKQMANwMAIAUrAwghLCAFICEpAwg3AwggCSAaQQFrNgJYIAlB1ABqQQAQ9gxBAUEQEBkiGiAsOQMIIBogHDYCBCAaIBc2AgAgCCAKRw0DIAhBAXRBASAIGyIFQf////8DSwRAQcQAIQgMBQsgDyAFQQJ0EDkiD0UEQEEwIQgMBQsgDyAIQQJ0akEAIAUgCGtBAnQQMxogCCALaiAITQ0CIAtBAnQhISAPIAUgCCALayIIayILQQJ0aiAPICFqIAhBAnQQVBoMAgsgCSAINgI8IAkgCjYCOCAJIAs2AjQgCSAPNgIwCyAeEBggIBAYIA0QGCAQEBggBRAYQQAhCCABQQQQGSENIApBAXQgAWoiEEEEEBkhESAQQQQQGSEFQQAhCwNAIAEgC0YEQANAIAggCkYEQEEAIQgDQCAIIBBGBEAgDCABQRQQGSILNgIYQQAhCAJAA0AgASAIRgRAAkAgDRAYA0AgCgRAIAlBMGogCkEBayIKEPUMIQggCSAKNgI4IAgoAgQhBSAIKAIAIQ0gCBAYIA1BAEgNAiAFQQBIDQUgCyANQRRsaiIRKAIEIRMgESgCACEQQQAhCANAIAggEEcEQCAIQQJ0IRcgCEEBaiEIIAUgEyAXaigCAEcNAQwDCwsgESAQQQFqNgIAIBMgEEECdGogBTYCACALIAVBFGxqIgUgBSgCACIIQQFqNgIAIAUoAgQgCEECdGogDTYCACALKAIIRQ0BIBEoAggiCCAIKgIAQwAAgL+SOAIAIAUoAggiBSAFKgIAQwAAgL+SOAIADAELCyAPEBggCUHgAGokAAwUCwUgCyAIQRRsaiIQIAU2AgggEEEBNgIAIBAgETYCBCARIAg2AgAgBUEANgIAIBEgDSAIQQJ0aigCAEECdCIQaiERIAUgEGohBSAIQQFqIQgMAQsLQYDLAUHRuwFBtAJBnf0AEAAAC0HqygFB0bsBQbUCQZ39ABAAAAUgBSAIQQJ0akGAgID8AzYCACAIQQFqIQgMAQsACwAFIAlBMGogCBD1DCILKAIEIRMgDSALKAIAQQJ0aiILIAsoAgBBAWo2AgAgDSATQQJ0aiILIAsoAgBBAWo2AgAgCEEBaiEIDAELAAsABSANIAtBAnRqQQE2AgAgC0EBaiELDAELAAsACyAFIQgLIA8gCiALaiAIcEECdGogGjYCACAQIBxBAnQiKWooAgAhBQJAIBAgF0ECdCIqaigCACIhRQ0AIBAgICAoICFBAnRqKAIAIhpBAnRqIisoAgBBAnRqKAIAIAVPDQAgCSAcNgJEIAkgGjYCQCAJIBEgHEEDdGorAwAgESAaQQN0aisDAKE5A0ggCSAJKQNINwMoIAkgCSkDQDcDICAJQdQAaiAJQSBqEPQMICsgHDYCACAeIClqIBo2AgALAkAgBSATTw0AIBAgHiAnIAVBAnRqKAIAIgVBAnRqIhwoAgBBAnRqKAIAICFNDQAgCSAFNgJEIAkgFzYCQCAJIBEgBUEDdGorAwAgESAXQQN0aisDAKE5A0ggCSAJKQNINwMYIAkgCSkDQDcDECAJQdQAaiAJQRBqEPQMIBwgFzYCACAgICpqIAU2AgALIApBAWohCiAjQQFqISMMAQsLIAkgCBB3NgIAQcj2CCgCAEHngwQgCRAeGhAnAAUgECANIAVBAnRqKAIAQQJ0aiAFNgIAIAVBAWohBQwBCwALAAsFIA0gBUECdGogBTYCACAFQQFqIQUMAQsLQZWwA0Gt/wBBHEGmGxAAAAtBsZcDQdG7AUG/AkG3/QAQAAALIAwoAhggFSABIAAgDEEUahC9DSAMKAIUIQ0gACAAbEEIEBkhCCAMIABBBBAZIgs2AhBBACEFIABBACAAQQBKGyEKIABBA3QhCQNAIAUgCkYEQEEAIQkgAEEAIABBAEobIQ8gAUEAIAFBAEobIREDQCAJIApHBEAgCyAJQQJ0IgVqIRAgBSAVaiETQQAhCANARAAAAAAAAAAAISxBACEFIAggD0cEQANAIAUgEUcEQCATKAIAIAVBA3RqKwMAIA0gBUECdGooAgAgCEECdGoqAgC7oiAsoCEsIAVBAWohBQwBCwsgECgCACAIQQN0aiAsOQMAIAhBAWohCAwBCwsgCUEBaiEJDAELCwUgCyAFQQJ0aiAINgIAIAVBAWohBSAIIAlqIQgMAQsLIAwoAhQoAgAQGCAMKAIUEBggDCgCECAAQQEgDEEcaiAMQQhqEL8NIAxBIGokAA0AQQAhBQNAIAAgBUcEQCAkIAVBA3RqQgA3AwAgBUEBaiEFDAELCyAkQoCAgICAgID4PzcDCAtBACEFA0AgBSAYRwRAIBUgASAAIBIgBUECdCIIaigCACACIAhqKAIAELkNIAVBAWohBQwBCwsgDkEANgKkAiAOQQA2AqgCIBkgFSABIAAgDkGoAmoQvQ0gDigCqAIhCiAAIABsQQQQGSEIIA4gAEEEEBkiDDYCpAJBACEFIABBACAAQQBKGyELA0AgBSALRgRAQQAhCSAAQQAgAEEAShshDSABQQAgAUEAShshDwNAIAkgC0cEQCAMIAlBAnQiBWohESAFIBVqIRBBACEIA0BEAAAAAAAAAAAhLEEAIQUgCCANRwRAA0AgBSAPRwRAIBAoAgAgBUEDdGorAwAgCiAFQQJ0aigCACAIQQJ0aioCALuiICygISwgBUEBaiEFDAELCyARKAIAIAhBAnRqICy2OAIAIAhBAWohCAwBCwsgCUEBaiEJDAELCwUgDCAFQQJ0aiAINgIAIAVBAWohBSAIIABBAnRqIQgMAQsLIA4oAqgCKAIAEBggDigCqAIQGCABQQgQGSEMIABBCBAZIQsgAiAUIAQgASAiEPMMIS1BACEFQQAhDQNAAkBBACEJIA1BMUsgBXIiE0EBcQ0AA0AgCSAYRwRAIAIgCUECdCIXaiEPQQAhCgNAIAEgCkcEQCAMIApBA3QiHGoiCEIANwMAIBQgCkEEdGooAghBBGshHiAZIApBFGxqIhEoAgghICARKAIEISNBASEFRAAAAAAAAAAAISwDQCARKAIAIAVNBEAgCCAsIA8oAgAgHGorAwCiIAgrAwCgOQMAIApBAWohCgwDBSACIAQgCiAjIAVBAnQiEGooAgAiGhCrDSIuRKDC6/5LSLQ5ZARAIAggECAgaioCAIwgECAeaigCALKUuyAuoyIuIA8oAgAgGkEDdGorAwCiIAgrAwCgOQMAICwgLqEhLAsgBUEBaiEFDAELAAsACwsgFSAAIAEgDCALEL4NIA4oAqQCIBIgF2ooAgAiBSALIABE/Knx0k1iUD8gAEEAELUNDQIgFSABIAAgBSAPKAIAELkNIAlBAWohCQwBCwtBACEFIA1BAXFFBEAgAiAUIAQgASAiEPMMIiwgLaGZICxEu73X2d982z2go0HQ2worAwBjIQUgLCEtCyANQQFqIQ0MAQsLIAsQGCAMEBggBkECRgRAIBYgASAlEPIHC0EAIQUDQCABIAVHBEAgFCAFQQR0aiIALQAMQQFGBEAgACgCBBAYIAAoAggQGAsgBUEBaiEFDAELCyAUEBggGSgCBBAYIBkoAggQGCAZEBggGxAYIB8QGCASKAIAEBggEhAYIA4oAqQCIgAEQCAAKAIAEBggDigCpAIQGAsgFSgCABAYIBUQGEEAIRkgE0EBcUUEQEF/IQ1BACEdQQAhFEEAIRVBACESQQAhD0EAIQhBACEWDAoLA0AgGCAZRgRAQQEMCgUgAiAZQQJ0aiEARAAAAAAAAPA/ISxBACEFQQAhDANAIAEgDEcEQCAAKAIAIAxBA3RqKwMAmSItICwgLCAtYxshLCAMQQFqIQwMAQsLA0AgASAFRwRAIAAoAgAgBUEDdGoiBiAGKwMAICyjOQMAIAVBAWohBQwBCwtBACEFA0AgASAFRwRAENIBISwgACgCACAFQQN0aiIGICxEAAAAAAAA4L+gRI3ttaD3xrA+oiAGKwMAoDkDACAFQQFqIQUMAQsLIAEgACgCABDJAiAZQQFqIRkMAQsACwAFIBIgBUECdGogCCAAIAVsQQN0ajYCACAFQQFqIQUMAQsACwALQQAhBUEAIQogDEEnTARAQQEhCiABQQQQGSEZIAFBBBAZIQsgASEMCyAUIAhBBHRqIhAgCzYCCCAQIBk2AgQgECAKOgAMIBBBKDYCAAN/IAVBKEYEfyAMQShrIQwgC0GgAWohCyAZQaABaiEZQSgFIBkgBUECdCIKaiAKIB9qKAIANgIAIAogC2ogCiANaigCACAYaigCADYCACAFQQFqIQUMAQsLCyAIQQFqIQggEmohEgwACwAFIA8gBUECdCIJaiAJIBFqKAIAIgk2AgAgCSAMIAkgDEoiCRshDCAFIAggCRshCCAFQQFqIQUMAQsACwALIAEgBCACIAMQ3wdFCyEeQQAhDUGc2wotAAAEQCAOEI8BOQOAAkHI9ggoAgBB77kBIA5BgAJqEDELIAdFIAFBAUZyDQFBACEKQZzbCi0AAARAIA4QjwE5A/ABQcj2CCgCACIAQdnMBCAOQfABahAxQbTlAEEaQQEgABBTGkHA4AoQrAELIARBACAEQQBKGyERIAFBACABQQBKGyEQIARBBBAZIRYgASAEbCINQQQQGSEZA0AgCiARRwRAIBYgCkECdCIAaiAZIAEgCmxBAnRqIgY2AgAgACACaiEAQQAhBQNAIAUgEEcEQCAGIAVBAnRqIAAoAgAgBUEDdGorAwC2OAIAIAVBAWohBQwBCwsgCkEBaiEKDAELCwJAICJBAWtBAkkEQCABQQFqIAFsQQJtIRggAbIgAUEBayIGspQgIkECRgRAIBggHRC4BAsgGCAdEPkHQQAhCiAGQQAgBkEAShshFyABQRAQGSEUIAEhC0EAIQVBACEIA0AgCCAXRgRAAkAgASEMQQAhBQNAIAUgEEYNASAdIApBAnRqIBQgBUEEdGoiACkDACAAKQMIELEFOAIAIAogDGohCiAFQQFqIQUgDEEBayEMDAALAAsFIBQgCEEEdGohDEEBIQkgBUEBIAsgC0EBTBtqQQFrIRVCACExQgAhMgNAIAVBAWohACAFIBVHBEAgDkHgAWogHSAAQQJ0aioCABCyBSAOQdABaiAxIDIgDikD4AEiMSAOKQPoASIyELYBIA5BwAFqIAwgCUEEdGoiBSkDACAFKQMIIDEgMhDyAiAFIA4pA8ABNwMAIAUgDikDyAE3AwggCUEBaiEJIA4pA9gBITIgDikD0AEhMSAAIQUMAQsLIA5BsAFqIAwpAwAgDCkDCCAxIDIQ8gIgDCAOKQOwATcDACAMIA4pA7gBNwMIIAtBAWshCyAIQQFqIQggACEFDAELCyAEQQQQGSIVIA1BBBAZIgA2AgBBASAEIARBAUwbIQRBASEFA0AgBCAFRwRAIBUgBUECdGogACABIAVsQQJ0ajYCACAFQQFqIQUMAQsLQcj2CCgCACEbIAFBBBAZIRIgAUEEEBkhDyAYQQQQGSEIQZzbCi0AAARAIA4QjwE5A6ABIBtB2cwEIA5BoAFqEDFByM4DQQ9BASAbEFMaQcDgChCsAQsgFEEQaiEgIAFBBHQhI0MAAAA/lLshLkT////////vfyEsICJBAkchHEEAIQBBACENA0AgAEEBcSAHIA1Mcg0CIBRBACAjEDMhHyAcRQRAIBggHSAIEPgHCyAsIS1BACETIAYhAEEAIQpBACEEA0AgBCAXRgRAIAEhCUEAIQwDQEEAIQUgDCAQRgRAQQAhDANAIAwgEUYEQAJARAAAAAAAAAAAISwDQCAFIBFGDQEgLCABIBYgBUECdCIAaigCACAAIBVqKAIAEMgCoCEsIAVBAWohBQwACwALBSAIIAEgFiAMQQJ0IgBqKAIAIAAgFWooAgAQ/AIgDEEBaiEMDAELCyAsICygIC6gISxBACEFA0AgBSARRwRAIB0gASAWIAVBAnRqIgAoAgAgEhD8AiAFQQFqIQUgLCABIAAoAgAgEhDIAqEhLAwBCwtBACEKQdDbCisDACIvIC0gLKGZIC2jZCAsIC9jciEAAkADQCAKIBFHBEAgFiAKQQJ0IgRqIgkoAgAhBQJAIB5FBEAgASAFIBIQtw1BACEFIB0gEiAEIBVqKAIAIAEgARC3BEEASA0EA0AgBSAQRg0CIAMgBUECdCIEaigCACgCEC0AhwFBAU0EQCAJKAIAIARqIAQgEmoqAgA4AgALIAVBAWohBQwACwALIB0gBSAEIBVqKAIAIAEgARC3BEEASA0DCyAKQQFqIQoMAQsLAkAgDUEFcA0AQZzbCi0AAEUNACAOICw5AyAgG0HAzAMgDkEgahAxIA1BBWpBMnANAEEKIBsQ9gIaCyANQQFqIQ0MBQtBfyENDAcFIAggE0ECdGogHyAMQQR0aiIAKQMAIAApAwgQsQU4AgAgCSATaiETIAxBAWohDCAJQQFrIQkMAQsACwAFIABBACAAQQBKGyEJIAEgBEF/c2oiDEMAAAAAIA8Q7wNBACELA0AgCyARRwRAIBYgC0ECdGohGkEAIQUDQCAAIAVHBEAgDyAFQQJ0IiRqIiEgGigCACAEQQJ0aiIlKgIAICQgJWoqAgSTIjAgMJQgISoCAJI4AgAgBUEBaiEFDAELCyALQQFqIQsMAQsLIAwgDxD3B0EAIQUDQCAFIAlHBEAgDyAFQQJ0aiIMKgIAIjBD//9/f2AgMEMAAAAAXXIEQCAMQQA2AgALIAVBAWohBQwBCwsgCkEBaiEKICAgBEEEdCIaaiELQgAhMUEAIQVCACEyAkAgHEUEQANAIAUgCUYEQAwDBSAIIApBAnRqIgwgDyAFQQJ0aioCACAMKgIAlCIwOAIAIA5B4ABqIDAQsgUgDkHQAGogMSAyIA4pA2AiMSAOKQNoIjIQtgEgDkFAayALIAVBBHRqIgwpAwAgDCkDCCAxIDIQ8gIgDCAOKQNANwMAIAwgDikDSDcDCCAKQQFqIQogBUEBaiEFIA4pA1ghMiAOKQNQITEMAQsACwALA0AgBSAJRg0BIAggCkECdGogDyAFQQJ0aioCACIwOAIAIA5BkAFqIDAQsgUgDkGAAWogMSAyIA4pA5ABIjEgDikDmAEiMhC2ASAOQfAAaiALIAVBBHRqIgwpAwAgDCkDCCAxIDIQ8gIgDCAOKQNwNwMAIAwgDikDeDcDCCAKQQFqIQogBUEBaiEFIA4pA4gBITIgDikDgAEhMQwACwALIA5BMGogGiAfaiIFKQMAIAUpAwggMSAyEPICIAUgDikDMDcDACAFIA4pAzg3AwggAEEBayEAIARBAWohBAwBCwALAAsAC0H27QJB27wBQbIHQZXyABAAAAtBACEKQZzbCi0AAARAQQEgASABQQFMG0EBayEGRAAAAAAAAAAAIS1BACEEA0AgBiAKRwRAQQEgASABQQFMGyEDQQEhCSAEIQADQCADIAlHBEAgAEEBaiEARAAAAAAAAAAAISxBACEFA0AgBSARRwRAICwgFiAFQQJ0aigCACAKQQJ0aiIHKgIAIAcgCUECdGoqAgCTIjAgMJS7oCEsIAVBAWohBQwBCwtEAAAAAAAA8D8gHSAAQQJ0aioCALsiLp8gLiAiQQJGG6MgLJ+hIiwgLKIgLqIgLaAhLSAJQQFqIQkMAQsLIAFBAWshASAKQQFqIQogAyAEaiEEDAELCyAOEI8BOQMQIA4gDTYCCCAOIC05AwAgG0G1ywQgDhAxC0EAIQoDQCAKIBFGDQEgAiAKQQJ0IgBqIQEgACAWaiEAQQAhBQNAIAUgEEcEQCABKAIAIAVBA3RqIAAoAgAgBUECdGoqAgC7OQMAIAVBAWohBQwBCwsgCkEBaiEKDAALAAsgGRAYIBYQGCAdEBggFQRAIBUoAgAQGCAVEBgLIBIQGCAPEBggFBAYDAELIB0hCAsgCBAYCyAOQbACaiQAIA0LkAQBC38gAUEAIAFBAEobIQggACgCCCEJA0AgAiAIRkUEQCAAIAJBFGxqKAIAIANqIQMgAkEBaiECDAELCyADQQQQGSEEIAFBBBAZIQZBACEDAn8gACgCCEUEQANAIAMgCEcEQCAAIANBFGxqIgUgBDYCCCAAIAMgBhD1ByAFKAIAIgJBAmshCiACQQFrIQtBASECA0AgAiALSwRAIAAgAyAGEPQHIANBAWohAyAEIAUoAgBBAnRqIQQMAwUgBCACQQJ0IgdqIAogACAFKAIEIAdqKAIAIgdBFGxqKAIAaiAAIAcgBhD2B0EBdGuzOAIAIAJBAWohAgwBCwALAAsLIAAgARDNBQwBCwNAIAMgCEcEQCAAIAMgBhD1ByAAIANBFGxqIgUoAgAiAkECayELIAJBAWshB0EBIQIDQCACIAdLBEAgACADIAYQ9AcgBSAENgIIIANBAWohAyAEIAUoAgBBAnRqIQQMAwUgBCACQQJ0IgpqIAsgACAFKAIEIApqKAIAIgxBFGxqKAIAaiAAIAwgBhD2B0EBdGuzIAUoAgggCmoqAgAQvwU4AgAgAkEBaiECDAELAAsACwsgACABENwHCyAGEBggACgCCBAYQQAhAiAAQQA2AggCQCAJRQ0AA0AgAiAIRg0BIAAgAkEUbGoiAyAJNgIIIAJBAWohAiAJIAMoAgBBAnRqIQkMAAsACwt4AQJ/AkACQAJAIAEOBAEAAAACCyAAEBshAyABQQFHIQQDQCADRQ0CAkAgBEUEQCADIAIQ3wEMAQsgACADEC0hAQNAIAFFDQEgASACEN8BIAAgARAwIQEMAAsACyAAIAMQHCEDDAALAAsgACAAQRwgAkEBEMUDGgsL5QMCDX8BfSABQQAgAUEAShshDiABQQFqIAFsQQJtQQQQGSEMIAFBBBAZIQQgASEKA0AgCyAORwRAIAshBkEAIQIjAEEQayIFJAAgBUEANgIEIAFBACABQQBKGyEDIAEQvgEhCQNAIAIgA0YEQCAEIAZBAnRqQQA2AgBBASAAIAZBFGxqIg0oAgAiAyADQQFNGyEHQQEhAgNAIAIgB0YEQCAFQQhqIAYgCSAEIAEQsQ0DQAJAIAVBCGogBUEEaiAJIAQQsA1FDQAgBCAFKAIEIgNBAnRqKgIAIg9D//9/f1sNACAAIANBFGxqIQdBASECA0AgAiAHKAIATw0CIAVBCGogAkECdCIDIAcoAgRqKAIAIA8gBygCCCADaioCAJIgCSAEEK8NIAJBAWohAgwACwALCyAFKAIIEBggCRAYIAVBEGokAAUgBCACQQJ0IgMgDSgCBGooAgBBAnRqIA0oAgggA2oqAgA4AgAgAkEBaiECDAELCwUgBCACQQJ0akH////7BzYCACACQQFqIQIMAQsLIAggCmohAwNAIAMgCEcEQCAMIAhBAnRqIAQgBkECdGoqAgA4AgAgBkEBaiEGIAhBAWohCAwBCwsgCkEBayEKIAtBAWohCyADIQgMAQsLIAQQGCAMC/8BAwt/AXwCfSMAQRBrIgQkAAJAIAAoAghFBEAMAQsgAUEAIAFBAEobIQogACABENwHIQUDQCACIApHBEBBASEDQQEgACACQRRsaiIJKAIAIgYgBkEBTRshBiAFIAEgAmwgAiAIaiIIa0ECdGohCwNAIAMgBkYEQCACQQFqIQIMAwUgAiADQQJ0IgwgCSgCBGooAgAiB0wEQCALIAdBAnRqIgcqAgAhDiAHIAkoAgggDGoqAgAiDzgCACANIA4gD5OLu6AhDQsgA0EBaiEDDAELAAsACwtBnNsKLQAARQ0AIAQgDTkDAEHI9ggoAgBBo64EIAQQMQsgBEEQaiQAIAUL3wQDC38BfAF9IAFBACABQQBKGyEFIAFBAWogAWxBAm1BBBAZIQogASABRAAAAAAAAAAAEIIDIQYgASABRAAAAAAAAAAAEIIDIQsCQCAAKAIIRQRAA0AgAiAFRg0CQQEhA0EBIAAgAkEUbGoiBygCACIEIARBAU0bIQQgBiACQQJ0aiEIA0AgAyAERkUEQCAGIAcoAgQgA0ECdGooAgAiCUECdGooAgAgAkEDdGpCgICAgICAgPi/fzcDACAIKAIAIAlBA3RqQoCAgICAgID4v383AwAgA0EBaiEDDAELCyACQQFqIQIMAAsACwNAIAIgBUYNAUEBIQNBASAAIAJBFGxqIgcoAgAiBCAEQQFNGyEEIAYgAkECdGohCANAIAMgBEYEQCACQQFqIQIMAgUgBiADQQJ0IgkgBygCBGooAgAiDEECdGooAgAgAkEDdGpEAAAAAAAA8L8gBygCCCAJaioCALujIg05AwAgCCgCACAMQQN0aiANOQMAIANBAWohAwwBCwALAAsACwJAIAEgBiALEPcMBEBBACEDIAFBACABQQBKGyEHQQAhAgNAIAIgB0YNAiABIANqIQAgCyACQQJ0aiEEIAIhBQNAIAAgA0ZFBEAgCiADQQJ0aiACIAVHBH0gBCgCACIIIAJBA3RqKwMAIAVBA3QiCSALIAVBAnRqKAIAaisDAKAgCCAJaisDACINIA2gobYFQwAAAAALOAIAIAVBAWohBSADQQFqIQMMAQsLIAFBAWshASACQQFqIQIgACEDDAALAAsgChAYQQAhCgsgBhCBAyALEIEDIAoL0gICCX8BfCAAQQAgAEEAShshCyACKAIEIQYgAigCACEHIAFBA0ghCQNAIAUgC0YEQAJAQQAhBCABQQAgAUEAShshAQNAIAEgBEYNASAAIAIgBEECdGooAgAQyQIgBEEBaiEEDAALAAsFAkACQCADIAVBAnRqKAIAKAIQIgQtAIcBIgwEQCAHIAQoApQBIgQrAwA5AwAgBiAEKwMIOQMAIAkNASAEQRBqIQhBAiEEA0AgASAERg0CIAIgBEECdGooAgAgBUEDdGogCCsDADkDACAEQQFqIQQgCEEIaiEIDAALAAsgBxDSATkDACAGENIBOQMAQQIhBCAJDQEDQCABIARGDQIQ0gEhDSACIARBAnRqKAIAIAVBA3RqIA05AwAgBEEBaiEEDAALAAtBASAKIAxBAUcbIQoLIAVBAWohBSAHQQhqIQcgBkEIaiEGDAELCyAKCzIAIAAEQCAAKAIEQSFPBEAgACgCABAYCyAAQgA3AgAPC0GP1QFB3P4AQeMAQcMhEAAACy8AIAAgATYCBCAAQQA2AgAgAUEhTwRAIAAgAUEDdiABQQdxQQBHakEBEBk2AgALC98JAgx/CXwCQCAAKAJIIABHDQAgACgCECIBKAIIKAJURQ0AAn8CQCABKwMQRAAAAAAAAAAAYg0AIAErAxhEAAAAAAAAAABiDQBBAAwBCyAAEPwMIAAoAhAhAUEBCyEDIAEoAnRBAXEiBARAIAErACghDiABIAErACA5AyggASAOOQMgCwJAAnwCQAJAAkAgASgCCCICKAJUQQFrDgUCAAUFAQULIAIrA0AiDUQAAAAAAAAAAGUNBCANIAErAyCjIg1EAAAAAAAA8D9jIAIrA0ggASsDKKMiDkQAAAAAAADwP2NyRQ0DIA0gDmMEQCAOIA2jIQ5EAAAAAAAA8D8hDQwECyANIA6jDAILIAIrA0AiDkQAAAAAAAAAAGUNAyAOIAErAyCjIg5EAAAAAAAA8D9kRQ0DIAIrA0ggASsDKKMiDUQAAAAAAADwP2RFDQMgDiANECoiDiENDAILIAErAyggASsDIKMiDiACKwMQIg1jBEAgDSAOoyEORAAAAAAAAPA/IQ0MAgsgDiANowshDUQAAAAAAADwPyEOCyAOIA0gBBshDyANIA4gBBshDQJAQajbCigCAEECSA0AIA1EAAAAAAAA8L+gIRQgD0QAAAAAAADwv6AhFSAAEBshBgNAIAZFDQEgACAGEC0hAwNAAkAgAwRAIAMoAhAiBygCCCIBRQ0BIAEoAgQiCEEBayEJQQAhBCAUIANBMEEAIAMoAgBBA3EiAkEDRxtqKAIoKAIQKAKUASIFKwMIokQAAAAAAABSQKIhECAVIAUrAwCiRAAAAAAAAFJAoiERIBQgA0FQQQAgAkECRxtqKAIoKAIQKAKUASICKwMIokQAAAAAAABSQKIhEiAVIAIrAwCiRAAAAAAAAFJAoiETIAEoAgAhAgNAIAQgCEYEQAJAIAcoAmAiAUUNACABLQBRQQFHDQAgASAPIAErAziiOQM4IAEgDSABKwNAojkDQAsCQCAHKAJkIgFFDQAgAS0AUUEBRw0AIAEgEyABKwM4oDkDOCABIBIgASsDQKA5A0ALIAcoAmgiAUUNAyABLQBRQQFHDQMgASARIAErAzigOQM4IAEgECABKwNAoDkDQAwDCyACKAIEIgpBAWshCyACKAIAIQFBACEFIAQgCUchDANAIAUgCkYEQCACKAIIBEAgAiARIAIrAxCgOQMQIAIgECACKwMYoDkDGAsgAigCDARAIAIgEyACKwMgoDkDICACIBIgAisDKKA5AygLIARBAWohBCACQTBqIQIMAgUgAQJ8IAQgBXJFBEAgASARIAErAwCgOQMAIBAgASsDCKAMAQsgASsDACEOIAwgBSALR3JFBEAgASATIA6gOQMAIBIgASsDCKAMAQsgASAPIA6iOQMAIA0gASsDCKILOQMIIAVBAWohBSABQRBqIQEMAQsACwALAAsgACAGEBwhBgwCCyAAIAMQMCEDDAALAAsACyAAEBshAQNAIAEEQCABKAIQKAKUASICIA8gAisDAKI5AwAgAiANIAIrAwiiOQMIIAAgARAcIQEMAQsLIAAgDyANEPsMQQEhAwsgABAbIQEDQCABBEAgASgCECICIAIoApQBIgQrAwBEAAAAAAAAUkCiOQMQIAIgBCsDCEQAAAAAAABSQKI5AxggACABEBwhAQwBCwsgAwvsAgEEfyMAQYABayIHJAAgAkEAIAJBAEobIQICQANAIAIgCEYEQCAEIAMgAyAESBshBANAIAMgBEYiAg0DIAYgA0ECdGooAgAhCCAHIAApAwg3AzggByAAKQMANwMwIAcgASkDCDcDKCAHIAEpAwA3AyAgByAFIANBBHRqIgkpAwg3AxggByAJKQMANwMQIAcgBSAIQQR0aiIIKQMINwMIIAcgCCkDADcDACADQQFqIQMgB0EwaiAHQSBqIAdBEGogBxCyBEUNAAsMAgsgBiAIQQJ0aigCACEJIAcgACkDCDcDeCAHIAApAwA3A3AgByABKQMINwNoIAcgASkDADcDYCAHIAUgCEEEdGoiCikDCDcDWCAHIAopAwA3A1AgByAFIAlBBHRqIgkpAwg3A0ggByAJKQMANwNAIAhBAWohCCAHQfAAaiAHQeAAaiAHQdAAaiAHQUBrELIERQ0AC0EAIQILIAdBgAFqJAAgAgtTAQF/IAAgATYCECAAQQRBACACGyIDIAAoAgAiAkF7cXI2AgAgAkECcQRAIABBUEEwIAJBA3FBA0YbaiIAIAE2AhAgACAAKAIAQXtxIANyNgIACwv9EQIafwx8IwBBMGsiAyQAQej/CigCACEFQbT/CigCACECA0AgAiAPRgRAA0AgAkEBayALTQRAQZzbCi0AAEEBSwRAIAMgEDYCJCADIAA2AiBByPYIKAIAQefgAyADQSBqEB4aCyADQTBqJAAgEA8LQej/CigCACALQeAAbGoiE0EoaiEJIAtBAWoiDyELA0AgAiALTQRAIA8hCwwCBSADIBMpAxA3AxggAyATKQMINwMQIANB6P8KKAIAIAtB4ABsaiIHKQMQNwMIIAMgBykDCDcDAEEAIQJBACEGIwBBsARrIgEkACABIAMpAxg3A6gDIAEgAykDEDcDoAMgASAJKQMINwOYAyABIAkpAwA3A5ADIAFB4ANqIAFBoANqIAFBkANqENkFIAEgAykDGDcDiAMgASADKQMQNwOAAyABIAkpAxg3A/gCIAEgCSkDEDcD8AIgAUHQA2ogAUGAA2ogAUHwAmoQ2QUgASADKQMINwPoAiABIAMpAwA3A+ACIAEgBykDMDcD2AIgASAHKQMoNwPQAiABQcADaiABQeACaiABQdACahDZBSABIAMpAwg3A8gCIAEgAykDADcDwAIgASAHKQNANwO4AiABIAcpAzg3A7ACIAFBsANqIAFBwAJqIAFBsAJqENkFAkAgASsD4AMgASsDsANlRQ0AIAErA8ADIAErA9ADZUUNACABKwPoAyABKwO4A2VFDQAgASsDyAMgASsD2ANlRQ0AQQEhAiAJKAIoIgVBAXEEQCAHLQBQQQFxDQELAkAgBUECcUUNACAHLQBQQQJxRQ0AIAMrAxAgAysDAKEiGyAboiADKwMYIAMrAwihIhsgG6KgIAkrAxAgCSsDAKEgBysDOKAgBysDKKEiGyAbokQAAAAAAADQP6JkRSECDAELQfD/CigCACIFRQRAQfD/CkHs/wooAgAQrwI2AgBB9P8KQez/CigCABCvAjYCAEHw/wooAgAhBQsgCSgCICIMQQAgDEEAShshCCADKwMYIRsgAysDECEcIAkoAiQhBCAFIQIDQCAGIAhHBEAgAiAcIAQrAwCgOQMAIAIgGyAEKwMIoDkDCCAGQQFqIQYgAkEQaiECIARBEGohBAwBCwtBACEGIAcoAkgiDUEAIA1BAEobIQggAysDCCEbIAMrAwAhHCAHKAJMIQRB9P8KKAIAIhQhAgNAIAYgCEcEQCACIBwgBCsDAKA5AwAgAiAbIAQrAwigOQMIIAZBAWohBiACQRBqIQIgBEEQaiEEDAELCyANQQF0IRcgDEEBdCEYIA1BAWshGSAMQQFrIRpBACECQQAhBEEAIQZBACEIAkACQANAIAEgBSAIQQR0aiIKKQMINwOoAiABIAopAwA3A6ACIAEgBSAIIBpqIAxvQQR0aiIRKQMINwOYAiABIBEpAwA3A5ACIAFBoARqIAFBoAJqIAFBkAJqEKQNIAEgFCAGQQR0aiIOKQMINwOIAiABIA4pAwA3A4ACIAEgFCAGIBlqIA1vQQR0aiISKQMINwP4ASABIBIpAwA3A/ABIAFBkARqIAFBgAJqIAFB8AFqEKQNIAFCADcD+AMgAUIANwPoASABIAEpA6gENwPYASABIAEpA5gENwPIASABQgA3A/ADIAFCADcD4AEgASABKQOgBDcD0AEgASABKQOQBDcDwAEgASsD6AEgASsD2AEiG6EgASsDwAEgASsD0AEiHKGiIAErA8gBIBuhIAErA+ABIByhoqEhHyABIBEpAwg3A7gBIAEgESkDADcDsAEgASAKKQMINwOoASABIAopAwA3A6ABIAEgDikDCDcDmAEgASAOKQMANwOQASABQbABaiABQaABaiABQZABahCjDSEVIAEgEikDCDcDiAEgASASKQMANwOAASABIA4pAwg3A3ggASAOKQMANwNwIAEgCikDCDcDaCABIAopAwA3A2AgAUGAAWogAUHwAGogAUHgAGoQow0hFiABIBEpAwg3A1ggASARKQMANwNQIAEgCikDCDcDSCABIAopAwA3A0AgASASKQMINwM4IAEgEikDADcDMCABIA4pAwg3AyggASAOKQMANwMgIAErAzAiICABKwNYIhsgAUFAayIKKwMIIiGhoiABKwMgIiUgISAboSIioiABKwNQIh4gASsDKCIdIAErAzgiHKGiIiYgCisDACIjIBwgHaGioKCgIiREAAAAAAAAAABiBH8gASAlIBwgG6GiICYgICAbIB2hoqCgICSjIh0gIqIgG6A5A4gEIAEgHSAjIB6hoiAeoDkDgAQgHUQAAAAAAADwP2UgHUQAAAAAAAAAAGZxICAgIqIgHiAcICGhoiAjIBsgHKGioKCaICSjIhtEAAAAAAAAAABmIBtEAAAAAAAA8D9lcXEFQQALDQECQCAWIB9EAAAAAAAAAABiIBVyckUEQCAEQQFqIQQgCEEBaiAMbyEIDAELIB9EAAAAAAAAAABmBEAgFQRAIARBAWohBCAIQQFqIAxvIQgMAgsgAkEBaiECIAZBAWogDW8hBgwBCyAWBEAgAkEBaiECIAZBAWogDW8hBgwBCyAEQQFqIQQgCEEBaiAMbyEICyAEIAxIIAIgDUhyRSAEIBhOckUgAiAXSHENAAsCQEHw/wooAgAiAisAACIbIAErA7ADZUUNACAbIAErA8ADZkUNACACKwAIIhsgASsDuANlRQ0AIBsgASsDyANmRQ0AIAcoAkghBSABIAIpAwg3AxggASACKQMANwMQQQEhAkH0/wooAgAgBSABQRBqEJ8NDQMLQfT/CigCACIFKwAAIhsgASsD0ANlRQ0BIBsgASsD4ANmRQ0BIAUrAAgiGyABKwPYA2VFDQFBACECIBsgASsD6ANmRQ0CIAkoAiAhAiABIAUpAwg3AwggASAFKQMANwMAQfD/CigCACACIAEQnw0hAgwCC0EBIQIMAQtBACECCyABQbAEaiQAIAIEQCATQQE6ACAgB0EBOgAgIBBBAWohEAsgC0EBaiELQbT/CigCACECDAELAAsACwAFIAUgD0HgAGxqQQA6ACAgD0EBaiEPDAELAAsAC2QBAX8CQCAAQQBIDQAgAEHQgAsoAgBODQBBzIALKAIAIABBAnRqIgEoAgAiAEUNACAAKAIIQX5HBEAgAA8LIAFBADYCACAAIAAoAgxBAWsiATYCDCABDQAgAEHAgAsQ7AcLQQALJQEBfyABIAA2AgAgASAAKAIEIgI2AgQgAiABNgIAIAAgATYCBAv4AgIGfAN/IAAtABAhCAJAIAErAwAiAyAAKAIIIgAoAiQiCSsDACIHZCIKBEAgCA0BQQEPCyAIQQFHDQBBAA8LAn8CQAJAAkAgACsDACICRAAAAAAAAPA/YQRAIAMgB6EhBCABKwMIIgUgCSsDCKEhBiAAKwMIIQICQCAKRQRAIAJEAAAAAAAAAABjDQEMAwsgAkQAAAAAAAAAAGZFDQILIAYgBCAComZFDQJBAQwECyABKwMIIAArAxAgAiADoqEiAqEiBCAEoiADIAehIgQgBKIgAiAJKwMIoSICIAKioGQMAwsgBSACoiADoCEDIAArAxAhBSACRAAAAAAAAAAAYwRAIAMgBWRFDQEMAgsgAyAFZEUNAQsgBiAHIAAoAiArAwChIgOiIAIgAqIgBCAEoCADo0QAAAAAAADwP6CgoiEDIAQgBKIgBiAGoqEgAqIhBCADIARkIAJEAAAAAAAAAABjRQ0BGiADIARkRQwBC0EACyAIQQBHcwsIACAAKAIIRQtVAQJ/IAEoAhQEQCAAKAIAIAAgARCaDUEobGohAgNAIAIiAygCICICIAFHDQALIAMgASgCIDYCICAAIAAoAghBAWs2AgggASgCFBDVBSABQQA2AhQLC0oBAX8gAEEYaiIDIAFBAnRqIAI2AgAgAhDUBSADQQEgAWtBAnRqKAIABEAgABCbDSAAKAIgENUFIAAoAiQQ1QUgAEGQgAsQ7AcLCxMAIAAgASgCADYCACABIAA2AgALlwEBBn8gACgCACIBRQRAIAAoAgghA0EAIQFBAUEIEEsiBEG4/wooAgAgAxBLIgU2AgRBuP8KKAIAIgJBACACQQBKGyECA0AgASACRkUEQCAFIAEgA2xqIgYgACgCADYCACAAIAY2AgAgAUEBaiEBDAELCyAEIAAoAgQ2AgAgACAENgIEIAAoAgAhAQsgACABKAIANgIAIAELuAEBAn8gACgCACIBBEAgASgCABAYIAAoAgAQGAsgACgCFEEASgRAIAAoAiQQwg0gACgCHCIBIAAoAiAiAkYgAkVyRQRAQQAgAhDwAyAAKAIcIQELIAAoAhQgARDwA0EAIQEDQCAAKAIQIQIgASAAKAIMIAAoAgggACgCBGpqTkUEQCACIAFBAnRqKAIAEMUNIAFBAWohAQwBCwsgAhAYCyAAKAIoEBggACgCLBAYIAAoAjAQGCAAEBgLvxECEH8BfCMAQSBrIgwkAEEBQTQQGSIFQQA2AgAgAygCMCEHIAVBADYCICAFQQA2AgwgBSAHQQF0Igc2AgggBSAAIAdrNgIEIAUgAEEEEBk2AhAgAEEAIABBAEobIRAgBUEMaiETA0AgBiAQRwRAIAZEAAAAAAAA8D8Q/wchByAFKAIQIAZBAnRqIAc2AgAgBkEBaiEGDAELCyAFQQA2AhgCQAJAAkACQCAEQQFrDgIAAQILQQAhBEGc2wotAAAEQEGg6gRBH0EBQcj2CCgCABBTGgsgBSgCBCIHQQAgB0EAShshCgNAIAQgCkcEQEEBIQZBASACIARBFGxqIggoAgAiByAHQQFNGyEHA0AgBiAHRgRAIARBAWohBAwDCyAIKAIQIAZBAnRqKgIAu0R7FK5H4XqEP2QEQCAFIAUoAhhBAWo2AhgLIAZBAWohBgwACwALCyAFKAIYELoEIQQgBUEANgIYIAUgBDYCIEEAIQQDQCAEIAUoAgRODQIgAiAEQRRsaiEKQQEhBgNAIAooAgAgBk0EQCAEQQFqIQQMAgsgBkECdCIIIAooAhBqKgIAQwAAAABeBEAgBSgCECIHIARBAnRqKAIAIAcgCigCBCAIaigCAEECdGooAgAgAysDCBDxAyEIIAUgBSgCGCIHQQFqIgk2AhggBSgCICAHQQJ0aiAINgIACyAGQQFqIQYMAAsACwALIAxBADYCHCAMQQA2AhggBSgCECENIAIgBSgCBEEAIAxBHGogDEEYaiATEPEHRQRAQQAhBiAMKAIcIQ4gBSgCBCEJIAwoAhghDyAFKAIMIhFBAWpBCBAZIhQgDygCACICNgIEIBQgAkEEEBkiBzYCACACQQAgAkEAShshBAN/IAQgC0YEf0EBIBEgEUEBTBshCkEBIRIDQCAKIBJHBEAgFCASQQN0aiIEIA8gEkECdGoiAigCACACQQRrIggoAgBrIgI2AgQgBCACQQQQGSIHNgIAQQAhCyACQQAgAkEAShshBANAIAQgC0cEQCAHIAtBAnQiAmogDiAIKAIAQQJ0aiACaigCADYCACALQQFqIQsMAQsLIBJBAWohEgwBCwsCQCARQQBMDQAgFCARQQN0aiICIAkgDyARQQJ0akEEayIIKAIAayIENgIEIAIgBEEEEBkiBzYCAEEAIQsgBEEAIARBAEobIQQDQCAEIAtGDQEgByALQQJ0IgJqIA4gCCgCAEECdGogAmooAgA2AgAgC0EBaiELDAALAAsgFAUgByALQQJ0IgJqIAIgDmooAgA2AgAgC0EBaiELDAELCyEHQZzbCi0AAARAIAwgEygCADYCEEHI9ggoAgBBvu4DIAxBEGoQHhoLQQAhD0EBIAUoAgwiCkEBaiIJIAlBAUwbIQggB0EEayEEQQEhDgNAIAggDkcEQCAPIAcgDkEDdCICaigCBGogAiAEaigCAGohDyAOQQFqIQ4MAQsLIAUgCiAHIAlBA3RqQQRrKAIAIAcoAgQgD2pqakEBayICNgIYIAIQugQhAiAFQQA2AhggBSACNgIgIAUgBSgCDCAAakEEEBk2AhADQCAGIBBHBEAgBkECdCICIAUoAhBqIAIgDWooAgA2AgAgBkEBaiEGDAELCyANEBhBACECA0AgEygCACIGIAJKBEAgACACaiIIRI3ttaD3xrA+EP8HIQQgBSgCECAIQQJ0aiAENgIAIAJBAWohAgwBCwsgAysDCCEVQQAhBEEAIQIDQAJAAkAgAiAGTgRAA0AgBCAGQQFrTg0CIAUoAhAgAEECdGogBEECdGoiAigCACACKAIERAAAAAAAAAAAEPEDIQcgBSAFKAIYIgJBAWo2AhggBSgCICACQQJ0aiAHNgIAIARBAWohBCAFKAIMIQYMAAsAC0EAIQYgByACQQN0aiINKAIEIghBACAIQQBKGyEJIAAgAmohEANAIAYgCUYEQEEAIQYgByACQQFqIgJBA3RqIg0oAgQiCEEAIAhBAEobIQkDQCAGIAlGDQQgBSgCECIIIBBBAnRqKAIAIAggDSgCACAGQQJ0aigCAEECdGooAgAgFRDxAyEKIAUgBSgCGCIIQQFqNgIYIAUoAiAgCEECdGogCjYCACAGQQFqIQYMAAsABSAFKAIQIgggDSgCACAGQQJ0aigCAEECdGooAgAgCCAQQQJ0aigCACAVEPEDIQogBSAFKAIYIghBAWo2AhggBSgCICAIQQJ0aiAKNgIAIAZBAWohBgwBCwALAAsgBSgCGCEJDAMLIBMoAgAhBgwACwALQQAhBQwBCyADKAIwQQBKBEAgBSgCICEHIAUgCSADKAIsQQF0ahC6BDYCIEEAIQYgBSgCGCICQQAgAkEAShshBANAIAQgBkcEQCAGQQJ0IgIgBSgCIGogAiAHaigCADYCACAGQQFqIQYMAQsLIAcEQEEAIAcQ8AMLQQAhBANAIAMoAjAgBEoEQCAEQQN0IQlBACEGIARBAnQhDQNAIAMoAjQgDWooAgAgBkwEQCAEQQFqIQQMAwUgBSgCECIHIAUoAgRBAnRqIAlqIgIoAgQhCiACKAIAIAcgAygCOCANaigCACAGQQJ0aigCAEECdGooAgAiCEQAAAAAAAAAABDxAyEHIAUgBSgCGCICQQFqNgIYIAUoAiAgAkECdGogBzYCACAIIApEAAAAAAAAAAAQ8QMhByAFIAUoAhgiAkEBajYCGCAFKAIgIAJBAnRqIAc2AgAgBkEBaiEGDAELAAsACwsgBSgCGCEJCyAFQQA2AhwgBUEANgIUIAlBAEoEQCAFIAUoAgwgAGogBSgCECAJIAUoAiAQxw02AiQgBSAFKAIYNgIUIAUgBSgCIDYCHAsgAQRAIAUgASAAEKgNNgIACyAFIABBBBAZNgIoIAUgAEEEEBk2AiwgBSAAQQQQGTYCMEGc2wotAABFDQAgDCAFKAIUNgIAQcj2CCgCAEH35gQgDBAeGgsgDEEgaiQAIAULEQAgACABIAAoAkwoAigQog0LvAMCBH8BfAJAAkAgAiIHRQRAQQEhBiAAIAEgAUEIEBkiByABELQNDQELIAMgAUEEEBkiADYCAEEAIQYgAUEAIAFBAEobIQMDQCADIAZHBEAgACAGQQJ0aiAGNgIAIAZBAWohBgwBCwsgACABQdIDIAcQqg1EexSuR+F6hD8gByAAIAFBAWsiA0ECdGooAgBBA3RqKwMAIAcgACgCAEEDdGorAwChRJqZmZmZmbk/oiADt6MiCiAKRHsUrkfheoQ/YxshCkEBIAEgAUEBTBshCEEAIQNBASEGA0AgBiAIRwRAIAMgByAAIAZBAnRqIgkoAgBBA3RqKwMAIAcgCUEEaygCAEEDdGorAwChIApkaiEDIAZBAWohBgwBCwsgBSADNgIAAkAgA0UEQCAEQQFBBBAZIgA2AgAgACABNgIADAELIAQgA0EEEBkiAzYCAEEAIQFBASEGA0AgBiAIRg0BIAogByAAIAZBAnRqIgQoAgBBA3RqKwMAIAcgBEEEaygCAEEDdGorAwChYwRAIAMgAUECdGogBjYCACABQQFqIQELIAZBAWohBgwACwALQQAhBiACDQELIAcQGAsgBgtWAQJ/IAAoAggQGCAAQQA2AggCQCACRQ0AIAFBACABQQBKGyEBA0AgASADRg0BIAAgA0EUbGoiBCACNgIIIANBAWohAyACIAQoAgBBAnRqIQIMAAsACwvsAQEJfyABQQAgAUEAShshBiABEL4BIQRBACEBA0AgASAGRkUEQCAAIAFBFGxqKAIAIAJqIQIgAUEBaiEBDAELCyACEL4BIQIDQCADIAZHBEAgACADQRRsaiIHIAI2AgggACADIAQQ9QcgBygCACIIQQJrIQkgCEEBayEKQQEhAQNAIAEgCksEQCAAIAMgBBD0ByADQQFqIQMgAiAIQQJ0aiECDAMFIAIgAUECdCIFaiAJIAAgBygCBCAFaigCACIFQRRsaigCAGogACAFIAQQ9gdBAXRrszgCACABQQFqIQEMAQsACwALCyAEEBgLDQAgACABIAJBABDNCgsNACAAIAEgAkEBEM0KC1sBAn9BASAAIAFBFGxqIgMoAgAiACAAQQFNGyEEQQAhAEEBIQEDfyABIARGBH8gAAUgACACIAMoAgQgAUECdGooAgBBAnRqKAIAQQBKaiEAIAFBAWohAQwBCwsLTAICfwF9IABBACAAQQBKGyEAA0AgACACRwRAIAEgAkECdGoiAyoCACIEQwAAAABeBEAgA0MAAIA/IASRlTgCAAsgAkEBaiECDAELCwtJAgJ/AX0gAEEAIABBAEobIQADQCAAIANHBEAgASADQQJ0IgRqKgIAIgVDAAAAAGAEQCACIARqIAWROAIACyADQQFqIQMMAQsLC0sCAn8BfSAAQQAgAEEAShshAANAIAAgAkcEQCABIAJBAnRqIgMqAgAiBEMAAAAAXARAIANDAACAPyAElTgCAAsgAkEBaiECDAELCwsRACAAIAEgACgCTCgCKBC2DQsqAQF/QQQQywMQjgUiAEHA6wk2AgAgAEHU6wk2AgAgAEGo7AlBzwMQAQALDwAgACAAKAIAKAIEEQEAC7oHAgd/BHwjAEEQayIKJAAgCkEANgIMIApCADcCBCAAQQAgAEEAShshAAN/IAAgBkYEfyMAQUBqIgQkACAEQQA2AjwgBEIANwI0IARBNGogCkEEaiIGKAIEIAYoAgBrQQR1ENkNA0AgBigCBCAGKAIAIgFrQQV1IAVNBEACQCAEKAI0IAQoAjgQ2A0gBCAEQSxqIgg2AiggBEIANwIsIARBADYCICAEQgA3AhggBCgCOCECIAQoAjQhBwNAIAIgB0YEQCADQX8gBCgCHCAEKAIYayIAIABBAnUiAkH/////A0sbEIoBNgIAQQAhBSACQQAgAkEAShshAQNAIAEgBUYNAyAFQQJ0IgAgAygCAGogBCgCGCAAaigCADYCACAFQQFqIQUMAAsABSAEIAcoAgQiBTYCFAJAIAcoAgBFBEAgBEEMaiAEQShqIgEgBEEUaiIAEP4CIAEgABCrAyIAIAQoAihHBEAgBSAAEIEIKAIQIgA2AhAgACAFNgIUCyAEQShqIARBFGoQqwMQsAEiACAIRg0BIAUgACgCECIANgIUIAAgBTYCEAwBCyAFKAIUIQkgBSgCECIBBEAgASgCBCIAKwMQIQwgACsDGCENIAUoAgQiACsDECEOIAArAxghCyAEQSAQigEgASgCACAFKAIAIAsgDqEgDSAMoaBEAAAAAAAA4D+iEKwDNgIMIARBGGogBEEMahC/ASABIAUoAhQ2AhQLIAkEQCAJKAIEIgArAxAhDCAAKwMYIQ0gBSgCBCIAKwMQIQ4gACsDGCELIARBIBCKASAFKAIAIAkoAgAgCyAOoSANIAyhoEQAAAAAAADgP6IQrAM2AgwgBEEYaiAEQQxqEL8BIAkgBSgCEDYCEAsgBEEoaiAEQRRqEOEFCyAHQRhqIQcMAQsACwALBSACIAVBAnRqIgAoAgAgASAFQQV0IglqIgErAxAiCyABKwMYIAuhRAAAAAAAAOA/oqAiCzkDCCAEIAs5AxggBEEoaiIHIAAgASAEQRhqIggQ1A0gBEEANgIMIAQgBigCACAJaisDADkDGCAEQTRqIgEgBEEMaiIAIAcgCBDgBSAEQQE2AgwgBCAGKAIAIAlqKwMIOQMYIAVBAWohBSABIAAgByAIEOAFIAcQ1gEMAQsLIARBGGoQ/AEaIARBKGoQ8gMgBEE0ahDVDSAEQUBrJAAgBhD8ARogCkEQaiQAIAIFIApBBGogASAGQQV0aiIIIAhBEGogCEEIaiAIQRhqEMYNIAZBAWohBgwBCwsLiQ4CCn8EfCMAQRBrIgokACAKQQA2AgwgCkIANwIEIABBACAAQQBKGyEFA38gBSAGRgR/An9BACEGIwBB4ABrIgAkACAAQQA2AkwgAEIANwJEIABBxABqIApBBGoiDiIBKAIEIAEoAgBrQQR1ENkNA0AgASgCBCABKAIAIgVrQQV1IAZNBEAgACgCRCAAKAJIENgNIAAgAEE8aiILNgI4IABCADcCPCAAQQA2AjAgAEIANwIoIABBEGohByAAQRxqIQkgACgCSCEMIAAoAkQhBgNAAkACQAJAAkAgBiAMRgRAIANBfyAAKAIsIAAoAihrIgEgAUECdSIBQf////8DSxsQigE2AgBBACEGIAFBACABQQBKGyECA0AgAiAGRg0CIAZBAnQiBCADKAIAaiAAKAIoIARqKAIANgIAIAZBAWohBgwACwALIAAgBigCBCIBNgIkIAYoAgANASAAQRhqIABBOGoiAiAAQSRqEP4CIARFDQIgAEIANwIcIAAgCTYCGCAAIAE2AlQgAiAAQdQAahCrAyECAkADQCACIAAoAjhGDQEgACACEIEIIgIoAhAiBTYCXCAFKAIEIAEoAgQQ4gVEAAAAAAAAAABlRQRAIAUoAgQgASgCBBDiBSAFKAIEIAEoAgQQ1w1lRQ0BIABBDGogAEEYaiAAQdwAahD+AgwBCwsgAEEMaiAAQRhqIABB3ABqEP4CCyAAQgA3AhAgACAHNgIMIAAgATYCXCAAQThqIABB3ABqEKsDIQICQANAIAIQsAEiAiALRg0BIAAgAigCECIFNgJQIAUoAgQgASgCBBDiBUQAAAAAAAAAAGVFBEAgBSgCBCABKAIEEOIFIAUoAgQgASgCBBDXDWVFDQEgAEHUAGogAEEMaiAAQdAAahD+AgwBCwsgAEHUAGogAEEMaiAAQdAAahD+AgsgAUEYaiAAQRhqENYNIAFBJGogAEEMahDWDSAAKAIYIQIDQCACIAlGBEAgACgCDCECA0AgAiAHRwRAIAIoAhAhBSAAIAE2AlwgAEHUAGogBUEYaiAAQdwAahD+AiACELABIQIMAQsLIABBDGoQ8gMgAEEYahDyAwwFBSACKAIQIQUgACABNgJcIABB1ABqIAVBJGogAEHcAGoQ/gIgAhCwASECDAELAAsACyAAQShqEPwBGiAAQThqEPIDIABBxABqENUNIABB4ABqJAAgAQwGCwJAIAQEQCABQRxqIQggASgCGCECA0AgAiAIRgRAIAFBKGohCCABKAIkIQIDQCACIAhGDQQgASgCBCIFKwMAIQ8gBSsDCCEQIAIoAhAiBSgCBCINKwMAIREgDSsDCCESIABBIBCKASABKAIAIAUoAgAgECAPoSASIBGhoEQAAAAAAADgP6IQrAM2AhggAEEoaiAAQRhqEL8BIAVBGGogAEEkahDhBSACELABIQIMAAsABSABKAIEIgUrAwAhDyAFKwMIIRAgAigCECIFKAIEIg0rAwAhESANKwMIIRIgAEEgEIoBIAUoAgAgASgCACAQIA+hIBIgEaGgRAAAAAAAAOA/ohCsAzYCGCAAQShqIABBGGoQvwEgBUEkaiAAQSRqEOEFIAIQsAEhAgwBCwALAAsgASgCFCECIAEoAhAiBQRAIAUoAgQiCCsDACEPIAgrAwghECABKAIEIggrAwAhESAIKwMIIRIgAEEgEIoBIAUoAgAgASgCACASIBGhIBAgD6GgRAAAAAAAAOA/ohCsAzYCGCAAQShqIABBGGoQvwEgBSABKAIUNgIUCyACRQ0AIAIoAgQiBSsDACEPIAUrAwghECABKAIEIgUrAwAhESAFKwMIIRIgAEEgEIoBIAEoAgAgAigCACASIBGhIBAgD6GgRAAAAAAAAOA/ohCsAzYCGCAAQShqIABBGGoQvwEgAiABKAIQNgIQCyAAQThqIABBJGoQ4QUMAQsgAEE4aiAAQSRqEKsDIgIgACgCOEcEQCABIAIQgQgoAhAiAjYCECACIAE2AhQLIABBOGogAEEkahCrAxCwASICIAtGDQAgASACKAIQIgI2AhQgAiABNgIQCyAGQRhqIQYMAAsABSACIAZBAnRqIgkoAgAgBSAGQQV0IgtqIgcrAwAiDyAHKwMIIA+hRAAAAAAAAOA/oqAiDzkDCCAAIA85AyggAEE4aiIFIAkgByAAQShqIgcQ1A0gAEEANgIYIAAgASgCACALaisDEDkDKCAAQcQAaiIJIABBGGoiDCAFIAcQ4AUgAEEBNgIYIAAgASgCACALaisDGDkDKCAGQQFqIQYgCSAMIAUgBxDgBSAFENYBDAELAAsACyAOEPwBGiAKQRBqJAAFIApBBGogASAGQQV0aiIAIABBEGogAEEIaiAAQRhqEMYNIAZBAWohBgwBCwsLUgEBf0HAABCKASICQgA3AyggAkEAOgAkIAJBADYCICACQgA3AxggAiABOQMQIAJEAAAAAAAA8D85AwggAiAANgIAIAJCADcDMCACQgA3AzggAgtSACAAIAEgAiAEEMoCAkAgAyACIAQoAgARAABFDQAgAiADELkBIAIgASAEKAIAEQAARQ0AIAEgAhC5ASABIAAgBCgCABEAAEUNACAAIAEQuQELCzsBAn8gACgCACIBBEAgASEAA0AgACIBKAIEIgANAAsgAQ8LA0AgACAAKAIIIgEoAgBGIAEhAA0ACyAAC10BBH8gAEGw0go2AgBBqP8KQQA2AgAgAEEEaiICQQRqIQQgAigCACEBA0AgASAERwRAIAEoAhAiAwRAIAMQ4g0aCyADEBggARCwASEBDAELCyACIAIoAgQQgwggAAsfACABBEAgACABKAIAEIMIIAAgASgCBBCDCCABEBgLCz8BAn8gACgCBCECIAAoAgghAQNAIAEgAkcEQCAAIAFBBGsiATYCCAwBCwsgACgCACIBBEAgACgCDBogARAYCwtKAQF/IAAgAzYCECAAQQA2AgwgAQRAIAEQ4w0hBAsgACAENgIAIAAgBCACQQJ0aiICNgIIIAAgBCABQQJ0ajYCDCAAIAI2AgQgAAtXAQF/IANBADoAHEHIABCKASIEQQAQjwgaIAEgBDYCACAAIAQgAygCACADKAIEEOYFQcgAEIoBIgFBABCPCBogAiABNgIAIAAgASADKAIEIAMoAgAQ5gULoQMCCH8CfCMAQRBrIgskACADKwMQIAMoAiArAxAgAysDGKAgAysDCKGiIQ8gAygCLCEMIAMoAighCCAFQQJGIQ0DQCAIIAxGBEACQCADKAI4IQwgAygCNCEIA0AgCCAMRg0BAkAgCCgCACIKKAIEIgcoAiAgAUcgBCAHRnINACAKLQAcQQFxRQ0AIAsgAUEAIAIgAiAHRiINGyICIAcgA0ECIAVBAUYgBnIiBkEBcSIOEIcIIAogCysDACIQOQMQIAogCSANGyEJAkAgAkUNACALKAIIIgdFDQAgDgRAIAohCSAQIAcrAxBjDQELIAchCQsgDyAQoCEPCyAIQQRqIQgMAAsACwUCQCAIKAIAIgooAgAiBygCICABRyAEIAdGcg0AIAotABxBAXFFDQAgCyABQQAgAiACIAdGIg4bIgIgByADQQEgBiANciIGQQFxEIcIIAogCysDACIQmjkDECALKAIIIgcgCiAJIA4bIgkgBxsgCSACGyEJIA8gEKAhDwsgCEEEaiEIDAELCyAAIAk2AgggACAPOQMAIAtBEGokAAupAgIEfwN8IAErAxAgASgCICsDECABKwMYoCABKwMIoaIhCCABKAI4IQcgASgCNCEEA0AgBCAHRgRAAkAgASgCLCEHIAEoAighBANAIAQgB0YNAQJAIAQoAgAiBigCACIFKAIgIABHIAIgBUZyDQAgBi0AHEEBcUUNACAGIAAgBSABIAMQiAgiCZoiCjkDECAIIAmgIQggAygCACIFBEAgBSsDECAKZEUNAQsgAyAGNgIACyAEQQRqIQQMAAsACwUCQCAEKAIAIgYoAgQiBSgCICAARyACIAVGcg0AIAYtABxBAXFFDQAgBiAAIAUgASADEIgIIgk5AxAgCCAJoCEIIAMoAgAiBQRAIAkgBSsDEGNFDQELIAMgBjYCAAsgBEEEaiEEDAELCyAIC08BAn8CQCAAKAI8IAAoAkBHBEAgAEE8aiECA0AgAhCLCCIBKAIAKAIgIAEoAgQoAiBHDQIgAhC/BCAAKAI8IAAoAkBHDQALC0EAIQELIAELsgEBCH8jAEEQayICJAAgAkG+AzYCDAJ/QQEgASIHIABrQQJ1IgggCEEBTBtBAXYhCSAAIQNBASEFAkADQCAEIAlGDQEgAygCACAAIAVBAnRqIgYoAgAgAigCDBEAAARAIAYMAwsgBUEBaiAIRg0BIAMoAgAgBigCBCACKAIMEQAARQRAIANBBGohAyAEQQFqIgRBAXRBAXIhBQwBCwsgBkEEaiEHCyAHCyACQRBqJAAgAUYLLAAgACgCACAAKAIEEIoIRQRAQb6kA0H72wBBOkGW6AAQAAALIAAoAgAoAgAL3gIBB38jAEEgayIBJAAgAUEANgIYIAFBADYCFCABQgA3AgwgAEEwaiEEA0ACQCAAKAIwIAAoAjRGDQAgASAEEIsIIgI2AhggAigCACgCICIDIAIoAgQoAiBGBEAgBBC/BAwCCyACKAIYIAMoAixODQAgBBC/BCABQQxqIAFBGGoQvwEMAQsLIAEoAhAhByABKAIMIQICQCABAn8DQAJAIAIgB0YEQCAAKAIwIAAoAjRHDQFBAAwDCyACKAIAIgNBqP8KKAIANgIYIAEgAzYCHCAAKAIwIAAoAjQQighFDQMgBCABQRxqEL8BIAAoAjAhBSAAKAI0IQYjAEEQayIDJAAgA0G+AzYCDCAFIAYgA0EMaiAGIAVrQQJ1EOUNIANBEGokACACQQRqIQIMAQsLIAQQiwgLIgA2AhggAUEMahD8ARogAUEgaiQAIAAPC0G+pANB+9sAQccAQYYcEAAACwsAIABBPEEAENcKCwsAIABBMEEBENcKC10AIABCADcDECAAQQA2AgggAEIANwMAIABCADcCLCAAQgA3AxggAEIANwMgIABBADoAKCAAQgA3AjQgAEIANwI8IABBADYCRCABBEAgAUIANwMYIAAgARDrDQsgAAvkDQIIfwZ8IwBBgAFrIgQkACAAEDgiCEHIABAZIQkgBEHIAGogABD5AiAEKwNQIQ8gBCsDSCEMIAQtAFhBAXEiBgRAIA9EAAAAAAAAUkCjIQ8gDEQAAAAAAABSQKMhDAsgABAbIQMgCSECA0AgAwRAIAMoAhAiBSsDKCEKIAUrAyAhCwJ8IAYEQCAPIApEAAAAAAAA4D+ioCEKIAwgC0QAAAAAAADgP6KgDAELIA8gCqJEAAAAAAAA4D+iIQogDCALokQAAAAAAADgP6ILIQsgAiAFKAKUASIFKwMAIg05AwAgBSsDCCEOIAIgAzYCQCACIAo5AzggAiALOQMwIAIgCyANoDkDICACIA0gC6E5AxAgAiAOOQMIIAIgCiAOoDkDKCACIA4gCqE5AxggAkHIAGohAiAAIAMQHCEDDAELCwJAAkACQAJAIAFBAEgEQEEAIQAgCEEAIAhBAEobIQZEAAAAAAAAAAAhCiAJIQMDQCAAIAZHBEAgA0HIAGoiASECIABBAWoiACEFA0AgBSAIRgRAIAEhAwwDCwJAIAMrAyAgAisDEGZFDQAgAisDICADKwMQZkUNACADKwMoIAIrAxhmRQ0AIAIrAyggAysDGGYNBwtEAAAAAAAA8H8hC0QAAAAAAADwfyEMIAMrAwAiDiACKwMAIg1iBEAgAysDMCACKwMwoCAOIA2hmaMhDAsgAysDCCIOIAIrAwgiDWIEQCADKwM4IAIrAzigIA4gDaGZoyELCyALIAwgCyAMYxsiCyAKIAogC2MbIQogBUEBaiEFIAJByABqIQIMAAsACwsgCkQAAAAAAAAAAGENA0Gc2wotAABFDQEgBCAKOQMAQcj2CCgCAEGXgQUgBBAxDAELAkAgCEEATgRAIARCADcDUCAEQgA3A3ggBEFAa0IANwMAIARCADcDcCAEQgA3AzggBEIANwNIIARByABqIARBOGoQlAFBACEGIAkhBQNAAkAgBiAIRgRAIARByABqEPENIAQoAlQiACAEKAJQIgdLBEAgBCgCSCAAIAdBEBCdASEAIAQgBzYCVCAEIAA2AkgLIARByABqEPENIAQoAkghBiAHQQFHDQEgBhAYDAcLIAVByABqIgAhAiAGQQFqIgYhAwNAIAMgCEYEQCAAIQUMAwUCQCAFKwMgIAIrAxBmRQ0AIAIrAyAgBSsDEGZFDQAgBSsDKCACKwMYZkUNACACKwMoIAUrAxhmRQ0ARAAAAAAAAPB/IQpEAAAAAAAA8H8hCwJAIAUrAwAiDiACKwMAIg1hDQAgBSsDMCACKwMwoCAOIA2hmaMiC0QAAAAAAADwP2NFDQBEAAAAAAAA8D8hCwsgBCALOQNgAkAgBSsDCCINIAIrAwgiC2ENACAFKwM4IAIrAzigIA0gC6GZoyIKRAAAAAAAAPA/Y0UNAEQAAAAAAADwPyEKCyAEIAo5A2ggBCAEKQNoNwMwIAQgBCkDYDcDKCAEQcgAaiAEQShqEJQBCyADQQFqIQMgAkHIAGohAgwBCwALAAsLIAEEQEEBIAcgB0EBTRshAEQAAAAAAAAAACEKIAYhAkEBIQMDQCAAIANGBEAgCiELDAQFIAIrAxAgAisDGBAqIgsgCiAKIAtjGyEKIANBAWohAyACQRBqIQIMAQsACwALIAZCgICAgICAgPj/ADcDCCAGQoCAgICAgID4PzcDACAGQRBqIAdBAWsiAEEQQbwDEJgBIAdBEBAZIQMgBiAAQQR0IgBqKwMAIQsgACADaiIAQoCAgICAgID4PzcDCCAAIAs5AwAgBwRAIAdBAmshBQNAIAMgBSIAQQR0IgVqIgEgBSAGaisDADkDACABIAYgBUEQaiIBaisDCCABIANqKwMIECI5AwggAEEBayEFIAANAAsLQQAhBUQAAAAAAADwfyEKQQAhAgNAIAIgB0YEQAJAIApEAAAAAAAA8H9jIApEAAAAAAAA8H9kckUNACADIAVBBHRqIgArAwghCiAAKwMAIQsgAxAYDAQLBSADIAJBBHRqIgArAwAgACsDCKIiCyAKIAogC2QiABshCiACIAUgABshBSACQQFqIQIMAQsLQZ3XAUH6uwFB7AVB2ckBEAAAC0GalwNB+rsBQcIGQaoZEAAACyAGEBhBnNsKLQAARQ0BIAQgCjkDGCAEIAs5AxBByPYIKAIAQYaBBSAEQRBqEDEMAQsgCiELC0EAIQMgCEEAIAhBAEobIQVBASEAIAkhAgNAIAMgBUYNAiACKAJAKAIQKAKUASIBIAsgAisDAKI5AwAgASAKIAIrAwiiOQMIIANBAWohAyACQcgAaiECDAALAAtBACEACyAJEBggBEGAAWokACAAC/EEAQt/IABFBEBBAA8LIAAoAhghBiAAKAIUIgkoAgAhAgJAAkACQAJAAkACQCAAKAIQQQFrDggAAQUCBQUFAwULIAAoAhwhBQNAIAMgACgCAE4NBCAJIANBAWoiCEECdGohBwNAIAIgBygCACIETkUEQCADIAYgAkECdGooAgAiBEcEQCAGIAFBAnRqIAQ2AgAgBSABQQN0aiAFIAJBA3RqKwMAOQMAIAFBAWohAQsgAkEBaiECDAELCyAHIAE2AgAgBCECIAghAwwACwALIAAoAhwhBQNAIAMgACgCAE4NAyAJIANBAWoiCEECdGohBwNAIAIgBygCACIETkUEQCADIAYgAkECdGooAgAiBEcEQCAGIAFBAnRqIAQ2AgAgBSABQQR0aiIEIAUgAkEEdGoiCisDADkDACAEIAorAwg5AwggAUEBaiEBCyACQQFqIQIMAQsLIAcgATYCACAEIQIgCCEDDAALAAsgACgCHCEFA0AgAyAAKAIATg0CIAkgA0EBaiIIQQJ0aiEHA0AgAiAHKAIAIgRORQRAIAMgBiACQQJ0IgRqKAIAIgpHBEAgBiABQQJ0IgtqIAo2AgAgBSALaiAEIAVqKAIANgIAIAFBAWohAQsgAkEBaiECDAELCyAHIAE2AgAgBCECIAghAwwACwALA0AgAyAAKAIATg0BIAkgA0EBaiIIQQJ0aiEFA0AgAiAFKAIAIgRORQRAIAMgBiACQQJ0aigCACIERwRAIAYgAUECdGogBDYCACABQQFqIQELIAJBAWohAgwBCwsgBSABNgIAIAQhAiAIIQMMAAsACyAAIAE2AgggACEBCyABC0MBAX8gACABEOQBIgRFBEBBAA8LIAMEfyAAKAI0IARBIGoQ9g0FQQALIQEgAgR/IAAoAjQgBEEcahD2DSABagUgAQsL4wwBE38CQAJAIABFIAFFckUEQCABKAIgIAAoAiByDQEgACgCECICIAEoAhBHDQICQCAAKAIAIgQgASgCAEcNACAAKAIEIgMgASgCBEcNACABKAIYIRMgASgCFCEOIAAoAhghFCAAKAIUIQ8gBCADIAEoAgggACgCCGogAkEAELECIg0EQEEAIQIgA0EAIANBAEobIQggDSgCGCEQIA0oAhQhCyADQQQQSyEJA0AgAiAIRkUEQCAJIAJBAnRqQX82AgAgAkEBaiECDAELC0EAIQIgC0EANgIAAkACQAJAAkACQCAAKAIQQQFrDggAAQQCBAQEAwQLIARBACAEQQBKGyEMIA0oAhwhBCABKAIcIQMgACgCHCERQQAhAANAIAAgDEYNBCAPIABBAWoiAUECdCIIaiEKIA8gAEECdCIFaigCACEAA0AgACAKKAIATkUEQCAJIBQgAEECdGooAgAiB0ECdGogAjYCACAQIAJBAnRqIAc2AgAgBCACQQN0aiARIABBA3RqKwMAOQMAIABBAWohACACQQFqIQIMAQsLIAUgC2ohCiAIIA5qIQcgBSAOaigCACEAA0AgACAHKAIATkUEQAJAIAkgEyAAQQJ0aigCACIFQQJ0aigCACIGIAooAgBIBEAgECACQQJ0aiAFNgIAIAQgAkEDdGogAyAAQQN0aisDADkDACACQQFqIQIMAQsgBCAGQQN0aiIFIAMgAEEDdGorAwAgBSsDAKA5AwALIABBAWohAAwBCwsgCCALaiACNgIAIAEhAAwACwALIARBACAEQQBKGyEMIA0oAhwhBCABKAIcIQggACgCHCERQQAhAANAIAAgDEYNAyAPIABBAWoiAUECdCIFaiEKIA8gAEECdCIDaigCACEAA0AgACAKKAIATkUEQCAJIBQgAEECdGooAgAiB0ECdGogAjYCACAQIAJBAnRqIAc2AgAgBCACQQR0aiIHIBEgAEEEdGoiBisDADkDACAHIAYrAwg5AwggAEEBaiEAIAJBAWohAgwBCwsgAyALaiEKIAUgDmohByADIA5qKAIAIQADQCAAIAcoAgBORQRAAkAgCSATIABBAnRqKAIAIgNBAnRqKAIAIgYgCigCAEgEQCAQIAJBAnRqIAM2AgAgBCACQQR0aiIDIAggAEEEdGoiBisDADkDACADIAYrAwg5AwggAkEBaiECDAELIAQgBkEEdGoiAyAIIABBBHRqIgYrAwAgAysDAKA5AwAgAyAGKwMIIAMrAwigOQMICyAAQQFqIQAMAQsLIAUgC2ogAjYCACABIQAMAAsACyAEQQAgBEEAShshDCANKAIcIQQgASgCHCEDIAAoAhwhEUEAIQADQCAAIAxGDQIgDyAAQQFqIgFBAnQiCGohCiAPIABBAnQiBWooAgAhAANAIAAgCigCAE5FBEAgCSAUIABBAnQiB2ooAgAiBkECdGogAjYCACAQIAJBAnQiEmogBjYCACAEIBJqIAcgEWooAgA2AgAgAEEBaiEAIAJBAWohAgwBCwsgBSALaiEKIAggDmohByAFIA5qKAIAIQADQCAAIAcoAgBORQRAAkAgCSATIABBAnQiBWooAgAiBkECdGooAgAiEiAKKAIASARAIBAgAkECdCISaiAGNgIAIAQgEmogAyAFaigCADYCACACQQFqIQIMAQsgBCASQQJ0aiIGIAYoAgAgAyAFaigCAGo2AgALIABBAWohAAwBCwsgCCALaiACNgIAIAEhAAwACwALIARBACAEQQBKGyEIQQAhAANAIAAgCEYNASAPIABBAWoiAUECdCIEaiEFIA8gAEECdCIDaigCACEAA0AgACAFKAIATkUEQCAJIBQgAEECdGooAgAiDEECdGogAjYCACAQIAJBAnRqIAw2AgAgAEEBaiEAIAJBAWohAgwBCwsgAyALaiEFIAQgDmohDCADIA5qKAIAIQADQCAAIAwoAgBORQRAIAkgEyAAQQJ0aigCACIDQQJ0aigCACAFKAIASARAIBAgAkECdGogAzYCACACQQFqIQILIABBAWohAAwBCwsgBCALaiACNgIAIAEhAAwACwALIA0gAjYCCAsgCRAYCyANDwtBpd4BQdG6AUHDBUGZswEQAAALQdnQAUHRugFBxAVBmbMBEAAAC0HamQFB0boBQcUFQZmzARAAAAvMCAIQfwF8AkAgAEUNACAAKAIgRQRAIAAoAhghDSAAKAIUIQcgACgCBCIIIAAoAgAiAiAAKAIIIgEgACgCEEEAELECIgkgATYCCCAJKAIYIQ4gCSgCFCEDQX8gCCAIQQBIG0EBaiEKQQAhAQNAIAEgCkYEQEEAIQEgAkEAIAJBAEobIQogA0EEaiEGA0ACQCABIApGBEBBACEBIAhBACAIQQBK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JwALIgIoAgAgAigCBEEBEIMCIAIoAgAQGCACEBgLDAELCyAPRAAAAAAAAOA/ZARAIAAgDxCCAgsgG0FAaxCHBAsgG0HQAGokACAjC50BAQF/AkACQCACRQ0AIAAQSCAAECRrIAJJBEAgACACEMgECyAAECQhAyAAECgEQCAAIANqIAEgAhAfGiACQYACTw0CIAAgAC0ADyACajoADyAAECRBEEkNAUG+uQNBr4EBQYUCQbrtABAAAAsgACgCACADaiABIAIQHxogACAAKAIEIAJqNgIECw8LQeTOAUGvgQFBgwJBuu0AEAAACxUAIAAgASACEJEEIgBBCGpBACAAGwuMAQECfyMAQSBrIgIkAAJAIAAoAqABIgNBAkgNACAALQCYAUHAAHFFDQAgAiAAKAIAKAKsAiADQQJ0aigCADYCECABQfzGASACQRBqEMIDCyAAKALIASEDIAAoAsQBIgBBAEwgA0EATHFFBEAgAiADNgIEIAIgADYCACABQYDHASACEMIDCyACQSBqJAAL7AEBAX8gACgCECEHIAFFIAAoApgBIgBBgIACcUVyRQRAIAcgATYCyAELAkAgAEGAgARxIgFFDQAgByAFIAYQggE2AtwBIAJFDQAgAi0AAEUNACAHIAIgBhCCATYC2AELIAFBEHYhAQJAIABBgICAAnFFDQACQCADRQ0AIAMtAABFDQAgByADIAYQggE2AuwBQQEhASAHIAcvAYwCQQFyOwGMAgwBCyAHKALIASICRQ0AIAcgAhBlNgLsAUEBIQELAkAgBEUgAEGAgIAEcUVyDQAgBC0AAEUNACAHIAQgBhCCATYC/AFBASEBCyABC84BAQV/IwBBIGsiAyQAIAAoAhAiBCgCtAEiAkEAIAJBAEobQQFqIQZBASEFAkADQCAFIAZHBEAgBCgCuAEgBUECdGooAgAgAyABKQMYNwMYIAMgASkDEDcDECADIAEpAwg3AwggAyABKQMANwMAIAVBAWohBSADEJcJIgJFDQEMAgsLAkAgASsDECAEKwMQZkUNACAEKwMgIAErAwBmRQ0AIAErAxggBCsDGGZFDQAgACECIAQrAyggASsDCGYNAQtBACECCyADQSBqJAAgAgs7AQF/AkAgAUEAQZKKAUEAECEiAkUEQCABQQBB8dIBQQAQISICRQ0BCyAAIAEgAhBCIAEQggE2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QQMQOgwKCyAAIARBAxA6DAkLIAMgASkDCDcDiAEgAyABKQMANwOAASAAIAVBAxA6DAgLIAMgAikDADcDMCADIAIpAwg3AzggACADQTBqQQMQOgwHCyAAIAFBBBA6DAYLIAMgASkDCDcDiAEgAyABKQMANwOAASAAIARBBBA6DAULIAMgASkDCDcDiAEgAyABKQMANwOAASADIAQpAwg3A5gBIAMgBCkDADcDkAEgACAFQQQQOgwECyADIAIpAwA3AzAgAyACKQMINwM4IAAgA0EwakEEEDoMAwsgACABQQIQOiAAIAVBAhA6DAILIAMgAikDADcDMCADIAIpAwg3AzggACADQTBqQQIQOiAAIARBAhA6DAELIAEtACEiAUECTwRAIAIgAbhEAAAAAAAA4D+iIgggAisDAKA5AwAgAiAIIAIrAwigOQMIIAIgAisDECAIoTkDECACIAIrAxggCKE5AxgLIAMgAikDGDcDGCADIAIpAxA3AxAgAyACKQMINwMIIAMgAikDADcDACAAIANBABCEAgsgA0GgAWokAAtnAQF/IwBBEGsiBSQAAn8gASAEIAVBCGoQhgQEQCAAIAQoAgAQXiAAIAQoAgQiAUH49wAgARsgAiAFKwMIEI0DQQNBAiADLQAAQQFxGwwBCyAAIAEQXkEBCyAAQdYfEEYgBUEQaiQAC6wBAgF/AXwCQCAAKAIQIgNFDQAgASgCAARAIAIgAzYCACAAIAEoAgA2AhAMAQsgAkEANgIACwJAIAAoAhQiA0UNACABKAIEBEAgAiADNgIEIAAgASgCBDYCFAwBCyACQQA2AgQLIAArAyAiBEQAAAAAAAAAAGYEQCABKwMQRAAAAAAAAAAAZgRAIAIgBDkDECAAIAErAxA5AyAPCyACQoCAgICAgID4v383AxALC7AFAgx/B3wjAEGAAWsiAyQAIAEoAgQiDARAIAIrACAhFCACKAAUIQcgAigAECEKIAEtAAghDSABKAIAIQ4gAisDACEQIAErAxAhFSABKwMgIREgAisDCCESIAErAxghEyABKwMoIQ8gA0IANwMYIAMgEiAPIBOgRAAAAAAAAOA/oqAgDyAToUQAAAAAAADgP6KgOQMgIABBARCDCSARIBWhRAAAAAAAAOA/oiISIBAgESAVoEQAAAAAAADgP6KgIhGgIRMgESASoSESA0Ag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fCMAQSBrIgIkACABKAIQIgErABAhAyABKwNgIQUgAiABKwNQRAAAAAAAAOg/okQAAAAAAADgP6IiBCABKwAYoCIGOQMYIAIgBjkDCCACIAMgBUR8YTJVMCrlP6IiA6AiBTkDACACIAUgAyADoKE5AxAgACACQQIQOiACIAIrAwggBCAEoKEiBDkDGCACIAQ5AwggACACQQIQOiACQSBqJAALNwEDfwNAIAFBA0cEQCAAIAFBAnRqIgIoAgAiAwRAIAMQmgEaIAJBADYCAAsgAUEBaiEBDAELCwsMACAAQToQywFBAEcLYAAgAEEANgIAIAIgABCJCiIABEAgASAAEOMBCwJAQfzcCigCACIARQ0AIAIgABBCIgBFDQAgAC0AAEUNACABIAJB/NwKKAIARAAAAAAAAPA/RAAAAAAAAAAAEEoQggILCwQAQQALMAEBfyMAQRBrIgIkACAAECAhACACIAE2AgQgAiAANgIAQYO5BCACECsgAkEQaiQAC2gBAn8gAEECIAEgAUEDRhsiAyACEJUKIgFFBEAPCyADQQJ0IgMgACgCTGooAiwiBCABQQIgBCgCABEEABogACgCTCADaigCOCIDIAFBAiADKAIAEQQAGiAAIAEoAhhBABCNARogARAYC3wAIABCADcDACAAQgA3AwgCQAJAAkACQCACQQFrDgMCAQMACyAAIAEpAwA3AwAgACABKQMINwMIDwsgACABKwMAOQMAIAAgASsDCJo5AwgPCyAAIAErAwA5AwggACABKwMImjkDAA8LIAAgASsDADkDCCAAIAErAwg5AwALsQICCX8CfCMAQRBrIgUkACAAIAI6AEEgASsDCCEMIAAgASsDACINOQMQIAAgDDkDKCAAIAwgACsDCKE5AxggACANIAArAwCgOQMgIAAoAjAiBEEAIARBAEobIQdBDkEPIARBAWsiBhshCEENQQ8gBhshCQNAIAMgB0ZFBEACf0EAIAJFDQAaIAAtAEAEQCAJIANFDQEaQQdBBSADIAZGGwwBCyAIIANFDQAaQQtBCiADIAZGGwshBCADQQJ0IgogACgCOGooAgAgBSABKQMINwMIIAUgASkDADcDACAFIAIgBHEQkgogACgCOCAKaigCACEEAkAgAC0AQARAIAEgASsDACAEKwMAoDkDAAwBCyABIAErAwggBCsDCKE5AwgL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HAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEKkLCyACIAEgASACKAIAENULIAZBDGogAyAAKAIAEM0LIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQngIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAEJ4FIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQngUgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBCfAiEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwuHAQEBfyAALQCZAUEEcUUEQAJAIAAoAkwiAUUNACABKAIIIgFFDQAgACABEQEADwsgABCRBxoCQCAAKAIgRQ0AIAAoAiQiAUHQ9ggoAgBGDQAgAC0AkAENACABBEAgARDlAyAAQQA2AiQLIABBADYCIAsPC0Hz4QNBACAAKAIMKAIQEQMAECcAC0AAIAIgAyAAQQhqIAAoAggoAgQRAgAiACAAQaACaiAFIARBABChBSAAayIAQZ8CTARAIAEgAEEMbUEMbzYCAAsLQAAgAiADIABBCGogACgCCCgCABECACIAIABBqAFqIAUgBEEAEKEFIABrIgBBpwFMBEAgASAAQQxtQQdvNgIACwsEAEECC94BAQV/IwBBEGsiByQAIwBBEGsiAyQAIAAhBAJAIAFB9////wNNBEACQCABEJAFBEAgBCABENABDAELIANBCGogARDNA0EBahDMAyADKAIMGiAEIAMoAggiABD2ASAEIAMoAgwQ9QEgBCABEL0BCyMAQRBrIgUkACAFIAI2AgwgACECIAEhBgNAIAYEQCACIAUoAgw2AgAgBkEBayEGIAJBBGohAgwBCwsgBUEQaiQAIANBADYCBCAAIAFBAnRqIANBBGoQ2gEgA0EQaiQADAELEMgBAAsgB0EQaiQAIAQLwAUBDn8jAEEQ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AWo2AgwgASwAABCjAwsqAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBECAA8LIAEsAAAQowMLDwAgACAAKAIAKAIYEQIAC0QBAn8CQCAAKAIAIAEoAgAgACgCBCIAIAEoAgQiAiAAIAJJIgMbEOgBIgENAEEBIQEgACACSw0AQX9BACADGyEBCyABCwgAIAAoAhBFCwQAQX8LCAAgABCdBxoLvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxC1AUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELUBIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEKABIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEKABIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEKABIAVB8AFqIARCAEIAIAUpA4gCfUIAEKABIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEKABIAVB0AFqIARCAEIAIAUpA+gBfUIAEKABIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEKABIAVBsAFqIARCAEIAIAUpA8gBfUIAEKABIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEKABIAVBkAFqIANCD4ZCACACQgAQoAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCgASAFQYABakIBIAR9QgAgAkIAEKABIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQoAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQoAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCkAyAFQTBqIA0gFSAGQfAAahC1ASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEKABIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQoAEgBSADIBJCBUIAEKABIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQaCKC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBJIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELMFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEB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CARAA0ACfyADKAIEIgAgAygCaEcEQCADIABBAWo2AgQgAC0AAAwBCyADEFcLIgAgBmotACEEQCAEIAhqIAA6AAAgBEEBaiEEDAEFQQAhAiAIIgAhDAwDCwALAAsDQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQVwsgBmotACENAAtBACEAQQAhDEEAIQILIAMoAgQhByADKQNwQgBZBEAgAyAHQQFrIgc2AgQLIAMpA3ggByADKAIsa6x8IhNQIAkgEyAUUXJFcg0CIA8EQCAIIAA2AgALAkAgDUHjAEYNACACBEAgAiAEQQJ0akEANgIACyAMRQRAQQAhDAwBCyAEIAxqQQA6AAALIAIhAAsgAygCBCADKAIsa6wgAykDeCAVfHwhFSAOIAhBAEdqIQ4LIAFBAWohBCABLQABIgENAQwICwsgAiEADAELQQEhBUEAIQxBACEADAILIA8hBQwCCyAPIQULIA5BfyAOGyEOCyAFRQ0BIAwQGCAAEBgMAQtBfyEOCyAGQbACaiQAIANBkAFqJAAgDgtDAAJAIABFDQACQAJAAkACQCABQQJqDgYAAQICBAMECyAAIAI8AAAPCyAAIAI9AQAPCyAAIAI+AgAPCyAAIAI3AwALCw0AIAAgASACQQAQvgcLDwAgACABIAJBAEEAEKsHC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAwALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC28BBX8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB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IA1qIg1B7gBqTnENAEGgigtBxAA2AgALIARB8AJqIBcgFiANEIYMIAQpA/gCIRUgBCkD8AILIRYgDiAVNwMoIA4gFjcDICAEQZDGAGokACAOKQMoIRUgDikDICEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAOQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABClA0UNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBBsIAUgBSkDECICIAUpAxgiASACIAEQ9AsgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRClA0EATARAIAEgCiADIAkQpQMEQCABIQQMAgsgBUHwAGogASACQgBCABBsIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEGwgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABBsIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABBsIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGwgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIAZBAWshBiAEQgGGIQQgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EGwgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEGwgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQbEH9/wIgAyADQf3/Ak8bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQbCAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQbEHogX0gAyADQeiBfU0bQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQbCAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALPAAgACABNwMAIAAgAkL///////8/gyACQoCAgICAgMD//wCDQjCIpyADQjCIp0GAgAJxcq1CMIaENwMICxcBAX8gAEEAIAEQ9QIiAiAAayABIAIbCx4BAX8gABDqASIBBEAgACABEIsMIABBlZsFEN8BCwulAQEFf0GYjQsoAgAiAwRAQZSNCygCACEFA0AgACAFIAJBAnRqIgQoAgAiBkYEQCAEIAE2AgAgABAYDwsgBiABRXJFBEAgBCABNgIAQQAhAQsgAkEBaiICIANHDQALCwJAIAFFDQBBlI0LKAIAIANBAnRBBGoQOSIARQ0AQZSNCyAANgIAQZiNC0GYjQsoAgAiAkEBajYCACAAIAJBAnRqIAE2AgALC1kBA38gABAvIQMgABC8BSIAQQAgAEEAShshBEEAIQADQCABKAIMIQIgACAERkUEQCADIAIgAEECdGooAgAiAiACEHhBAEcQjQEaIABBAWohAAwBCwsgAhAYCwoAIABoQQAgABsLmAEBBX8jAEGAAmsiBSQAAkAgAkECSA0AIAEgAkECdGoiByAFNgIAIABFDQADQCAHKAIAIAEoAgBBgAIgACAAQYACTxsiBBAfGkEAIQMDQCABIANBAnRqIgYoAgAgASADQQFqIgNBAnRqKAIAIAQQHxogBiAGKAIAIARqNgIAIAIgA0cNAAsg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ACECEMYDIQ0gBkEQEBkhBQNAIAIgBkYEQCALEBhBACECA0AgAiAGRgRAIAoQGCANENcCQQAhAkGc2wotAABBAkkNCUHI9ggoAgAhBwNAIAIgBkYNCiAFIAJBBHRqIgkrAwAhECADIAkrAwg5AxAgAyAQOQMIIAMgAjYCACAHQciqBCADEDEgAkEBaiECDAALAAUgCiACQQR0aigCBBAYIAJBAWohAgwBCwALAAUgAiALIAJBAnRqKAIAIg4gDSAFIA4oAgxBBHRqIAkgBygCCCAIEJ8IIAJBAWohAgwBCwALAAUgCyACQQJ0aiAKIAJBBHRqNgIAIAJBAWohAgwBCwALAAUgCiACQQR0aiILIAI2AgwgBygCCCENIANCADcDaCADQgA3A2AgAyAIIAJBBXRqIgUpAwg3AzggA0FAayAFKQMQNwMAIAMgBSkDGDcDSCAFKQMAIRogA0IANwMoIAMgGjcDMCADQgA3AyAgA0EwaiALIAkgDSADQSBqQfWEBRCZDiACQQFqIQIMAQsACwALIAYgCCAHEJgOIQULIANB8ABqJAAgBSEKIAQoArgCEBhByPYIKAIAIQdE////////7/8hEET////////vfyERRP///////+9/IRJE////////7/8hFkEAIQIDQCACIAZHBEAgCCACQQV0aiIFKwMAIRcgCiACQQR0aiILKwMAIRMgBSsDCCEVIAUrAxAhFCAAKAIQKAK0ASENIAwgAkECdGooAgAiCSgCECEDIBYgCysDCCIYIAUrAxigIg8QIiEWIBAgEyAUoCIUECIhECASIBggFaAiFRAqIRIgESATIBegIhMQKiERAkAgAiANSARAIAMgDzkDKCADIBQ5AyAgAyAVOQMYIAMgEzkDEEGc2wotAABBAkkNASABEKsCIAkQICEDIAQgDzkD0AEgBCAUOQPIASAEIBU5A8ABIAQgEzkDuAEgBCADNgKwASAHQemtBCAEQbABahAxDAELIAMgFSAPoEQAAAAAAADgP6I5AxggAyATIBSgRAAAAAAAAOA/ojkDEEGc2wotAABBAkkNACABEKsCIAkQICEDIAkoAhAiBSsDECEPIAQgBSsDGDkD8AEgBCAPOQPoASAEIAM2AuABIAdB+60EIARB4AFqEDELIAJBAWohAgwBCwsCQCAAKAIQIgIoAgwiA0UNACADKwMY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IANBAWohAwwBCwsLo0sDGH8QfAF+IwBBsAFrIggkAEGc2wotAAAEQCAIIAAQIDYCcEHI9ggoAgBB0PMDIAhB8ABqEB4aCyAAEBshAgNAIAIEQCACKAIQQQA2ArgBIAAgAhAcIQIMAQsLQZzbCi0AAEECTwRAIAEoAhAhAiAIIAAQIDYCZCAIIAI2AmBByPYIKAIAQe37AyAIQeAAahAeGgsgASABKAIQQQFqNgIQIAhB5PAJKAIANgJcQZusASAIQdwAakEAEOABIgpB6yhBmAJBARA1GkE4EFUhAiAKKAIQIAI2AowBIAAQNyECIAooAhAgAigCEC8BsAE7AbABIAAgCkHQ3wAQzAcgACAKQY7eABDMByAAIApBm9gBEMwHIAhBmAFqIQcgCEGQAWohBiAIQYgBaiEJQQEhDANAIAAoAhAiAigCtAEgDE4EQCACKAK4ASAMQQJ0aigCACIDEPcEIAogAxAgEMsHIgQoAhAiAiALNgKIASACIAM2AugBAkACQCABKAIEIgVFBEBE////////738hG0T////////v/yEaDAELRP///////+9/IRtE////////7/8hGiADIAUQQiICLQAARQ0AIAEoAgAgA0cEQCACIAMoAkQgBRBCEEdFDQELIAhBADoArAEgCCAJNgJEIAggBjYCSCAIIAc2AkwgCCAIQawBajYCUCAIIAhBgAFqNgJAIAJBzcIBIAhBQGsQT0EETgRAIAgrA5gBIRogCCsDkAEhHiAIKwOIASEbIAgrA4ABIRxBsNsKKwMAIh1EAAAAAAAAAABkBEAgHiAdoyEeIBsgHaMhGyAcIB2jIRwgGiAdoyEaCyAEKAIQQQNBAkEBIAgtAKwBIgJBP0YbIAJBIUYbOgCHAQwCCyADECAhBSAIIAI2AjQgCCAFNgIwQeftAyAIQTBqECsLRP///////+//IR5E////////738hHAsgC0EBaiELIAMQGyECA0AgAgRAIAIoAhAgBDYCuAEgAyACEBwhAgwBCwsgBCgCECICLQCHAQRAIAIoApQBIgIgGiAboEQAAAAAAADgP6I5AwggAiAeIBygRAAAAAAAAOA/ojkDAAsgDEEBaiEMDAELCyAAEBshAgJ/AkADQCACBEACQCACKAIQIgMoArgBDQACQCADKALoASIERQ0AIAQgACgCECgCjAEoAjBGDQAgAhAgIQEgABAgIQAgCCACKAIQKALoARAgNgIoIAggADYCJCAIIAE2AiBB+P4EIAhBIGoQNgwECyADIAA2AugBIAMtAIYBDQAgCiACECAQywchAyACKAIQIgQgAzYCuAEgAygCECIDIAs2AogBIAMgBCsDIDkDICADIAQrAyg5AyggAyAEKwNYOQNYIAMgBCsDYDkDYCADIAQrA1A5A1AgAyAEKAIINgIIIAMgBCgCDDYCDCAELQCHASIFBEAgAygClAEiByAEKAKUASIEKwMAOQMAIAcgBCsDCDkDCCADIAU6AIcBCyALQQFqIQsgAygCgAEgAjYCCAsgACACEBwhAgwBCwsgABAbIQ4DQCAOBEAgDigCECgCuAEhAyAAIA4QLSECA0AgAgRAIAMgAkFQQQAgAigCAEEDcUECRxtqKAIoKAIQKAK4ASIERwRAAn8gAyAESQRAIAogAyAEQQBBARBfDAELIAogBCADQQBBARBfCyIHQfgoQbgBQQEQNRogBygCECIGIAIoAhAiBSsDiAE5A4gBIAYgBSsDgAE5A4ABIAQoAhAoAoABIgQgBCgCBEEBajYCBCADKAIQKAKAASIFIAUoAgRBAWo2AgQgBigCsAFFBEAgBCAEKAIAQQFqNgIAIAUgBSgCAEEBajYCAAsgByACEN4MCyAAIAIQMCECDAELCyAAIA4QHCEODAELCwJAAkAgACgCECgCjAEiAygCACICBEAgAygCBEEBakEQEBkhBCAKKAIQKAKMASAENgIAQQAhDgNAIAIoAgAiA0UNAiACKAIEKAIQKAK4ASIFBEAgA0FQQQAgAygCAEEDcSIHQQJHG2ooAiggA0EwQQAgB0EDRxtqKAIoIAAQICEJKAIQKAKIASEHKAIQKAKIASEGIAggAygCAEEEdjYCHCAIIAY2AhggCCAHNgIUIAggCTYCEEGwggtB6QdBgRggCEEQahChARogCkGwggsQywciAygCECALNgKIASALQQFqIQsgDkEBaiEOAn8gAyAFSwRAIAogBSADQQBBARBfDAELIAogAyAFQQBBARBfCyIHQfgoQbgBQQEQNRogBygCECIGIAIoAgAiCSgCECIMKwOIATkDiAEgBiAMKwOAATkDgAEgByAJEN4MIAMoAhAoAoABIgYgBigCBEEBajYCBCAFKAIQKAKAASIFIAUoAgRB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TToADCANIAg2AgggBUEEchDWASAJQSBqJAAgDSgCCCEGAkAgDS0ADEEBRw0AIAAgBiACEMkNIQUgBkEYaiIHIAEgAhDJDQRAIAYhASAFRQ0DDAILIAVFDQAgByEADAILIAAgBiACIAMgChDLDSAGQRhqIQBBACEEDAELCyANQRBqJAALMAEBfyAAKAI8IgIgAUECIAIoAgARBABFBEAPCyAAKAJAIgAgAUECIAAoAgARBAAaCw0AIABB3NIKNgIAIAALeAICfwJ8AkAgACgCBCIDRQRAIABBBGoiACECDAELIAIoAgAiBCsDCCEFA0AgBSADIgAoAhAiAisDCCIGY0UgAiAETSAFIAZkcnFFBEAgACECIAAoAgAiAw0BDAILIAAoAgQiAw0ACyAAQQRqIQILIAEgADYCACACC3UBA38gACAAKAIEIgM2AgggAwRAAkAgAygCCCIBRQRAQQAhAQwBCwJAIAMgASgCACICRgRAIAFBADYCACABKAIEIgINAQwCCyABQQA2AgQgAkUNAQsDQCACIgEoAgAiAg0AIAEoAgQiAg0ACwsgACABNgIECwsbAQF/IAAoAgAhASAAQQA2AgAgAQRAIAEQGAsLQwECfyAAKAIEIQIDQCAAKAIIIgEgAkcEQCAAIAFBGGs2AgggAUEUaxDWAQwBCwsgACgCACIBBEAgACgCDBogARAYCwvNAgEEfyAAKAIEIQMgACgCACEFIAEoAgQhBCMAQSBrIgIkACACIAQ2AhwgAiAENgIYIAJBADoAFCACIABBCGo2AgggAiACQRxqNgIQIAIgAkEYajYCDANAIAMgBUcEQCAEQRhrIgQgA0EYayIDKAIANgIAIAQgAygCBDYCBCAEIAMoAgg2AgggA0IANwIEIAQgAysDEDkDECACIAIoAhxBGGsiBDYCHAwBCwsgAkEBOgAUIAItABRFBEAgAigCCBogAigCECgCACEDIAIoAgwoAgAhBQNAIAMgBUcEQCADQQRqENYBIANBGGohAwwBCwsLIAJBIGokACABIAQ2AgQgACgCACECIAAgBDYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC10BAX8gACADNgIQIABBADYCDCABBEAgAUGr1arVAE8EQBD7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AxEAACEGIAggBSgCGCAEKAIYQQBBARBfIgdB+ChBuAFBARA1GiAGQYCABE4NBCAHKAIQIgtBATYCnAEgCyAGNgKsASAAIAUoAhQgBCgCFEEAQQAQX0UNASAHKAIQQeQANgKcAQwBCwsgBSgCACEFDAELCyABELIBIQIDQCACBEAgCCACKAIYIgAQLSEEA0AgBARAIAAoAhAiASgCyAEgASgCzAEiAUEBaiABQQJqQQQQnQEhASAAKAIQIgMgATYCyAEgAyADKALMASIDQQFqNgLMASABIANBAnRqIAQ2AgAgACgCECIBKALIASABKALMAUECdGpBADYCACAEIARBMGsiASAEKAIAQQNxQQJGGygCKCgCECIDKALAASADKALEASIDQQFqIANBAmpBBBCdASEDIAQgASAEKAIAQQNxQQJGGygCKCgCECADNgLAASAEIAEgBCgCAEEDcUECRhsoAigoAhAiAyADKALEASIGQQFqNgLEASADKALAASAGQQJ0aiAENgIAIAQgASAEKAIAQQNxQQJGGygCKCgCECIBKALAASABKALEAUECdGpBADYCACAIIAQQMCEEDAELCyACKAIAIQIMAQsLIAlBEGokACAIDwtB/9kBQfq7AUH1AUHr2AEQAAAL7wkBDX8jAEEQayILJAAgC0Hk8AkoAgA2AgxByYcBIAtBDGpBABDgASIMQesoQZgCQQEQNRpBgYCAgHghAyAAELIBIQQDQCAEBEAgCSADIAQoAggiB0dqIQkgBCgCACEEIAchAwwBCwsgCUEBdEEBayEPQYGAgIB4IQcgABCyASEEQQAhAwNAIAQEQCAEKAIIIg4gB0cEQCAMIAQoAhQQIEEBEI4BIgNBhSlBwAJBARA1GiADKAIQIgcgBDYCgAECQCAKBEAgBSgCECADNgK4AQwBCyAMKAIQIAM2AsABIAMhCgsgB0EANgLEASAGQQFqIgdBBBAZIQggAygCECAINgLAASAFBEAgBSgCEEEANgLMASAPIAkgBmsgBSAKRhtBBBAZIQYgBSgCECAGNgLIASAMIAUgA0EAQQEQXyIGQfgoQbgBQQEQNRogBigCECIIQQE2ApwBIAhBCjYCrAEgBSgCECIIKALIASAIKALMASIIQQFqIAhBAmpBBBCdASEIIAUoAhAiDSAINgLIASANIA0oAswBIg1BAWo2AswB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ARCrDiACQQFqIQIMAQsLIAAQYiECIAAoAhAhAwJAIAAgAkYEQCADKALsASEFRAAAwP///9/BIQpEAADA////30EhCyADKALoASIIIQQDQCAEIAVKBEAgAygCtAEiAEEAIABBAEobQQFqIQBBASECA0AgACACRg0EIAogAygCuAEgAkECdGooAgAoAhAiBCsDIEQAAAAAAAAgQKAiDCAKIAxkGyEKIAsgBCsDEEQAAAAAAAAgwKAiDCALIAxjGyELIAJBAWohAgwACwAFAkAgAygCxAEgBEHIAGxqIgAoAgAiBkUNAEEBIQIgACgCBCIHKAIAIgBFDQADQCAAKAIQIgAtAKwBIglFIAIgBk5yRQRAIAcgAkECdGooAgAhACACQQFqIQIMAQsLIAkNACAGQQJrIQIgACsDECAAKwNYoSEMIAcgBkECdGpBBGshAANAIAAoAgAoAhAiAC0ArAEEQCAHIAJBAnRqIQAgAkEBayECDAELCyAKIAArAxAgACsDYKAiDSAKIA1kGyEKIAsgDCALIAxjGyELCyAEQQFqIQQMAQsACwALIAMoAugBIQggAygC7AEhBSADKAKEAigCECgC9AG3IQogAygCgAIoAhAoAvQBtyELCyABKAIQKALEASIAIAVByABsaigCBCgCACgCECsDGCEMIAAgCEHIAGxqKAIEKAIAKAIQKwMYIQ0gAyAKOQMgIAMgCzkDECADIA0gAysDgAGgOQMoIAMgDCADKwN4oTkDGAuiAQICfAF/AkACf0H/////ByAAQd0gECYiA0UNABogABA4IQAgAxCpAiEBIABBAEgNAUEAIAFEAAAAAAAAAABjDQAaIAC4IQIgAUQAAAAAAADwP2QEQEH/////B0QAAMD////fQSABoyACYw0BGgsgASACoiIBmUQAAAAAAADgQWMEQCABqg8LQYCAgIB4Cw8LQdGXA0H7gAFBygBBxNwAEAAAC4gCAgd/AXwjAEEQayIEJAAgAEGM3AooAgBBCEEAEGMgABD3BbchCCAAKAIQIgEoAugBIQMgASgChAIhBSABKAKAAiEGA0AgAyABKALsAUpFBEACQCADQcgAbCIHIAEoAsQBaiICKAIARQ0AIAIoAgQoAgAiAkUEQCAAECAhASAEIAM2AgQgBCABNgIAQeG2BCAEEDYMAQsgBiACIAIoAhArA1ggCKAg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ECANIAEoAgQoAgAoAhArAxigOQMYCyALIA0QIiELIAMhAQwBCwsCQCAHRQ0AIAItAHRBAXFFDQAgAEEAEKcOIAAoAhAiAi0AlAJBAUcNACAEIAIoAuwBIgFByABsaigCBCgCACgCECsDGCEMIAIoAugBIQBEAAAAAAAAAAAhCwNAIAAgAU4NASALIAFByABsIARqQcQAaygCACgCACgCECsDGCINIAyhECIhCyANIQwgAUEBayEBDAALAAsCQCACLQCUAkEBRw0AIAIoAugBIQggAigC7AEhAwNAIAMiACAITA0BIAQgAEEBayIDQcgAbGoiASgCAEEATA0AIAEoAgQoAgAoAhAgCyAEIABByABsaigCBCgCACgCECsDGKA5AxgMAAsACyACQcABaiEBA0AgASgCACIABEAgACgCECIAIAQgACgC9AFByABsaigCBCgCACgCECsDGDkDGCAAQbgBaiEBDAELCwuHNQMQfwh8AX4jAEEQayIPJAAgACgCECgCwAEEQCAAEKEIIAAQsw5BzNsKLQAAQQFGBEAjAEGgAWsiCCQAAkAgACgCECIBKALsASABKALoAWtBAkgNACABKALEASEEQQEhAwNAIAQgA0EBaiIFQcgAbGooAgAEQEEAIQIDQCAEIANByABsIglqIgYoAgAgAkwEQCAFIQMMAwUCQCAGKAIEIAJBAnRqKAIAIgsQvQ5FDQAgAiEBA0ACQCABIgRBAWoiASAAKAIQKALEASAJaiIGKAIATg0AIAYoAgQgAUECdGooAgAiCigCECgCwAEoAgAhBiALKAIQKALAASgCACEHIAoQvQ5FDQAgB0EwQQAgBygCAEEDcUEDRxtqKAIoIAZBMEEAIAYoAgBBA3FBA0cbaigCKEcNACAHIAYQvA5FDQAgBigCECEGIAhB+ABqIgogBygCEEEQakEoEB8aIAhB0ABqIgcgBkEQakEoEB8aIAogBxDRDkUNAQsLIAEgAmtBAkgNACAAIAMgAiAEQQEQuw4LIAJBAWohAiAAKAIQIgEoAsQBIQQMAQsACwALC0EBIQQDQEEAIQIgA0EATARAA0AgBCAAKAIQIgEoArQBSg0DIARBAnQgBEEBaiEEIAEoArgBaigCABC6DkUNAAtB4+EEQQAQgQEFA0AgA0HIAGwiCSABKALEAWoiBSgCACACSgRAAkAgBSgCBCACQQJ0aigCACILELkORQ0AIAIhAQNAAkAgASIFQQFqIgEgACgCECgCxAEgCWoiBigCAE4NACAGKAIEIAFBAnRqKAIAIgooAhAoAsgBKAIAIQYgCygCECgCyAEoAgAhByAKELkORQ0AIAdBUEEAIAcoAgBBA3FBAkcbaigCKCAGQVBBACAGKAIAQQNxQQJHG2ooAihHDQAgByAGELwORQ0AIAYoAhAhBiAIQShqIAcoAhBBOGpBKBAfGiAIIAZBOGpBKBAfIgZBKGogBhDRDkUNAQsLIAEgAmtBAkgNACAAIAMgAiAFQQAQuw4LIAJBAWohAiAAKAIQIQEMAQsLIANBAWshAwwBCwsLIAhBoAFqJAALIAAoAhAiBCgC6AEhAgNAIAQoAuwBIAJOBEBBACEFIAJByABsIgMgBCgCxAFqIgcoAgAiCEEAIAhBAEobIQlBACEBA0AgASAJRwRAIAcoAgQgAUECdGooAgAoAhAiBiAFNgL4ASABQQFqIQEgBi0AtQFBBkYEfyAGKALsAQVBAQsgBWohBQwBCwsgBSAISgRAIAVBAWpBBBAZIQggACgCECIEKALEASADaigCACEBA0AgAUEASgRAIAggBCgCxAEgA2ooAgQgAUEBayIBQQJ0aigCACIGKAIQKAL4AUECdGogBjYCAAwBCwsgBCgCxAEgA2ogBTYCACAIIAVBAnRqQQA2AgAgBCgCxAEgA2ooAgQQGCAAKAIQIgQoAsQBIANqIAg2AgQLIAJBAWohAgwBCwsCf0EAIQsjAEEQayINJAAgACgCEEHAAWohAgNAAkAgAigCACIDBEBBACECIAMoAhAiASgC0AEiCEUNAQNAIAggAkECdGooAgAiBUUNAiAFELcOIAJBAWohAiADKAIQIgEoAtABIQgMAAsACwJAIAAoAhAiASgCxAEiAygCQEUEQCABKAK0AUEATA0BCyADKAIEIQVBACEIAkADQCAFIAhBAnRqKAIAIgJFDQIgAigCECgC2AEhBEEAIQICQANAIAQgAkECdGooAgAiBgRAAkAgBigCECIGKAJgRQ0AIAYtAHINACABKALoAQ0DIAMgASgC7AEiAUEBaiABQQNqQcgAEJ0BIQEgACgCECICIAFByABqNgLEASACKALsASECA0AgACgCECIDKALEASEBIAJBAE4EQCABIAJByABsaiIBIAFByABrQcgAEB8aIAJBAWshAgwBCwsgASACQcgAbGoiAUEANgIAIAFBADYCCEECQQQQQSICRQ0FIAFBADYCQCABIAI2AgQgASACNgIMIAFCgICAgICAgPg/NwMYIAFCgICAgICAgPg/NwMoIAFCgICAgICAgPg/NwMQIAFCgICAgICAgPg/NwMgIAMgAygC6AFBAWs2AugBDAYLIAJBAWohAgwBCwsgCEEBaiEIDAELC0G/mwNBwLwBQbsBQYbmABAAAAsgDUEINgIAQcj2CCgCAEHV7AMgDRAeGhAnAAsgABD5DiAAKAIQQcABaiECA0ACQCACKAIAIgUEQEEAIQhBACECIAUoAhAiAygC0AEiB0UNAQNAIAcgAkECdGooAgAiBARAAkAgBCgCECIBKAJgIgZFDQAgAS0AcgRAIAAoAhAtAHRBAXEEQCABIAYrAyA5A4gBDAILIAEgBisDGDkDiAEMAQsgBBC2DiAFKAIQIgMoAtABIQdBASELCyACQQFqIQIMAQsLA0AgCCADKALkAU8NAgJAIAMoAuABIAhBAnRqKAIAIgFBMEEAIAEoAgBBA3EiAkEDRxtqKAIoIgQgAUFQQQAgAkECRxtqKAIoIgZGDQAgASECIAQoAhAoAvQBIAYoAhAoAvQBRw0AA0AgAigCECIEKAKwASICDQALIAEoAhAiAiAELQByIgY6AHIgAigCYCICRQ0AIAYEQCAEIAJBIEEYIAAoAhAoAnRBAXEbaisDACIRIAQrA4gBIhIgESASZBs5A4gBDAELIAEQtg4gBSgCECEDQQEhCwsgCEEBaiEIDAALAAsgCwRAIwBBQGoiCSQAIAAiBSgCECIBKALoASEIA0ACQAJAAkAgASgC7AEgCE4EQCABKALEASAIQcgAbGohDkEAIQRCACEZA0AgDjQCACAZVQRAIA4oAgQgGadBAnRqKAIAIgMoAhAoAoABBEAgBEUEQCAJQeTwCSgCADYCEEG9hgEgCUEQakEAEOABIQQLIAkgGTcDACAJQRdqIgFBKUGGqwEgCRChARogBCABQQEQjgEiBkH04QBBGEEBEDUaIAMoAhAoAsgBIgIoAgQiAUFQQQAgASgCAEEDcUECRxtqKAIoKAIQKAL4ASEBIAIoAgAiAkFQQQAgAigCAEEDcUECRxtqKAIoKAIQKAL4ASECIAYoAhAiBiADNgIUIAYgAiABIAEgAkgbNgIQIAYgAiABIAEgAkobNgIMCyAZQgF8IRkMAQsLIARFDQIgBBA4QQJIDQFBACEGIAQQGyECA0AgAgRAIAQgAhAcIgMhAQNAIAEEQAJAIAEoAhAiBygCECACKAIQIgooAgxMBEBBASEGIAQgASACQQBBARBfGgwBCyAKKAIQIAcoAgxKDQAgBCACIAFBAEEBEF8aCyAEIAEQHCEBDAEFIAMhAgwDCwALAAsLIAZFDQEgBEGx3ABBARCTASEDIAQQOEEEEBkhECAEEDhBBBAZIQogBBAbIQYDQAJAAkAgBgRAIAYoAhAoAggNAiAEIAZBAUEBEJIIRQ0CIAQgBiADIAoQtQhFDQFBACEHIAMQOCEMA0AgAxAbIQECQAJAA0AgAUUNASAEIAFBAUEAEJIIBEAgAyABEBwhAQwBCwsgECAHQQJ0aiABKAIQKAIUNgIAIAMgARDUBCAEIAEQLSEBA0AgAUUNAiAEIAEQMCAEIAEQnAYhAQwACwALIAcgDEYEQCAKIAxBBEGlAxCYAUEAIQEgDEEAIAxBAEobIQIDQCABIAJGDQUgECABQQJ0IgdqKAIAIgwoAhAgByAKaigCACIHNgL4ASAOKAIEIAdBAnRqIAw2AgAgAUEBaiEBDAALAAtB1whB0LwBQZ4CQdA8EAAACyAHQQFqIQcMAAsACyAKEBggEBAYDAQLIAMQGyEBA0AgAUUNASADIAEQHCADIAEQ1AQhAQwACwALIAQgBhAcIQYMAAsACyAJQUBrJAAMAgsgBBC6AQsgCEEBaiEIIAUoAhAhAQwBCwsgBRCyCAsgDUEQaiQAIAsMBAsgA0G4AWohAgwACwALQQAhAgNAIAEoAuQBIAJNBEAgAUG4AWohAgwCBSABKALgASACQQJ0aigCACIFQVBBACAFKAIAQQNxIgRBAkcbaigCKCgCECgC9AEgBUEwQQAgBEEDRxtqKAIoKAIQKAL0AUYEQCAFELcOIAMoAhAhAQsgAkEBaiECDAELAAsACwALBEAgABCzDgsgACgCEEHAAWohAQNAIAEoAgAiBQRAIAUoAhAiASABKQPAATcDiAIgBSgCECIBIAEpA8gBNwOQAiAFKAIQIgQoAsgBIQNBACEBA0AgASICQQFqIQEgAyACQQJ0aigCAA0ACyAEKALAASEIQQAhAQNAIAEiA0EBaiEBIAggA0ECdGooAgANAAsgBEEANgLEASACIANqQQRqQQQQGSEBIAUoAhAiAkEANgLMASACIAE2AsABQQRBBBAZIQEgBSgCECICIAE2AsgBIAJBuAFqIQEMAQsLIAAoAhAiASgCxAEhDCAAKAJIKAIQLQBxIQIgDyABKAL4ASIDNgIIIA9BBSADIAJBAXEbNgIMIAEoAugBIQQDQCABKALsASAETgRAQQAhAiAMIARByABsaiIGKAIEKAIAKAIQQQA2AvQBIA9BCGogBEEBcUECdGooAgC3IRNEAAAAAAAAAAAhEgNAAkAgBigCACACSgRAIAYoAgQiASACQQJ0aigCACIIKAIQIgMgAysDYCIROQOAAiADKALkAUUNAUEAIQVEAAAAAAAAAAAhEQNAIAMoAuABIAVBAnRqKAIAIgEEQCABQTBBACABKAIAQQNxIgdBA0cbaigCKCABQVBBACAHQQJHG2ooAihGBEAgEQJ8RAAAAAAAAAAAIREgASgCECIDKAJgIQcCQAJAIAMtACxFBEAgAy0AVEEBRw0BCyADLQAxIglBCHENASADLQBZIgNBCHENASAJQQVxRQ0AIAMgCUYNAQtEAAAAAAAAMkAgB0UNARogB0EgQRggAUFQQQAgASgCAEEDcUECRxtqKAIoEC8oAhAtAHRBAXEbaisDAEQAAAAAAAAyQKAhEQsgEQugIREgCCgCECEDCyAFQQFqIQUMAQUgAyARIAMrA2CgIhE5A2AgBigCBCEBDAMLAAsACyAEQQFqIQQgACgCECEBDAMLIAEgAkEBaiICQQJ0aigCACIBBEAgCCABIBEgASgCECsDWKAgE6AiEUEAEKMBGiABKAIQAn8gEiARoCIRmUQAAAAAAADgQWMEQCARqgwBC0GAgICAeAsiATYC9AEgAbchEiAIKAIQIQMLAkAgAygCgAEiCUUNACADKAKQAiIDKAIAIgEgAygCBCIDIAFBUEEAIAEoAgAiC0EDcUECRxtqKAIoKAIQKAL4ASADQVBBACADKAIAIgpBA3FBAkcbaigCKCgCECgC+AFKIgUbIQcgACgCECgC+AEgCSgCECINKAKsAWxBAm23IREgB0FQQQAgAyABIAUbIgNBMEEAIAogCyAFG0EDcSIOQQNHG2ooAigiASADQVBBACAOQQJHG2ooAigiAxCiCAR/IAsgCiAFGwUgAyABIAEoAhArA1ggAygCECsDYCARoKAgDSgCnAEQowEaIAcoAgALQQNxIgNBAkcbaigCKCIBIAdBMEEAIANBA0cbaigCKCIDEKIIDQAgAyABIAEoAhArA1ggAygCECsDYCARoKAgCSgCECgCnAEQowEaC0EAIQUDQCAFIAgoAhAiASgC1AFPDQECfyABKALQASAFQQJ0aigCACIBQTBBACABKAIAQQNxIgdBA0cbaigCKCIDIAFBUEEAIAdBAkcbaigCKCIHIAMoAhAoAvgBIAcoAhAoAvgBSCILGyIJKAIQKwNgIAcgAyALGyIDKAIQKwNYoCIRIAAoAhAoAvgBIAEoAhAoAqwBbLegIhSZRAAAAAAAAOBBYwRAIBSqDAELQYCAgIB4CyEHAkAgCSADELEDIgsEQCALKAIQIgMgAygCrAEiCQJ/IAe3IhQgESAAKAIQKAL4AbegAn8gASgCECIBKwOIASIRRAAAAAAAAOA/RAAAAAAAAOC/IBFEAAAAAAAAAABmG6AiEZlEAAAAAAAA4EFjBEAgEaoMAQtBgICAgHgLt6AiESARIBRjGyIRmUQAAAAAAADgQWMEQCARqgwBC0GAgICAeAsiByAHIAlIGzYCrAEgAyADKAKcASIDIAEoApwBIgEgASADSBs2ApwBDAELIAEoAhAiASgCYA0AIAkgAyAHtyABKAKcARCjARoLIAVBAWohBQwACwALAAsLIAFBwAFqIQEDQCABKAIAIgQEQEEAIQMCQCAEKAIQIgUoApACIgFFDQADQCABIANBAnRqKAIAIgFFDQEgABCzAiICKAIQQQI6AKwBIAIgASABQTBqIgYgASgCAEEDcUEDRhsoAigCfyABKAIQIgUrAzggBSsDEKEiEZlEAAAAAAAA4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKMBGiACIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCjARogAigCECABIAYgASgCAEEDcSICQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgAkECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIANBAWohAyAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELEOIAAQsA4gABCvDiAAEK4OIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAEK0OIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKMBGgsCQCAAQQIgABCsDhDLBEUNACAAKAIQIgMoAugBIQUDQAJAAkAgAygC7AEiCyAFTgRAQQAhByADKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshAkEAIQEDQCABIAJGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANAIAogBEECdGooAgAiBkUNASAGQTBBACAGKAIAQQNxIgxBA0cbaigCKCgCECgC9AEgBUoNBCAEQQFqIQQgBSAGQVBBACAMQQJHG2ooAigoAhAoAvQBTg0ACwwDCyABQQFqIQEMAAsACyAAQQIgABCsDhDLBEUNA0H0mQNBzb4BQYsBQaflABAAAAsgASECCwJAIAdFIAIgCUhyRQRAIAhBzABBvH8gBSALSBtqKAIAKAIAIgJFDQEgCCgCBCgCACEDIAAQswIiASgCEEECOgCsASABIANEAAAAAAAAAABBABCjARogASACRAAAAAAAAAAAQQAQowEaIAEoAhAgAygCECgC9AEiASACKAIQKAL0ASICIAEgAkgbNgL0ASAAKAIQIQMLIAVBAWohBQwBCwtByN0AQc2+AUH0AEHj/QAQAAALIAAoAhAiASgC7AEhBSABKALoASEDIAEoAsQBIQQDQCADIAVMBEBBACEBIAQgA0HIAGxqIggoAgAiAkEAIAJBAEobIQYDQCABIAZHBEAgCCgCBCABQQJ0aigCACgCECICKAL0ASEHIAIgAzYC9AEgAiAHtzkDECABQQFqIQEMAQsLIANBAWohAwwBCwsgACAAEKsOAkAgACgCECIBKALsAUEATA0AIAEoAggiAigCVCIFRQ0AIAErACgiESABKwAYoSIUIAErACAiEiABKwAQoSIVIAEoAnRBAXEiAxshEyAVIBQgAxshFAJAAnwCQAJAAkACQAJAIAVBAWsOBQQABwEDBwsgAisDQCESDAELIAIrAzAiFUT8qfHSTWJQP2MNBSACKwM4IhZE/Knx0k1iUD9jDQUgFSACKwMgIhWhIBWhIhUgEqMiF0QAAAAAAADwP2YgFiACKwMoIhahIBahIhYgEaMiGEQAAAAAAADwP2ZxDQUgAiARIBYgESAXIBggFyAYYxsiF0QAAAAAAADgPyAXRAAAAAAAAOA/ZBsiF6IgFqOboiARo6I5A0ggAiASIBUgEiAXoiAVo5uiIBKjoiISOQNACyASRAAAAAAAAAAAZQ0EIBIgE6MiEkQAAAAAAADwP2MgAisDSCAUoyIRRAAAAAAAAPA/Y3JFDQMgESASZARAIBEgEqMhEUQAAAAAAADwPyESDAQLIBIgEaMMAgsgAisDQCITRAAAAAAAAAAAZQ0DIBMgEqMiEkQAAAAAAADwP2RFDQMgAisDSCARoyIRRAAAAAAAAPA/ZEUNAyASIBEQKiIRIRIMAgsgFCAToyIRIAIrAxAiEmMEQCASIBGjIRFEAAAAAAAA8D8hEgwCCyARIBKjCyESRAAAAAAAAPA/IRELIBEgEiADGyETIBIgESADGyERIAFBwAFqIQEDQCABKAIAIgEEQCABKAIQIgEgEyABKwMQohAyOQMQIAEgESABKwMYohAyOQMYIAFBuAFqIQEMAQsLIAAgEyAREKoOIAAoAhAhAQsgAUHAAWohAQNAIAEoAgAiAgRAQQAhAQNAIAIoAhAoAsgBIgUgAUECdGooAgAiAwRAIAMoAhAQGCADEBggAUEBaiEBDAELCyAFEBggAigCECgCwAEQGCACKAIQIgEgASkDkAI3A8gBIAIoAhAiASABKQOIAjcDwAEgAigCEEG4AWohAQwBCwsgACgCECgCwAEhAUEAIQMDQCABIgIEQCABKAIQIgUoArgBIQEgBS0ArAFBAkcEQCACIQMFAkAgAwRAIAMoAhAgATYCuAEMAQsgACgCECABNgLAAQsgBRAYIAIQGAsMAQsLIAAoAhAoAsABKAIQQQA2ArwBCyAPQRBqJAALtQMBBX8CQAJAIAAoAhAiAC0ArAFBAUcNACAAKAL4ASEGAkACQCAAKALEAQRAIAAoAsgBIQhBACEAA0AgCCAFQQJ0aigCACIHRQ0CIAAgACAHQVBBACAHKAIAQQNxQQJHG2ooAigoAhAoAvgBIgAgA05yIAAgAkwiBxshACAFQQFqIQUgBCAHciEEDAALAAsgACgCzAFBAkcNAyACIAAoAsgBIgQoAgAiAEFQQQAgACgCAEEDcUECRxtqKAIoKAIQKAL4ASIAIAQoAgQiBEFQQQAgBCgCAEEDcUECRxtqKAIoKAIQKAL4ASIFIAAgBUobIgROBEAgASAGNgIAQQghAAwCCyADIAAgBSAAIAVIGyIFTARAIAEgBjYCBEEMIQAMAgsgAyAESCACIAVKcQ0CIAIgBUcgAyAETHIgAiAFTHFFBEAgASAGNgIIC0EMIQAgAyAESA0BIAMgBEcNAiACIAVIDQEMAgsgBEF/cyAAckEBcUUEQCABIAZBAWo2AgALIABBf3MgBHJBAXENASAGQQFrIQZBBCEACyAAIAFqIAY2AgALDwtBlO4CQcC8AUE8QcI0EAAAC/QHAgt/BHwjAEEQayIGJAAgACgCECgCYARAIAAgAEEwaiIJIAAoAgBBA3FBA0YbKAIoEGIhByAAIAkgACgCAEEDcSIEQQNGIgIbKAIoKAIQKAL0ASEFIAcoAhAoAsQBIABBAEEwIAIbaigCKCgCECIDKAL0AUHIAGxqIgJBxABrKAIAIQggBiACQcgAaygCACICNgIMIAZBfzYCACAGQX82AgggBiACNgIEIAMoAvgBIgMgAEFQQQAgBEECRxtqKAIoKAIQKAL4ASIEIAMgBEgbIQogAyAEIAMgBEobIQtBfyEEIAIhAwNAIAEgA0gEQCAIIAFBAnRqKAIAIAYgCiALELUOIANBAWsiAyABRwRAIAggA0ECdGooAgAgBiAKIAsQtQ4LIAFBAWohASAGKAIEIgIgBigCACIEa0EBSg0BCwsgBigCDCAGKAIIaiACIARqIAIgBEgbQQFqQQJtIQMCfCAHKAIQIgEoAsQBIgggBUEBayIEQcgAbGoiAigCBCIKKAIAIgsEQCALKAIQKwMYIAIrAxChDAELIAggBUHIAGxqIgUoAgQoAgAoAhArAxggBSsDGKAgASgC/AG3oAshDSAKIAIoAgAiAkEBaiACQQJqQQQQnQEhAiAHKAIQKALEASAEQcgAbGoiASACNgIEIAEoAgAhAQNAIAEgA0xFBEAgAiABQQJ0aiIFIAVBBGsoAgAiBTYCACAFKAIQIgUgBSgC+AFBAWo2AvgBIAFBAWshAQwBCwsgAiADQQJ0aiIFIAcQswIiATYCACABKAIQIgEgBDYC9AEgASADNgL4ASAEQcgAbCIEIAcoAhAiAygCxAFqIgEgASgCAEEBaiIBNgIAIAIgAUECdGpBADYCACAAKAIQKAJgIgErAyAhDCABKwMYIQ4gAygCdCEIIAUoAgAiAigCECIDIAE2AnggAyAOIAwgCEEBcSIBGyIPOQNQIAMgDCAOIAEbRAAAAAAAAOA/oiIMOQNgIAMgDDkDWCADIA0gD0QAAAAAAADgP6IiDaA5AxggAiAAIAkgACgCAEEDcUEDRhsoAiggABDhASgCECIDIAIoAhArA1iaOQMQIAAgCSAAKAIAQQNxQQNGGygCKCgCECsDYCEMIANBBDoAcCADIAw5AzggAiAAIABBMGsiASAAKAIAQQNxQQJGGygCKCAAEOEBKAIQIgMgAigCECIJKwNgOQMQIAAgASAAKAIAQQNxQQJGGygCKCgCECsDWCEMIANBBDoAcCADIAw5AzggDSAHKAIQKALEASAEaiICKwMQZARAIAIgDTkDEAsgDSACKwMYZARAIAIgDTkDGAsgCSAANgKAAQsgBkEQaiQAC8kBAQR/IABBMEEAIAAoAgBBA3EiAkEDRxtqKAIoIgMoAhAoAvgBIgEgAEFQQQAgAkECRxtqKAIoKAIQKAL4ASICIAEgAkobIQQgASACIAEgAkgbIQEgAxBiKAIQKALEASADKAIQKAL0AUHIAGxqIQIDQAJAIAFBAWoiASAETg0AAkAgAigCBCABQQJ0aigCACgCECIDLQCsAQ4CAQACCyADKAJ4RQ0BCwsgASAERgRAA0AgACgCECIAQQE6AHIgACgCsAEiAA0ACwsLQgECfwJAIAAoAhAoAowCIAEoAhAiACgC9AFBAnRqIgIoAgAiAwRAIAMoAhAoAvgBIAAoAvgBTA0BCyACIAE2AgALCzcBAX8CQCAAKAIQIgAtAKwBQQFHDQAgACgCzAFBAUcNACAAKALEAUEBRw0AIAAoAnhFIQELIAEL3AYBCH8jAEEwayIFJAAgACgCECIBKALoASECA0AgAiABKALsAUpFBEAgASgCjAIgAkECdGpBADYCACACQQFqIQIgACgCECEBDAELCyAAEJMPIAAQGyEDA0AgAwRAIAAgAxC4DiAAIAMQLSEEA0AgBCIBBEADQCABIgIoAhAoArABIgENAAsgBEEoaiEBA0ACQCACRQ0AIAIgAkEwayIGIAIoAgBBA3FBAkYbKAIoIgcoAhAoAvQBIAFBUEEAIAQoAgBBA3FBAkcbaigCACgCECgC9AFODQAgACAHELgOIAIgBiACKAIAQQNxQQJGGygCKCgCECgCyAEoAgAhAgwBCwsgACAEEDAhBAwBBSAAIAMQHCEDDAMLAAsACwsgACgCECICKALoASEDQQEhBwJ/A0ACQCACKALsASADSARAA0BBACAAKAIQIgEoArQBIAdIDQQaIAdBAnQgB0EBaiEHIAEoArgBaigCABC6DkUNAAwCCwALIANBAnQiBCACKAKMAmooAgAiAUUEQCAFIAM2AgBB/MQEIAUQNgwBCyABIANByABsIgggABBiKAIQKALEAWooAgQgASgCECgC+AFBAnRqKAIARwRAIAEQICEAIAEoAhAoAvgBIQEgBSADNgIoIAUgATYCJCAFIAA2AiBBpsUEIAVBIGoQNgwBCyAAEGIhASAAKAIQIgYoAsQBIgIgCGogASgCECgCxAEgCGooAgQgBigCjAIgBGooAgAoAhAoAvgBQQJ0ajYCBEF/IQFBACEGA0AgASEEAn8CQAJAIAYgAiAIaiIBKAIATg0AIAEoAgQgBkECdGooAgAiAkUNACACKAIQIgEtAKwBDQEgBiAAIAIQrgENAhoLIARBf0YEQCAAECAhASAFIAM2AhQgBSABNgIQQcvDBCAFQRBqECsLIAAoAhAiAigCxAEgCGogBEEBajYCACADQQFqIQMMBAsgASgCwAEoAgAhAQJAA0AgASICRQ0BIAIoAhAoAngiAQ0ACyAAIAJBMEEAIAIoAgBBA3FBA0cbaigCKBCuAUUNACAGIAQgACACQVBBACACKAIAQQNxQQJHG2ooAigQrgEbDAELIAQLIQEgBkEBaiEGIAAoAhAoAsQBIQIMAAsACwtBfwsgBUEwaiQAC5EFAQl/IAFByABsIg0gACgCECgCxAFqKAIEIAJBAnRqKAIAIQkgAkEBaiIHIQoDQAJAAkAgAyAKSARAIAFByABsIQQDQCADQQFqIgMgACgCECgCxAEiBiAEaiICKAIATg0CIAIoAgQiAiAHQQJ0aiACIANBAnRqKAIAIgI2AgAgAigCECAHNgL4ASAHQQFqIQcMAAsACyAAKAIQKALEASANaigCBCAKQQJ0aigCACEIIAQEQANAIAgoAhAiAigCyAEoAgAiBUUNAyAFQShqIQsgCSgCECgCyAEhDEEAIQICQANAIAwgAkECdGooAgAiBgRAIAJBAWohAiAGQVBBACAGKAIAQQNxQQJHG2ooAiggC0FQQQAgBSgCAEEDcUECRxtqKAIARw0BDAILCyAJIAVBUEEAIAUoAgBBA3FBAkcbaigCKCAFEOEBIQYLA0AgCCgCECgCwAEoAgAiAgRAIAIgBhCIAyACEI8CDAELCyAFEI8CDAALAAsDQCAIKAIQIgIoAsABKAIAIgVFDQIgBUEoaiELIAkoAhAoAsABIQxBACECAkADQCAMIAJBAnRqKAIAIgYEQCACQQFqIQIgBkEwQQAgBigCAEEDcUEDRxtqKAIoIAtBMEEAIAUoAgBBA3FBA0cbaigCAEcNAQwCCwsgBUEwQQAgBSgCAEEDcUEDRxtqKAIoIAkgBRDhASEGCwNAIAgoAhAoAsgBKAIAIgIEQCACIAYQiAMgAhCPAgwBCwsgBRCPAgwACwALIAIgBzYCACAGIAFByABsaigCBCAHQQJ0akEANgIADwsgAigCxAFBACACKALMAWtGBEAgACAIEIUGIApBAWohCgwBCwtBopoDQabCAUHxAEHQ8wAQAAALyQEBA38CQANAIABFDQEgACgCECIDLQBwBEAgAygCeCEADAELCwNAIAFFDQEgASgCECIELQBwBEAgBCgCeCEBDAELCyADLQCZAQ0AIAQtAJkBDQAgAEEwQQAgACgCAEEDcSICQQNHG2ooAigoAhAoAvQBIABBUEEAIAJBAkcbaigCKCgCECgC9AFrIAFBMEEAIAEoAgBBA3EiAEEDRxtqKAIoKAIQKAL0ASABQVBBACAAQQJHG2ooAigoAhAoAvQBa2xBAEohAgsgAgs3AQF/AkAgACgCECIALQCsAUEBRw0AIAAoAsQBQQFHDQAgACgCzAFBAUcNACAAKAJ4RSEBCyABC+EBAQZ/IABBMEEAIAAoAgBBA3EiAkEDRxtqIQUgAEFQQQAgAkECRxtqKAIoKAIQKALAASEGQQAhAANAIAYgA0ECdGooAgAiAgRAAkAgAkEwQQAgAigCAEEDcUEDRxtqKAIoKAIQKAL4ASIHIAUoAigoAhAoAvgBayABbEEATA0AIAIoAhAiBCgCCEUEQCAEKAJ4IgRFDQEgBCgCECgCCEUNAQsgAARAIABBMEEAIAAoAgBBA3FBA0cbaigCKCgCECgC+AEgB2sgAWxBAEwNAQsgAiEACyADQQFqIQMMAQsLIAAL4QEBBn8gAEFQQQAgACgCAEEDcSICQQJHG2ohBSAAQTBBACACQQNHG2ooAigoAhAoAsgBIQZBACEAA0AgBiADQQJ0aigCACICBEACQCACQVBBACACKAIAQQNxQQJHG2ooAigoAhAoAvgBIgcgBSgCKCgCECgC+AFrIAFsQQBMDQAgAigCECIEKAIIRQRAIAQoAngiBEUNASAEKAIQKAIIRQ0BCyAABEAgAEFQQQAgACgCAEEDcUECRxtqKAIoKAIQKAL4ASAHayABbEEATA0BCyACIQALIANBAWohAwwBCwsgAAtKAgF8AX8CQCABKAIQIgErAxAiAiAAKAIQIgArAxBmRQ0AIAIgACsDIGVFDQAgASsDGCICIAArAxhmRQ0AIAIgACsDKGUhAwsgAwvGAgEFfwJAIAEoAhAiAS0ArAFFBEAgASgC6AEiAyEEDAELIAEoAsgBKAIAKAIQKAJ4IgFBUEEAIAEoAgBBA3EiA0ECRxtqKAIoKAIQKALoASEEIAFBMEEAIANBA0cbaigCKCgCECgC6AEhAwsgAigCECIBLQCsAUUEQCABKALoASIBQQAgACABRxsiAEEAIAAgBEcbQQAgACADRxtBACAAGw8LAkACQCABKALIASgCACgCECgCeCIGQTBBACAGKAIAQQNxIgdBA0cbaigCKCgCECgC6AEiAUEAIAAgAUcbIgVFIAMgBUZyIAQgBUZyRQRAIAUgAhDADg0BCyAGQVBBACAHQQJHG2ooAigoAhAoAugBIgFBACAAIAFHGyIARSAAIANGcg0BQQAhASAAIARGDQAgAEEAIAAgAhDADhshAQsgAQ8LQQALoAQBCH8gACgCECgCxAEgASgCECIIKAL0AUHIAGxqIQkgCCgC+AEiCiEHAkADQAJAIAQgB2oiB0EASA0AIAcgCSgCAE4NAAJAAkAgCSgCBCAHQQJ0aigCACILKAIQIgEtAKwBDgIEAAELIAEoAngNAwsgASgC+AEhDAJAIAEoAswBQQFHBEAgCCgCzAFBAUcNBAwBCyADRQ0AIAEoAsgBKAIAIQBBACEGIAMhBQNAIAZBAkYNASAAQVBBACAAKAIAQQNxQQJHG2ooAigiACAFQVBBACAFKAIAQQNxQQJHG2ooAigiBUYNASAKIAxIIAAoAhAiACgC+AEgBSgCECIFKAL4AUxGDQMgACgCzAFBAUcNASAALQCsAUUNASAFKALMAUEBRw0BIAUtAKwBRQ0BIAAoAsgBKAIAIQAgBkEBaiEGIAUoAsgBKAIAIQUMAAsACyACRQ0CIAEoAsQBQQFHDQIgASgCwAEoAgAhAUEAIQUgAiEAA0AgBUECRg0DIAFBMEEAIAEoAgBBA3FBA0cbaigCKCIBIABBMEEAIAAoAgBBA3FBA0cbaigCKCIGRg0DIAogDEggASgCECIAKAL4ASAGKAIQIgYoAvgBTEYNAiAAKALEAUEBRw0DIAAtAKwBRQ0DIAYoAsQBQQFHDQMgBi0ArAFFDQMgACgCwAEoAgAhASAFQQFqIQUgBigCwAEoAgAhAAwACwALC0EAIQsLIAsLgQICAX8EfCMAQSBrIgckACAHIAAgASADQQAgBBCvAyAFIAcpAxg3AxggBSAHKQMQNwMQIAUgBykDCDcDCCAFIAcpAwA3AwAgBUEBNgIwIAUrAxAhCCAFKwMAIQkCQCAGBEAgAiAEQQIgBUEAEIcFDAELIAIgBEECIAVBABCGBQsCQCAIIAlkRQ0AIAMoAhAiASsDGCAAKAIQKALEASABKAL0AUHIAGxqKwMYoSIKIAVBOGoiASAFKAI0IgBBBXRqQRhrKwMAIgtjRQ0AIAUgAEEBajYCNCABIABBBXRqIgAgCzkDGCAAIAg5AxAgACAKOQMIIAAgCTkDAAsgB0EgaiQACzwBAn8jAEEQayICJAADQCAAKAIIIAFNBEAgAEIANwIEIAJBEGokAAUgAiAAIAEQxAQgAUEBaiEBDAELCws8AQJ/IwBBIGsiAiQAA0AgACgCCCABTQRAIABCADcCBCACQSBqJAAFIAIgACABENIEIAFBAWohAQwBCwsLmgICBH8DfCAAQVBBACAAKAIAQQNxQQJHG2ohAkEAIQADQAJAIAIoAigiBCgCEC0ArAFBAUcNACAEQZjRCigCABECAA0AIAAgASgCUCICIAAgAksbIQUDQCAAIAVGDQEgBCgCECICKwMYIgYgASgCVCAAQQV0aiIDKwMIYwRAIABBAWohAAwBCwsCQCADKwMYIAZjDQAgAysDECEGIAMrAwAhByACKAJ4BEAgAiAGOQMQIAIgBiAHoTkDWCACIAYgAisDYKAgBqE5A2AMAQsgAiAHIAagRAAAAAAAAOA/oiIIOQMQIAIgBiAIoTkDYCACIAggB6E5A1gLIAIoAsgBKAIAIgJBUEEAIAIoAgBBA3FBAkcbaiECDAELCwscACAAEMUOIAAoAgAQGCAAQgA3AgggAEIANwIAC4wHAgR/AnwjAEGAAWsiBiQAIAFBfxC/DiEHIAFBARC/DiEBAkAgBwRAIAcQlwNFDQELIAEEQCABEJcDRQ0BCyACQX8Qvg4hASACQQEQvg4hAiABBEAgARCXA0UNAQsgAgRAIAIQlwNFDQELIANBOGohB0EAIQEDQCADKAI0IAFMBEAgACgCUCICQQFqIgcgBSgCCCIDaiEIQQAhAQNAIAEgA08EQCAEQThqIQMgBCgCNCEFA0AgBUEATARAIAIgCEECayIBIAEgAkkbIQQgAiEBA0AgASAERgRAIAhBA2shCEEBIAAoAlAiASABQQFNG0EBayEJQQAhBQNAIAUiASAJRg0JIAAoAlQiBCABQQFqIgVBBXRqIQMgBCABQQV0aiEEIAEgB2tBAXEgASAHSSABIAhLcnJFBEAgBCsDAEQAAAAAAAAwQKAiCiADKwMQZARAIAMgCjkDEAsgBCsDEEQAAAAAAAAwwKAiCiADKwMAY0UNASADIAo5AwAMAQsgASACa0EBcSAFIAdJIAEgCE9ycg0AIAMrAxAiCiAEKwMARAAAAAAAADBAoGMEQCAEIApEAAAAAAAAMMCgOQMACyADKwMAIgogBCsDEEQAAAAAAAAwwKBkRQ0AIAQgCkQAAAAAAAAwQKA5AxAMAAsABSAAKAJUIAFBBXRqIgMrAwAhCgJAIAEgB2tBAXFFBEAgCiADKwMQIgtmRQ0BIAMgCiALoEQAAAAAAADgP6IiCkQAAAAAAAAgQKA5AxAgAyAKRAAAAAAAACDAoDkDAAwBCyADKwMQIgsgCkQAAAAAAAAwQKBjRQ0AIAMgCiALoEQAAAAAAADgP6IiCkQAAAAAAAAgQKA5AxAgAyAKRAAAAAAAACDAoDkDAAsgAUEBaiEBDAELAAsABSAGIAMgBUEBayIFQQV0aiIBKQMYNwNYIAYgASkDEDcDUCAGIAEpAwg3A0ggBiABKQMANwNAIAAgBkFAaxDvAQwBCwALAAUgBkHgAGogBSABENIEIAYgBikDeDcDOCAGIAYpA3A3AzAgBiAGKQNoNwMoIAYgBikDYDcDICAAIAZBIGoQ7wEgAUEBaiEBIAUoAgghAwwBCwALAAUgBiAHIAFBBXRqIgIpAxg3AxggBiACKQMQNwMQIAYgAikDCDcDCCAGIAIpAwA3AwAgACAGEO8BIAFBAWohAQwBCwALAAsgBkGAAWokAAvOAQECfyAAIAEoAiAgA0EFdGoiBEEQaikDADcDECAAIAQpAwA3AwAgACAEKQMYNwMYIAAgBCkDCDcDCCAAKwMAIAArAxBhBEAgAigCECgCxAEgA0HIAGxqIgIoAgQoAgAhAyACKAJMKAIAIQUgACABKwMAOQMAIAAgBSgCECsDGCACKwNgoDkDCCAAIAErAwg5AxAgACADKAIQKwMYIAIrAxChOQMYIAQgACkDEDcDECAEIAApAwg3AwggBCAAKQMANwMAIAQgACkDGDcDGAsL4AMCAX8IfCMAQaABayIGJAAgAiADQQJ0aiICKAIAKAIQIgMrAEAgASgCECIBKwAYIAMrADggASsAEKAhCSADKwAYIAAoAhAiACsAGKAhDiADKwAQIAArABCgIQsgBEECTwRAIAArA1AiDEQAAAAAAADgP6IhByAMIARBAWu4oyEMC6AhCiAOIAehIQcgCSAJoCALoEQAAAAAAAAIQKMhDSALIAugIAmgRAAAAAAAAAhAoyEIIAVBB3FBAkchAEEAIQMDQCADIARGRQRAIAIgA0ECdGooAgAhBSAGIA45AwggBiALOQMAAn8gAEUEQCAGIAo5AzggBiAJOQMwIAYgBzkDKCAGIA05AyAgBiAHOQMYIAYgCDkDEEEEDAELIAYgCjkDmAEgBiAJOQOQASAGIAo5A4gBIAYgCTkDgAEgBiAHOQN4IAYgDTkDcCAGIAc5A2ggBiANOQNgIAYgBzkDWCAGIA05A1AgBiAHOQNIIAYgCDkDQCAGIAc5AzggBiAIOQMwIAYgBzkDKCAGIAg5AyAgBiAOOQMYIAYgCzkDEEEKCyEBIAUgBUFQQQAgBSgCAEEDcUECRxtqKAIoIAYgAUGU0QoQngEgA0EBaiEDIAwgB6AhBwwBCwsgBkGgAWokAAskACAAIAEgAkEAQQEQXyIAQfgoQbgBQQEQNRogAyAAELAFIAALrgUBBn8jAEEgayICJAAgACABECBBARCOASIHQYUpQcACQQEQNRogASAHELAFAkAgARDeAkECRw0AIAJCADcDGCACQgA3AxAgAiABKAIQKAJ4KAIANgIAIAJBEGohACMAQTBrIgEkACABIAI2AgwgASACNgIsIAEgAjYCEAJAAkACQAJAAkACQEEAQQBBiwggAhBhIgZBAEgNAEEBIQQgBkEBaiEDAkAgBiAAEEggABAkayIFTwRAIAAQKEEAIAMgBWsiBUEBRhsNASAAIAUQlQQLQQAhBAsgAUIANwMYIAFCADcDECAEIAZBEE9xDQEgAUEQaiEFIAYgBAR/IAUFIAAQdQsgA0GLCCABKAIsEGEiA0cgA0EATnENAiADQQBMDQAgABAoBEAgA0GAAk8NBCAEBEAgABB1IAFBEGogAxAfGgsgACAALQAPIANqOgAPIAAQJEEQSQ0BQb65A0GvgQFB2AFBnB8QAAALIAQNBCAAIAAoAgQgA2o2AgQLIAFBMGokAAwEC0GmqANBr4EBQcsBQZwfEAAAC0HWnANBr4EBQdABQZwfEAAAC0HLzgFBr4EBQdMBQZwfEAAAC0G8oQFBr4EBQdoBQZwfEAAACwJAIAAQKARAIAAQJEEPRg0BCyACQRBqIgAQJCAAEEhPBEAgAEEBEJUECyACQRBqIgAQJCEBIAAQKARAIAAgAWpBADoAACACIAItAB9BAWo6AB8gABAkQRBJDQFBvrkDQa+BAUGdAkGutQEQAAALIAIoAhAgAWpBADoAACACIAIoAhRBAWo2AhQLAkAgAkEQahAoBEAgAkEAOgAfDAELIAJBADYCFAsgAkEQaiIAECghASAHQbXzACAAIAIoAhAgARsQ5wEgAi0AH0H/AUcNACACKAIQEBgLIAJBIGokACAHC5oCAQF/AkAgAQ0AIABBMEEAIAAoAgBBA3EiAUEDRxtqKAIoIgIgAEFQQQAgAUECRxtqKAIoIgFGBEBBBCEBIAAoAhAiAi0ALA0BQQRBCCACLQBUGyEBDAELQQJBASACKAIQKAL0ASABKAIQKAL0AUYbIQELQRAhAgJAAkACQCABQQFrDgIAAQILQRBBICAAQTBBACAAKAIAQQNxIgJBA0cbaigCKCgCECgC9AEgAEFQQQAgAkECRxtqKAIoKAIQKAL0AUgbIQIMAQtBEEEgIABBMEEAIAAoAgBBA3EiAkEDRxtqKAIoKAIQKAL4ASAAQVBBACACQQJHG2ooAigoAhAoAvgBSBshAgsgACgCECACQYABciABcjYCpAELPgAgACgCACEAIAMEQCABIAAoAhAoAgBBAiACQQAQISIBBH8gAQUgACgCECgCAEECIAJB9YQFECELIAMQcwsLRgICfwF8IAAQGyEBA0AgAQRAIAEoAhAiAigC4AEEQCACKwOAAiEDIAIgAikDYDcDgAIgAiADOQNgCyAAIAEQHCEBDAELCwunhwEDX38RfAJ+IwBB4CVrIgIkACACQeAFakEAQeAAEDMaIAAoAhAvAYgBIQYgAiACQegIajYC4AYCQCAGQQ5xIhNFDQACQAJAIBNBBEYEQCAAEM8OIAAoAkgoAhAtAHFBAXFFDQFBp+sDQQAQKwwBCyATQQhHDQAgABDPDgJAAkAgACgCSCgCEC0AcUEBcSIDRQ0AIAAoAhBBwAFqIQsDQCALKAIAIgFFDQECQCABKAIQIgstAKwBQQFHDQACQCALKAKAASIGBEAgBigCECgCYCIFRQ0FIAUgCykDEDcDOCAFQUBrIAspAxg3AwAgBUEBOgBRDAELIAsoAngiBUUNASABEKYICyAAIAUQhgIgASgCECELCyALQbgBaiELDAALAAsgACADEMgPDAILQdL1AEGcvQFB3QFBqC4QAAALIAAQoQhBsP4KQbD+CigCACIGQQFqNgIAAkAgBkEASg0AQbj+CkEANgIAQbT+CkEANgIAQZzbCi0AAEUNAEHA4AoQrAELIAJCADcDwAUgAkIANwO4BSAAKAIQKAL4ASEDIAJCADcD2AUgAiADtzkD0AUgAiADQQRttzkDyAVBgAFBBBAZIQ8gACgCECIKKALoASEGA0ACQAJAIAooAuwBIAZOBEAgCigCxAEiBSAGQcgAbCIJaiIDKAIEIgQoAgAiBwRAIAIgAisDuAUiYSAHKAIQIgcrAxAgBysDWKEiYiBhIGJjGzkDuAULAnwgAygCACIDRQRAIAIrA8AFDAELIAIrA8AFImEgBCADQQJ0akEEaygCACIERQ0AGiBhIAQoAhAiBCsDECAEKwNgoCJiIGEgYmQbCyFhIAMgCGohCCACIGFEAAAAAAAAMECgOQPABSACIAIrA7gFRAAAAAAAADDAoDkDuAVBACEMA0AgAyAMTA0DAkAgBSAJaigCBCAMQQJ0aigCACIFKAIQIgMoAoABIgQEfyAEKAIQKAJgIgdFDQQgByADKQMQNwM4IAdBQGsgAykDGDcDACAEKAIQKAJgQQE6AFEgBSgCEAUgAwstAKwBBEAgBUGY0QooAgARAgBFDQELQQAhAwNAIAUoAhAiBCgCyAEgA0ECdGooAgAiBwRAAkACQCAHKAIQIgQtAHBBBGsOAwEAAQALIARB0QA2AqQBIA8gC0ECdGogBzYCACALQQFqIgRB/wBxRQRAIA8gBCALQYEBakEEEJ0BIQ8LIAQhCwsgA0EBaiEDDAELC0EAIQMCQCAEKALQASIQRQ0AA0AgECADQQJ0aigCACIHRQ0BIAdBAhDNDiAPIAtBAnRqIAc2AgAgC0EBaiIHQf8AcUUEQCAPIAcgC0GBAWpBBBCdASEPCyADQQFqIQMgBSgCECIEKALQASEQIAchCwwACwALIAQoAuABRQ0AIAQtAKwBRQRAIAQrA4ACIWEgBCAEKQNgNwOAAiAEIGE5A2ALQQAhAwNAIAUoAhAoAuABIANBAnRqKAIAIgRFDQEgBEEAEM0OIA8gC0ECdGogBDYCACALQQFqIgRB/wBxRQRAIA8gBCALQYEBakEEEJ0BIQ8LIANBAWohAyAEIQsMAAsACyAMQQFqIQwgACgCECIKKALEASIFIAlqKAIAIQMMAAsACyAPIAtBBEGpAxCYASACIAhB6AJqQSAQGTYCtAYgAiAGQSAQGTYC2AUCQCATQQJHIhoNACAAKAIQQcABaiEDA0AgAygCACIGRQ0BAkAgBigCECIDLQCsAUEBRw0AIAMoAnhFDQAgBhCmCCAGKAIQIQMLIANBuAFqIQMMAAsACyATQQZGISggAkHoB2ohNCACQcAHaiE1IAJBwCBqIRsgAkGwIGohFCACQdAgaiEVIAJBkBtqITYgAkGgG2ohFiACQdggaiEXIAJByApqITcgAkHYCmohISACQZAQaiEcIAJB0BpqISkgAkHAGmohKiACQbAaaiEgIAJBoBpqISIgAkGQGmohKyACQYAaaiEsIAJB8BdqITggAkHIF2ohOSACQdAWaiEtIAJBgBdqIS4gAkGYG2ohOiACQcAZaiE7IAJBsApqITwgAkGIGWohLyACQbgZaiEwIAJB6A9qITEgAkHoGWohMiACQZgaaiEzIAJByAZqIT0gAkH4BmohPiATQQRHIT8gE0EKRyEdQQAhEANAAkACQCALIBAiB0sEQCAPIAdBAnRqIhEoAgAiCBD2AyEOAkAgCCgCECIDLQAsBEAgCCEFDAELIAggDiADLQBUGyIFKAIQIQMLAkAgAy0ApAFBIHFFBEAgAyEEDAELIAIoAuAGIgQgA0G4ARAfIQYgAkHQBmoiAyAFQTAQHxogAiAGNgLgBkEoQdgAIAIoAtAGQQNxIglBA0YbIANqIAVBUEEAIAUoAgBBA3EiEEECRxtqKAIoNgIAID4gPSAJQQJGGyAFQTBBACAQQQNHG2ooAig2AgAgBkEQaiAFKAIQQThqQSgQHxogBkE4aiAFKAIQQRBqQSgQHxogBiAFNgJ4IAZBAToAcCADIQULQQEhDCAHIRADQAJAIBBBAWoiECALTw0AIA4gDyAQQQJ0aiIKKAIAIgkQ9gMiBkcNACAIKAIQLQByRQRAAkAgCSgCECIDLQAsBEAgCSEGDAELIAkgBiADLQBUGyIGKAIQIQMLIAMtAKQBQSBxBEAgAkGwB2oiDSADQbgBEB8aIAYoAgAhAyACIAYoAig2AsgGIAJByAZqIAJBwAZqIANBA3EiA0EDRiIEGyAGQVBBACADQQJHG2ooAig2AgAgAiAGQQBBMCAEG2ooAig2AsgGIDUgBigCECIDQThqQSgQHxogNCADQRBqQSgQHxogAiAGNgKoCCACQQE6AKAIIAUoAhAhBCANIQMLIAQtACwhBiADLQAsQQFxBH8gBkEBcUUNAiAEKwAQImEgAysAECJiZCBhIGJjcg0CIAQrABgiYSADKwAYImJjDQIgYSBiZAUgBgsNASAELQBUIQYgAy0AVEEBcQR/IAZBAXFFDQIgBCsAOCJhIAMrADgiYmQgYSBiY3INAiAEKwBAImEgAysAQCJiYw0CIGEgYmQFIAYLDQEgCCgCECIDKAKkAUEPcUECRgRAIAMoAmAgCSgCECgCYEcNAgsgCigCACgCEC0ApAFBwABxDQELIAxBAWohDAwBCwsgP0UEQCAMQQQQGSIGIBEoAgAQ9gM2AgBBASEDQQEgDCAMQQFNGyEEA0AgAyAERgRAIAAgBiAMIBNBlNEKEKsPIAYQGAwGBSAGIANBAnQiB2ogByARaigCADYCACADQQFqIQMMAQsACwALIAhBMEEAIAgoAgBBA3EiBEEDRxtqKAIoIgUoAhAiBigC9AEhAyAIQVBBACAEQQJHG2ooAigiBCAFRgRAIA8gByAMIAIrA9AFAnwgACgCECIEKALsASADRgRAIANBAEoEQCAEKALEASADQcgAbGpBxABrKAIAKAIAKAIQKwMYIAYrAxihDAILIAYrA1AMAQsgBCgC6AEgA0YEQCAGKwMYIAQoAsQBIANByABsaigCTCgCACgCECsDGKEMAQsgBCgCxAEgA0HIAGxqIgNBxABrKAIAKAIAKAIQKwMYIAYrAxgiYaEiYiBhIAMoAkwoAgAoAhArAxihImEgYSBiZBsLRAAAAAAAAOA/okGU0QoQ8gZBACEDA0AgAyAMRg0FIA8gAyAHakECdGooAgAoAhAoAmAiBgRAIAAgBhCGAgsgA0EBaiEDDAALAAsgAyAEKAIQKAL0AUcNASACIAJBuBdqIgM2AugWIBEoAgAiBCgCECIGLQByIQUgBi0ApAFBIHEEQCADIAZBuAEQHxogAkHYFmoiBiAEQTAQHxogAiADNgLoFkEoQdgAIAIoAtgWQQNxIghBA0YbIAZqIARBUEEAIAQoAgBBA3FBAkcbaigCKDYCACAuIC0gCEECRhsgBEEwQQAgBCgCAEEDcUEDRxtqKAIoNgIAIDkgBCgCEEE4akEoEB8aIDggBCgCEEEQakEoEB8aIAIgBDYCsBggAkEBOgCoGCAGIQQgAyEGC0EBIQNBASAMIAxBAU0bIQgCQANAIAMgCEcEQCADQQJ0IANBAWohAyARaigCACgCEC0AckUNAQwCCwsgBUUNAwsgBEEoQXggBCgCAEEDcSIDQQJGG2ooAgAhCAJAIARBKEHYACADQQNGG2ooAgAiBBDeAkECRwRAQQAhBUEAIQZBACEDIAgQ3gJBAkcNAQtBgP8KLQAAQYD/CkEBOgAAQQFxDQRB6+sDQQAQKyAEECAhAyAAEP0BIQYgAiAIECA2AqgCIAJBreABQcOeAyAGGzYCpAIgAiADNgKgAkHp9AMgAkGgAmoQgQEMBAsDQCADIAxGBEAgBkEBcQRAIAJB4PAJQejwCSAAEP0BGygCADYCtAJBACEDQZWCASACQbQCakEAEOABIgdB6yhBmAJBARA1GiAHQQBBmfcAQfWEBRAhGkEBQeAAEBkhCSAHKAIQIgYgCTYCCCAJIAAoAhAiBSgCCCINKwMAOQMAIAkgDSsDGDkDGCAGIAUtAHM6AHMgBiAFKAJ0QX9zQQFxNgJ0IAYgBSgC+AE2AvgBIAYgBSgC/AE2AvwBQQAhBQNAIAAQN0EBIAUQ5wMiBQRAIAUoAgwQeCAFKAIMIQYgBSgCCCEJBH8gB0EBIAkgBhDpAwUgB0EBIAkgBhAhCxoMAQsLA0AgABA3QQIgAxDnAyIDBEAgAygCDBB4IAMoAgwhBiADKAIIIQUEfyAHQQIgBSAGEOkDBSAHQQIgBSAGECELGgwBCwsgB0ECQfMbQQAQIUUEQCAHQQJB8xtB9YQFECEaCyAHQQJBtxtBABAhRQRAIAdBAkG3G0H1hAUQIRoLQfzbCigCACEYQeDbCigCACEZQezcCigCACEeQbjcCigCACEfQdzcCigCACEjQdjcCigCACEkQdDcCigCACElQdTcCigCACEmQcjcCigCACFAQcTcCigCACFBQczcCigCACFCQcDcCigCACFDQbTcCigCACFEQbDcCigCACFFQazcCigCACFGQajcCigCACFHQaTcCigCACFIQbzcCigCACFJQZjcCigCACFKQZTcCigCACFLQZDcCigCACFMQaTdCigCACFNQdjdCigCACFOQfDdCigCACFPQdzdCigCACFQQeDdCigCACFRQeTdCigCACFSQcjdCigCACFTQaDdCigCACFUQdTdCigCACFVQfTdCigCACFWQZTdCigCACFXQZjdCigCACFYQZzdCigCACFZQYjdCigCACFaQYTdCigCACFbQdDdCigCACFcQczdCigCACFdQajdCigCACFeQbzdCigCACFfQbzdCkEANgIAQajdCiAHQQJBpzpBABAhNgIAQczdCiAHQQJBibQBQQAQITYCAEHQ3QogB0ECQezxAEEAECE2AgBBhN0KIAdBAkGEIUEAECEiAzYCACADRQRAQYTdCiAHQQJBhCFB9YQFECE2AgALQQAhBkGc3QpBADYCAEGI3QpBADYCAEGY3QogB0ECQbOcAUEAECE2AgBBlN0KIAdBAkGCjAFBABAhNgIAQfTdCiAHQQJBr90AQQAQITYCAEHU3QpBADYCAEGg3QogB0ECQbXzAEEAECE2AgBByN0KIAdBAkHFJ0EAECE2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ByAEIgFFBEAgByEEDAELA0AgASIIKAIAIgENAAsgCCAHNgIACyAFQQFqIQUMAAsACyADQaABaiQAIAQLfQEEfyAAQShqIQICQCAAKAIEQQBKBEADQCABQcAARg0CIAIgAUEobGoiAygCACIEBEAgBBDbDiADKAIAEBggACABENwOCyABQQFqIQEMAAsACwNAIAFBwABGDQEgAiABQShsaigCAARAIAAgARDcDgsgAUEBaiEBDAALAAsLXQACQCAARSABQcAAT3JFBEAgACABQShsaiIBKAIoRQ0BIAFBCGoQ3g4gACAAKAIAQQFrNgIADwtBwtwBQenBAUGtAUG6/gAQAAALQYurAUHpwQFBrgFBuv4AEAAAC1QBAn8DQCABBEAgASgCDCABKAIAIgJBiQJGBH8gACABKAIEEN0OIAEoAgAFIAILQYsCRgRAIAAgASgCCCICIAIQeEEARxCNARoLIAEQGCEBDAELCwsOACAAEOAOIABBADYCIAs6AQF/IABCgICAgHA3AwAgAEEIaiEBQQAhAANAIABBwABHBEAgASAAQShsahDeDiAAQQFqIQAMAQsLCyUBAX8DQCABQQRHBEAgACABQQN0akIANwMAIAFBAWohAQwBCwsLEwAgACABQfSoAUEXQdu7ARCXBAscACAAEKsIIAAoAgAQGCAAQgA3AgggAEIANwIAC+0DAQV/IwBB0ABrIgMkAAJAAkACQAJAAkADQCAEIAAoAghPDQEgA0EkaiAAIAQQ/QUgAygCJCIFRQ0DIAJFDQQgBSACEEcEQCAEQQFqIQQMAQsLIAAgBBCqCEEEaiABEOEODAELIANCADcCHCADQgA3AhQgAyACNgIQIANBFGogARDhDiADIAMoAiA2AkggA0FAayADKQIYNwMAIAMgAykCEDcDOAJAIAAoAggiAiAAKAIMIgRHBEAgACgCACEFIAAoAgQhAQwBCyACQQF0QQEgAhsiBEHMmbPmAEsEQEHEACEEDAULIAAoAgAgBEEUbBA5IgVFBEBBMCEEDAULIAUgACgCDCIGQRRsakEAIAQgBmtBFGwQMxogBiAAKAIIIgIgACgCBCIBakkEQCABQRRsIQcgBSAEIAYgAWsiBmsiAUEUbGogBSAHaiAGQRRsEFQaIAAgATYCBAsgACAENgIMIAAgBTYCAAsgBSABIAJqIARwQRRsaiIBIAMpAzg3AgAgASADKAJINgIQIAEgA0FAaykDADcCCCAAIAAoAghBAWo2AggLIANB0ABqJAAPC0G/1gFBsYABQQxB2z4QAAALQY3WAUGxgAFBDUHbPhAAAAsgAyAEEHc2AgBByPYIKAIAQeeDBCADEB4aECcAC5kKAgd/CnwjAEFAaiIFJAADfCABKAIIIAJNBHwgCyAMEFAhDSAAKAIQIgIrA1AhDiACKwNgIQ8gAisDWCEQIAIrAxAhCiACKwMYIQkgABAvIAAoAhAiBCsDECERIAQrAxghEigCECgC/AEhAiAFIAk5AwggBSAKOQMAIAUgEiAMIA2jIBAgD6AgDiACt6AQIiIOoqAiDDkDOCAFIAkgCaAgDKBEAAAAAAAACECjOQMYIAUgESAOIAsgDaOioCILOQMwIAUgCiAKoCALoEQAAAAAAAAIQKM5AxAgBSAJIAwgDKCgRAAAAAAAAAhAozkDKCAFIAogCyALoKBEAAAAAAAACECjOQMgIwBB8ABrIgIkAAJAIAAoAhAiBCgCCCIDRQ0AIAMoAgQoAgwiBkUNACACQRhqIgNBAEHIABAzGiACIAA2AhggBCsDYCEKIAIgBSsDACAEKwMQoTkDYCACIAUrAwggBCsDGKE5A2ggAiACKQNoNwMQIAIgAikDYDcDCCADIAJBCGogBhEAACEEIAAoAhAgCjkDYCADIAAgBSAEEPQGCyACQfAAaiQAIAAoAhAiAisDGCELIAUrAwggAisDYCEJAn8gAisDWCINIAUrAwAgAisDEKEQMiIKoEQAAAAAAABwQKIgDSAJoKMiCUQAAAAAAADwQWMgCUQAAAAAAAAAAGZxBEAgCasMAQtBAAshBiALoRAyBSAMIAAgASACEKkIIgRBUEEAIAQoAgBBA3EiA0ECRxtqKAIoIgZGBH8gBEEwQQAgA0EDRxtqKAIoBSAGCygCECIEKwMYIAAoAhAiAysDGKEiCiAEKwMQIAMrAxChIgkgChBQIgqjoCEMIAsgCSAKo6AhCyACQQFqIQIMAQsLIQkDQAJAIAEoAgggB0sEQCABIAcQqQghBANAIAQiAkUNAgNAAkAgAiIDRQRAIAQhAgNAIAIiA0UNAiAAIAIgAkEwaiIIIAAgA0FQQQAgAigCAEEDcSICQQJHG2ooAihGBH8gAygCECICQQA2AlwgAkEAOwFaIAJBADoAWSACIAY6AFggAkKAgICAEDcDUCACQgA3A0ggAiAJOQNAIAIgCjkDOCADKAIAQQNxBSACC0EDRhsoAihGBEAgAygCECICQQA2AjQgAkEAOwEyIAJBADoAMSACIAY6ADAgAkKAgICAEDcDKCACQgA3AyAgAiAJOQMYIAIgCjkDEAtBACECIAMoAhAtAHBBAUcNACADIAggAygCAEEDcUEDRhsoAigoAhAiAy0ArAFBAUcNACADKALEAUEBRw0AIAMoAsABKAIAIQIMAAsACyAAIANBMEEAIAAgAyADQTBrIgggAygCAEEDcSICQQJGGygCKEYEfyADKAIQIgJBADYCXCACQQA7AVogAkEAOgBZIAIgBjoAWCACQoCAgIAQNwNQIAJCADcDSCACIAk5A0AgAiAKOQM4IAMoAgBBA3EFIAILQQNHG2ooAihGBEAgAygCECICQQA2AjQgAkEAOwEyIAJBADoAMSACIAY6ADAgAkKAgICAEDcDKCACQgA3AyAgAiAJOQMYIAIgCjkDEAtBACECIAMoAhAtAHBBAUcNASADIAggAygCAEEDcUECRhsoAigoAhAiAy0ArAFBAUcNASADKALMAUEBRw0BIAMoAsgBKAIAIQIMAQsLIAQoAhAoArABIQQMAAsACyAAKAIQQQE6AKEBIAVBQGskAA8LIAdBAWohBwwACwALugQBCH8jAEHwAGsiAiQAIAJCADcDaCACQgA3A2AgAkIANwNYIAJCADcDUEHM3QogAEECQYm0AUEAECE2AgBB0N0KIABBAkHs8QBBABAhIgE2AgAgAUHM3QooAgByBEAgAkEsaiEGIAJBQGshByAAEBshBANAIAQEQCAAIAQQcCEBA0AgAQRAAkAgAUFQQQAgASgCAEEDcSIDQQJHG2ooAigiBSABIAFBMGoiCCADQQNGGygCKEYNAAJAAkAgBCAFRw0AQczdCigCACIFRQ0AIAEgBRBCIgMtAAANASABKAIAQQNxIQMLIAEgCCADQQNGGygCKCAERw0BQdDdCigCACIDRQ0BIAEgAxBCIgMtAABFDQEgAkHQAGogASADEOMODAELIAJB4ABqIAEgAxDjDgsgACABIAQQdCEBDAEFQQAhASACKAJoIQMDQCABIANGBEAgAkHgAGoQqwhBACEBIAIoAlghAwNAIAEgA0YEQCACQdAA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XCAANgIAQYsCIQEMEQsgAygCICIAQQBKBEAgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyADQQU2AiwgAxDlCQwbCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLIANBATYCLCADKAIAIgAoAgggAEE0ahCIARCxASEAIAMoAlwgADYCAEGMAiEBDA8LIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgA0HiyQMQ2wIMGQsgAygCICIAQQBKBEAgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyADQbrJARDbAgwYCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLIAMoAgAiACAAKAIUQQFqNgIUDBcLIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgA0HyhAUQ2wIgAygCACIAIAAoAhRBAWo2AhQMFgsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgAyAAENsCDBULIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgA0EHNgIsIAMoAgBBATYCGCADEOUJDBQLIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgAygCACIAIAAoAhhBAWsiATYCGCABBEAgAyADKAJQENsCDBQLIANBATYCLCAAKAIIIABBNGoQiAEQzgIhACADKAJcIAA2AgBBjAIhAQwICyADKAJQIQAgAygCICIBQQBKBEAgAygCFCADKAIMQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyADKAIAIgEgASgCGEEBajYCGCADIAAQ2wIMEgsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgAyAAENsCIAMoAgAiACAAKAIUQQFqNgIUDBELIAMoAlAhACADKAIgIgFBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAAgAWpBAWstAABBCkY2AhwLIAMgABDbAgwQCyADKAJQIQAgAygCICIBQQBKBEAgAygCFCADKAIMQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyAALAAAIQEMBAsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgACABQQEgAygCCBBTGgwOCyADKAJQIRYgBSADLQAYOgAAAkAgAygCFCADKAIMQQJ0aiIBKAIAIgAoAiwEQCADKAIcIQQMAQsgAyAAKAIQIgQ2AhwgACADKAIENgIAIAEoAgAiAEEBNgIsCyAPKAIAIhAgACgCBCIBIARqIgZNBEAgAyADKAJQIBZBf3NqIAVqNgIkIAMQzwYiAUEBdEGAhwVqLwEABEAgAyABNgJAIAMgAygCJDYCRAsgASEAA0AgACAAQQF0IgVB4IwFai4BAEEBaiIEQQF0IgZBwIgFai4BAEcEQCAFQcCOBWouAQAhAAwBCwsgAygCUCEIIARFDQkgBkHgkAVqLgEAIgBB3ABGDQkgDyAPKAIAQQFqIgU2AgAMDQsgECAGQQFqSw0DIAMoAlAhBgJAIAAoAihFBEAgECAGa0EBRw0BDAkLQQAhACAGQX9zIBBqIhFBACARQQBKGyEZIAYhBANAIAAgGUcEQCABIAQtAAA6AAAgAEEBaiEAIAFBAWohASAEQQFqIQQMAQsLAn8CQCADKAIUIAMoAgxBAnRqKAIAIgAoAixBAkYEQCADQQA2AhwgAEEANgIQDAELIAYgEGshEANAAkAgACgCBCEEIAAoAgwiASAQaiIGQQBKDQAgACgCFEUEQCAAQQA2AgQMDAsgDygCACEGIAAgAUEAIAFrQQN2ayABQQF0IAFBAEwbIgE2AgwgACAEIAFBAmoQOSIANgIEIABFDQsgAyAAIAYgBGtqNgIkIAMoAhQgAygCDEECdGooAgAhAAwBCwsgAyADKAIAIgAoAgQgBCARakGAwAAgBiAGQYDAAE8bIAAoAgAoAgQoAgARBAAiATYCHCABQQBIDQcgAygCFCADKAIMQQJ0aigCACIAIAE2AhBBACABDQEaCyARRQRAIAMoAgQhAQJ/AkAgAygCFCIABEAgACADKAIMIgZBAnRqKAIADQELIAMQ6gkgAygCBCADEOkJIQAgAygCFCADKAIMIgZBAnRqIAA2AgAgAygCFCIADQBBAAwBCyAAIAZBAnRqKAIACyABIAMQ2wkgAxDxBCADKAIUIAMoAgxBAnRqKAIAIQAgAygCHCEBQQEMAQsgAEECNgIsQQAhAUECCyEQAkAgASARaiIEIAAoAgxMBEAgACgCBCEADAELIAAoAgQgBCABQQF1aiIBEDkhACADKAIUIAMoAgxBAnRqIgQoAgAgADYCBCAEKAIAIgQoAgQiAEUNByAEIAFBAms2AgwgAygCHCARaiEECyADIAQ2AhwgACAEakEAOgAAIAMoAhQgAygCDEECdGooAgAoAgQgAygCHGpBADoAASADIAMoAhQgAygCDEECdGoiACgCACgCBCIGNgJQAkACQCAQQQFrDgIKAQALIAMgBiAWQX9zaiAFajYCJCADEM8GIQAgAygCUCEIIAMoAiQhBQwOCyADKAIcIQQgACgCACgCBCEBCyADIAEgBGo2AiQgAxDPBiEBIAMoAlAhCAwIC0HPpwEQlwIAC0F/IQEgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyALQTBqJAAgAQwLC0GsrQEQlwIAC0HBsQEQlwIAC0HyqwMQlwIAC0GxFRCXAgALIAMgBjYCJCADQQA2AjAgAygCLEEBa0ECbUElaiEADAELCyAPCygCACEFDAALAAsACwALIQELIAFBAEwEQEEAIQFBAAwBCyABQYACRgRAQYECIQEMBQtBAiABQYwCSw0AGiABQeCVBWosAAALIgUgCcBqIgBBO0sNACAFIABB8JcFaiwAAEcNACAAQbCYBWosAAAhDUIBIACthkKAoMiEgICQgAaDUARAIAcgDCgCjAg2AgQgE0EBayIAQQAgACATTRshE0F+IQEgB0EEagwFC0EAIA1rIQsMAQsgDUHwmAVqLAAAIgtFDQELIAdBASALQcCZBWosAAAiD2tBAnRqKAIAIQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALQQJrDjoAARUVAhMSBRISBRUVFRUVFRUVAxUVBAQFEhUVBgcICQoLDA0OEhUVFRUVFQ8VEBETEhIVFRUTExMUFQsgAxDHDyADEL4PDBQLIAMoAgAiACgCCEUNEyADEMcPIAMQvg8gACgCCBC6ASAAQQA2AggMEwsgB0EIaygCACEIIAdBBGsoAgAhCSAHKAIAIQYgAygCACIAKAIIIgRFBEAgAEEANgIMIAwgCEEAR0EBdCAJQQBHckEIcjoAkAggFUEAOgACIBVBADsAACAAKAIAIQQgDCAMKAKQCDYCDCAAIAYgDEEMaiAEEOABIgQ2AggLIAAgACgCECAEELsPNgIQQQAgBkEAEI0BGgwSCyADKAIAIgAoAgghBiAHQQRrKAIABEAgAEECENMIIAAoAhBBGGohCUEAIQQDQCAJKAIAIggEQAJAIAgoAgBBiwJHDQAgCCgCBBDPCEUNACAIKAIIIQQLIAhBDGohCQwBCwsgACgCEEEQaiENA0AgDSgCACIIKAIMBEAgCEEMaiENIAhBBGohCSAIKAIAQYYCRgRAIAgoAgQiERAbIQkDQCAJRQ0DIAMgACgCECgCACAJQQAQhQFBACAIKAIMIAQQrA8gESAJEBwhCQwACwALA0AgCSgCACIJRQ0CIAMgCSgCBCAJKAIIIAgoAgwgBBCsDyAJQQxqIQkMAAsACwsgBiAAKAIQQQhqELQCIAYgACgCEEEQahC0AiAGIAAoAhBBGGoQtAIgACgCEEEANgIEDBILIAAoAhAhBCAAQQEQ0wggBEEIaiINIQkDQCAJKAIAIggEQCAAIAgoAgQQpQ8gCEEMaiEJDAELCyAGIA0QtAIgBiAEQRhqELQCIAYgBEEQahC0AiAEQQA2AgQMEQsCQCADKAIAKAIQIgAoAggiBARAQYkCIARBABCGBiEEIABCADcCCAwBC0EAIQQgACgCBCIGBEBBhgIgBkEAEIYGIQQLIABBADYCBAsgBARAIABBEGogBBC6CAsMEAtBASEFDA8LIAMgBygCAEEAQQAQwggMDgsgAyAHQQhrKAIAIAcoAgBBABDCCAwNCyADIAdBEGsoAgAgB0EIaygCACAHKAIAEMIIDAwLIAMgB0EIaygCACAHQQRrKAIAEJkPDAsLIANBggJBABCZDwwKC0GCAiEFDAkLQYMCIQUMCAtBhAIhBQwHCyAHQQRrKAIAIQUMBgsgB0EIaygCACEAIAMoAgAgBygCACIGRQ0MQYsCIAAgBhCGBiEAKAIQQRhqIAAQuggMBQsgBygCACEEIAMoAgAiACAAKAIMIgZBAWo2AgwgBkGHJ04EQCAMQZDOADYCEEGS3gAgDEEQahA2CyAAIAAoAhAiBiAGKAIAIARBARCTARC7DzYCECAAKAIIIARBABCNARoMBAsgAygCACIAKAIQIgYoAgAhBCAAIAAoAgxBAWs2AgwgACAGEI4PIgA2AhAgACAENgIEIAQNA0HRhwFB7hFB4wRBzIcBEAAAC0EAIQUMAgsgBygCACEFDAELIAcoAgAhBCAMQZAIaiEAIAMoAgAoAggiBiAHQQhrKAIAIggQPCAEEDxqQQFqIgVBgQhPBH8gBRCHAwUgAAsgCBCvByIAEDwgAGogBBCvBxogABCxASEFIAYgCEEAEI0BGiAGIARBABCNARogACAMQZAIakYNACAAEBgLIAcgD0ECdGsiBCAFNgIEAn8CQCAOIA9rIg4sAAAiBSALQYCaBWosAAAiBkGpmgVqLAAAaiIAQTtLDQAgAEHwlwVqLQAAIAVB/wFxRw0AIABBsJgFagwBCyAGQdmaBWoLLAAAIQ0gBEEEagwCCwJAAkAgEw4EAQICAAILIAFBAEoEQEF+IQEMAgsgAQ0BDAcLIANBlDkQxAkLA0AgCUH/AXFBEUcEQCACIA5GDQcgB0EEayEHIA5BAWsiDiwAAEGQlQVqLQAAIQkMAQsLIAcgDCgCjAg2AgRBASENQQMhEyAHQQRqCyEHIA5BAWohDgwBCwsgA0GqrAEQxAkMAgsgACECDAILQZzVAUHuEUGtAkG0NxAAAAsgAiAMQcAGakYNAQsgAhAYCyAMQZAQaiQAIAooAhBFBEAgCigCTCIAKAIUIgEEfyABIAAoAgxBAnRqKAIABUEACyAAENAJCyAKKAJMIQADQAJAIAAoAhQiAUUNACABIAAoAgxBAnRqKAIAIgJFDQAgAiAAEMgJIAAoAhQgACgCDEECdGpBADYCAAJAIAAoAhQiAUUNACABIAAoAgxBAnRqKAIAIgFFDQAgASAAEMgJQQAhASAAKAIUIAAoAgwiAkECdGpBADYCACACBEAgACACQQFrIgE2AgwLIAAoAhQiAkUNACACIAFBAnRqKAIARQ0AIAAQ8QQgAEEBNgIwCwwBCwsgARAYIABBADYCFCAAKAI8EBggABAYIBcQZiAKQTxqEGYgCigCECEFCyAKQdAAaiQAIAULJQEBfyAAEBshAgNAIAIEQCAAIAIgARCtCCAAIAIQHCECDAELCwvQAQEHfyABKAIQKALIASECA0AgAigCACIBBEAgAUFQQQAgASgCAEEDcUECRxtqKAIoKAIQKAL4ASEFIAAoAhAoAsgBIQQgASgCECIGLgGaASEHA0AgBCgCACIBBEACQAJAIAUgAUFQQQAgASgCAEEDcUECRxtqKAIoKAIQKAL4ASIISARAIAEoAhAhAQwBCyAFIAhHDQEgASgCECIBKwM4IAYrAzhkRQ0BCyABLgGaASAHbCADaiEDCyAEQQRqIQQMAQsLIAJBBGohAgwBCwsgAwvSAQIFfwJ+IAEoAhAoAsABIQIDQCACKAIAIgEEQCABQTBBACABKAIAQQNxQQNHG2ooAigoAhAoAvgBIQQgACgCECgCwAEhAyABKAIQIgUyAZoBIQgDQCADKAIAIgEEQAJAAkAgBCABQTBBACABKAIAQQNxQQNHG2ooAigoAhAoAvgBIgZIBEAgASgCECEBDAELIAQgBkcNASABKAIQIgErAxAgBSsDEGRFDQELIAEyAZoBIAh+IAd8IQcLIANBBGohAwwBCwsgAkEEaiECDAELCyAHC+ACAQh/IAAoAgAhBSABQQBMIQlBACEBA0AgBSABQQJ0aigCACIEBEAgBEEoaiEIIAEhAAJAIAlFBEADQCAFIABBAWoiAEECdGooAgAiAkUNAiACKAIQIgYrAxAgBCgCECIHKwMQoSACQVBBACACKAIAQQNxQQJHG2ooAigoAhAoAvgBIAhBUEEAIAQoAgBBA3FBAkcbaigCACgCECgC+AFrt6JEAAAAAAAAAABjRQ0AIAYuAZoBIAcuAZoBbCADaiEDDAALAAsDQCAFIABBAWoiAEECdGooAgAiAkUNASACKAIQIgYrAzggBCgCECIHKwM4oSACQTBBACACKAIAQQNxQQNHG2ooAigoAhAoAvgBIAhBMEEAIAQoAgBBA3FBA0cbaigCACgCECgC+AFrt6JEAAAAAAAAAABjRQ0AIAYuAZoBIAcuAZoBbCADaiEDDAALAAsgAUEBaiEBDAELCyADC+8BAQN/AkAgAkUEQANAIAMgASgCECICKALMAU8NAiACKALIASADQQJ0aigCACICIAJBMGsiBCACKAIAQQNxQQJGGygCKCgCECIFKAKwAUUEQCAFQQE2ArABIAAgAiAEIAIoAgBBA3FBAkYbKAIoEK4ICyADQQFqIQMMAAsACwNAIAMgASgCECICKALEAU8NASACKALAASADQQJ0aigCACICIAJBMGoiBCACKAIAQQNxQQNGGygCKCgCECIFKAKwAUUEQCAFQQE2ArABIAAgAiAEIAIoAgBBA3FBA0YbKAIoEK4ICyADQQFqIQMMAAsACwsSACAAIAFBpSVBFkGVgAEQ2AELnwQBBn8jAEHwAGsiAiQAIAEoAhAoAvQBIgNByABsIgUgACgCECgCxAFqIgQoAgAhBgJAAn8CQCAEKAIIQQBMBEAgABAgIQAgARAgIQEgAiAGNgIQIAIgAzYCDCACIAE2AgggAiAANgIEIAJBuAk2AgBBrOEEIAIQNgwBCyAEKAIEIAZBAnRqIAE2AgAgASgCECAGNgL4ASAAKAIQIgQoAsQBIAVqIgAgACgCACIFQQFqNgIAIAUgACgCCE4NAiADQcgAbCIFQdD+CigCACgCECgCxAFqKAIIIgcgBkgEQCABECAhACABKAIQKAL4ASEBIAJB0P4KKAIAKAIQKALEASAFaigCCDYCMCACQcwJNgIgIAIgADYCJCACIAE2AiggAiADNgIsQfvNBCACQSBqEDYMAQsgBCgC7AEhBSAEKALoASIEIANMIAMgBUxxRQRAIAIgBTYCTCACIAQ2AkggAiADNgJEIAJB0Qk2AkBBtM8EIAJBQGsQNgwBC0EAIAAoAgQgBkECdGogACgCDCAHQQJ0ak0NARogARAgIQBB0P4KKAIAKAIQKALEASADQcgAbGooAgghBiABKAIQKAL4ASEBIAIgAzYCYCACIAM2AmQgAiAGNgJoIAJB1wk2AlAgAiADNgJUIAIgADYCWCACIAE2AlxBxM4EIAJB0ABqEDYLQX8LIAJB8ABqJAAPC0GW7QBB0LwBQb8JQf32ABAAAAtiAQJ/An8CQCABKAIQIgEtAKwBQQFHDQAgASgCxAFBAUcNACABKALMAUEBRw0AIAEoAsgBIQEDQCABKAIAIgIoAhAiA0H4AGohASADLQBwDQALQQEgACACEK4BDQEaC0EACwsKAEHzrAFBABArCx0BAX8gASgCEC0ArAEEf0EABSAAIAEQrgFBAEcLC9wBAQN/IAJBAE4hBSABIQMDQCABIQQCQAJAAn8gBUUEQCADKAIQIgMoAvgBIgFBAEwNAkHQ/gooAgAoAhAoAsQBIAMoAvQBQcgAbGooAgQgAUECdGpBBGsMAQtB0P4KKAIAKAIQKALEASADKAIQIgEoAvQBQcgAbGooAgQgASgC+AEiAUECdGpBBGoLKAIAIgNFDQAgAygCECgC+AEgAWsgAmxBAEoNAUGdlQNB0LwBQZAHQYY6EAAACyAEDwsgAyEBIAAgAxD3Dg0AIAMgBCAAIAMQ9Q4bIQEMAAsACz0BAn8gABD6DkEBIQEDQCABIAAoAhAiAigCtAFKRQRAIAIoArgBIAFBAnRqKAIAEPkOIAFBAWohAQwBCwsLXgECfwJAIAAoAhAiASgCjAJFDQAgASgC6AEhAgNAIAIgASgC7AFKDQEgASgCjAIgAkECdGogASgCxAEgAkHIAGxqKAIEKAIANgIAIAJBAWohAiAAKAIQIQEMAAsACwsrAQF/A0AgACgCCCABTQRAIABCADcCBAUgACABEIAGGiABQQFqIQEMAQsLC9IBAQR/IAIoAhAiBigC6AEhAyABKAIQIgQoAugBIQUCQAJAAkBBzP4KLQAARQRAIAVFIANFciADIAVGcg0BIAQtALUBQQdGBEAgBC0ArAFBAUYNBAsgBi0AtQFBB0cNAiAGLQCsAUEBRg0DDAILIAMgBUcNAQsgACgCECIDKALEASAEKAL0AUHIAGxqKAJAIgBFDQEgACgCCCAAKAIEIAIgASADLQB0QQFxIgAbKAIQKAKsAmxqIAEgAiAAGygCECgCrAJqLQAAQQBHDwtBAQ8LQQALgQICCX8BfCAAKAIQIgEoAuwBIQUgASgC6AEiAyECA0AgAiAFSgRAA0ACQCADIAVKDQAgA0HIAGwiAkHQ/gooAgAoAhAoAsQBakEAOgAxIAEoAsQBIAJqIgEoAgQgASgCAEEEQaYDEJgBIANBAWohAyAAKAIQIgEoAuwBIQUMAQsLBUEAIQQgASgCxAEgAkHIAGxqIgcoAgAiBkEAIAZBAEobIQgDQCAEIAhGRQRAAn8gBygCBCAEQQJ0aigCACgCECIJKwMQIgqZRAAAAAAAAOBBYwRAIAqqDAELQYCAgIB4CyEGIAkgBjYC+AEgBEEBaiEEDAELCyACQQFqIQIMAQsLC7QHAQt/IwBBEGsiBCQAIARCADcDCCAEQgA3AwACQCAAKAIQIgMtAPABQQFHDQAgAygC6AEhCQNAAkACQAJAIAMoAuwBIAlOBEAgCUHIAGwiCCADKALEAWoiBigCACICRQ0CQQAhASACQQAgAkEAShshAiAGKAIEIgMoAgAoAhAoAvgBIQsDQCABIAJGRQRAIAMgAUECdGooAgAoAhBBADYCsAEgAUEBaiEBDAELCyAEEOsOQQAhBgNAIAYgACgCECIDKALEASAIaiIBKAIAIgJODQIgASgCBCIBIAZBAnRqIAEgAkECdGogBkF/c0ECdGogAy0AdEEBcRsoAgAhA0EAIQdBACEFQQAhAgNAIAMoAhAiASgC3AEgAk0EQEEAIQIDQCABKALUASACTQRAAkAgBSAHckUEQCAEIAMQbQwBCyABKAKwASAFcg0AIAAgAyAEIAkQ6g4LIAZBAWohBgwEBSAAIAEoAtABIAJBAnRqKAIAEP8FIAdqIQcgAygCECEBIAJBAWohAgwBCwALAAUgACABKALYASACQQJ0aigCABD/BSAFaiEFIAJBAWohAgwBCwALAAsACyAEEOsOIAQoAgAQGAwECwJAIAQoAggiAkUNAAJAIAMtAHRBAXENACACQQF2IQNBACEBA0AgASADRg0BIAQgARD+BSEGIAQgASAEIAIgAUF/c2oiBRD+BRDpDiAEIAUgBhDpDiABQQFqIQEMAAsAC0EAIQpBACEBA0AgASAAKAIQIgMoAsQBIgcgCGooAgAiBU5FBEAgBCABEP4FIQIgACgCECgCxAEgCGooAgQgAUECdGogAjYCACACKAIQIAEgC2o2AvgBIAFBAWohAQwBCwsDQCAFIApMDQFBACECIAcgCGooAgQgCkECdGooAgAiCygCECgC0AEiBgRAA0ACQCAAKAIQIQMgBiACQQJ0aigCACIBRQ0AIAFBMEEAIAEoAgBBA3EiB0EDRxtqKAIoKAIQKAL4ASEFIAFBUEEAIAdBAkcbaigCKCgCECgC+AEhBwJAAkAgAy0AdEEBcUUEQCAFIAdKDQEMAgsgBSAHTg0BCyAAIAEQ/wUNByABEL0IIAAgARDoDiACQQFrIQIgCygCECgC0AEhBgsgAkEBaiECDAELCyADKALEASIHIAhqKAIAIQULIApBAWohCgwACwALQdD+CigCACgCECgCxAEgCGpBADoAMQsgCUEBaiEJDAELC0HlqANB0LwBQZkLQbg8EAAACyAEQRBqJAALoAIBB38gACgCECIEKALoASEFA0BBACEBQQAhBiAFIAQoAuwBSkUEQANAIAEgBUHIAGwiByAEKALEAWoiAigCACIDTkUEQCACKAIEIAFBAnRqKAIAKAIQIgIgATYCrAIgAkEAOgC0ASACQQA2ArABIAIoAtQBRSAGckUEQEEBQQwQGSICIAM2AgQgAiADNgIAIAIgAyADbEEBEBk2AgggACgCECIEKALEASAHaiACNgJAQQEhBgsgAUEBaiEBDAELC0EAIQECQCAGRQ0AA0AgASAEKALEASAHaiIDKAIATg0BIAMoAgQgAUECdGooAgAiAygCECgCsAFFBEAgACADEOwOIAAoAhAhBAsgAUEBaiEBDAALAAsgBUEBaiEFDAELCwvOBgEJfyMAQRBrIgQkACAEQgA3AwggBEIANwMAIAAoAhAiBkHAAWohAwNAIAMoAgAiBQRAIAUoAhAiBUEANgKwASAFQbgBaiEDDAELCyAGKALsASEFIAYoAugBIQMDQCADIAVMBEAgBigCxAEgA0HIAGxqQQA2AgAgA0EBaiEDDAELCyAAEDchBSAAKAIQKALAASEDAkAgACAFRiIGBEAgAyEFDAELA0AgAyIFKAIQKAK4ASIDDQALC0HIAUHAASABGyEJQbgBQbwBIAYbIQoCQANAIAUEQAJAIAUoAhAiAyAJaigCACgCAA0AIAMoArABDQAgA0EBNgKwASAEIAUQrggDQCAEKAIIRQ0BIARBABDzDiEDIAQgBCgCCEEBazYCCCAEIAQoAgRBAWogBCgCDHA2AgQgAygCEC0AtQFBB0cEQCAAIAMQ9A4EQEF/IQMMBgsgBCADIAEQ8g4MAQtBACEHAkAgAUEBaiIGIAMoAhAoAugBIgsoAhAiAywAkQJGDQAgAygC6AEhCANAIAsoAhAiBygC7AEiAyAITgRAIAhBAnQhAyAIQQFqIQggACADIAcoAowCaigCABD0DiIHRQ0BDAILCyAHKALoASEIA0AgAyAITgRAIAQgBygCjAIgCEECdGooAgAgARDyDiAIQQFqIQggCygCECIHKALsASEDDAELCyAHIAY6AJECQQAhBwsgByIDRQ0ACwwDCyAFKAIQIApqKAIAIQUMAQsLQdD+CigCACEKIAAoAhAiAygC6AEhCQNAIAMoAuwBIAlOBEAgCUHIAGwiASAKKAIQKALEAWpBADoAMQJAIAMtAHRBAXFFDQAgAygCxAEgAWoiBigCACIBQQBMDQAgAUEBayIFQQF2QQFqIQEgBigCBCEGQQAhAwNAIAEgA0cEQCAGIANBAnRqKAIAIAYgBSADa0ECdGooAgAQsAggA0EBaiEDDAELCyAAKAIQIQMLIAlBAWohCQwBCwtBACEDIAAQYiAARw0AIAIQxwRCAFcNACAAQQAQrwgLQQAhAANAIAQoAgggAEsEQCAEIAAQ8w4aIABBAWohAAwBCwsgBEIANwIEIAQoAgAQGCAEQgA3AgggBEIANwIAIARBEGokACADC4QJAgt/An5CfyENAkACfyMAQRBrIgokACAAIgMQow4gACgCECIAQQE2AtwBIAAoAtgBIAAoAsABNgIAIAMQgg8gCkIANwMIIApCADcDACADQQAgChCADyECIApCADcCBCAKKAIAEBggCkIANwMIIApCADcDAAJAAkAgAg0AIAMoAhAiACgC6AEgACgC7AFKDQEgAxBiIQQgAygCECICKALoASIFQQBKBEAgBCgCECgCxAEgBUHIAGxqQRdrQQA6AAALA0AgAigC7AEgBU4EQCAEIAUgAigCjAIgBUECdGooAgAoAhAoAvgBIgAgBUHIAGwiCSACKALEAWooAgAQoQ5BACEHIAAhBgNAIAMoAhAiAigCxAEgCWoiCCgCACAHSgRAIAQoAhAoAsQBIAlqKAIEIAZBAnRqIAgoAgQgB0ECdGooAgAiAjYCACACKAIQIgggBjYC+AEgCC0ArAFBAUYEQCACIAQQNzYCGAsgBkEBaiEGIAMgAhCFBiAEIAIQvgggB0EBaiEHDAELCyAIIAQoAhAoAsQBIAlqIgYoAgQgAEECdGo2AgQgBkEAOgAxIAVBAWohBQwBCwsgBCgCECIAKALsASAFSgRAIAAoAsQBIAVByABsakEAOgAxCyACQQE6AJACIAMQYiEFIAMQGyEGA0AgBgRAQQAhAiAFIAYQcCEHA0AgByIABEAgBSAAIAYQdCEHIAMgABCuAQ0BIAIgAEFQQQAgACgCAEEDcUECRxtqIgAQpA4gAEFQQQAgACgCAEEDcSIIQQJHG2ooAigiBCgCECgC9AEhCSAAQTBBACAIQQNHG2ooAigiCCgCECgC9AEhCwRAIAAoAhAiBCACQQAgCSALRhs2ArABIAIoAhAiCSgCsAFFDQIgBEEANgKwASADIAAgCSgCsAFBABDCBCAAEJcPDAILIAkgC0YEQCAIIAQQmg8iBEUEQCAFIAAQhAYgACECDAMLIAAgBEYNAiAAEJcPIAAoAhAoArABDQIgACAEEIgDDAILIAkgC0oEQCAIIAQgABCgDgUgBCAIIAAQoA4LIAAhAgwBCwsgAyAGEBwhBgwBCwsgAygCECIAKALoASEGQQAhAgNAIAYgACgC7AFKDQEgBkECdCIEIAAoAowCaigCACEAA0AgACgCECIHKALIASgCACIFBEAgBRCPAiAFKAIQEBggBRAYDAELCwNAIAcoAsABKAIAIgcEQCAHEI8CIAcQGCAAKAIQIQcMAQsLIAMQYiAAEIUGIAAoAhAoAsABEBggACgCECgCyAEQGCAAKAIQEBggABAYIAMoAhAoAowCIARqQQA2AgAgBkEBaiEGIAMoAhAhAAwACwALIApBEGokACACDAELQYm1A0HgvQFB6gFBtzAQAAALDQAgAxC0CCADEP8OIAMQ/g4gA0ECIAEQswgiDUIAUw0AQQEhAANAIAMoAhAiAigCtAEgAE4EQCACKAK4ASAAQQJ0aigCACABEIEPIg5CAFMEQCAODwUgAEEBaiEAIA0gDnwhDQwCCwALCyADEPoOCyANC+wCAQZ/IAAoAhAoAuwBQQJqQQQQGSEGIAAQGyECA0AgAgRAIAYgAigCECgC9AFBAnRqIgEgASgCAEEBajYCACAAIAIQLSEBA0AgAQRAIAFBMEEAIAEoAgBBA3EiA0EDRxtqKAIoKAIQKAL0ASIEIAFBUEEAIANBAkcbaigCKCgCECgC9AEiBSAEIAVIGyEDIAQgBSAEIAVKGyEEA0AgA0EBaiIDIARORQRAIAYgA0ECdGoiBSAFKAIAQQFqNgIADAELCyAAIAEQMCEBDAELCyAAIAIQHCECDAELCyAAKAIQKALsAUECakHIABAZIQEgACgCECICIAE2AsQBIAIoAugBIQMDQCADIAIoAuwBSkUEQCABIANByABsIgJqIgQgBiADQQJ0aigCAEEBaiIBNgIIIAQgATYCACABQQQQGSEEIAIgACgCECICKALEASIBaiIFIAQ2AgwgBSAENgIEIANBAWohAwwBCwsgBhAYC9gDAQN/QQEhBANAIAQgACgCECIFKAK0AUpFBEAgBSgCuAEgBEECdGooAgAgASACIAMQgw8hAyAEQQFqIQQMAQsLAkAgABBiIABGDQAgAUEAIAJBAnQQMyEFIAAQGyECA0AgAgRAIAUgAigCECgC9AFBAnRqQQE2AgAgACACEC0hAQNAIAEEQCABQShqIQYgAigCECgC9AEhBANAIAQgBkFQQQAgASgCAEEDcUECRxtqKAIAKAIQKAL0AU5FBEAgBSAEQQFqIgRBAnRqQQE2AgAMAQsLIAAgARAwIQEMAQsLIAAgAhAcIQIMAQsLIAAoAhAiASgC6AEhBANAIAQgASgC7AFKDQEgBSAEQQJ0aigCAEUEQCADRQRAIAAQYkHz9gBBARCTASEDCyADQQBBARCOASICQYUpQcACQQEQNRogAigCECIBQoCAgICAgIDwPzcDYCABIAQ2AvQBIAFCgICAgICAgPA/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQGSEBIAIoAhAiBkEANgLMASAGIAE2AsABQQVBBBAZIQEgAigCECABNgLIASAAIAJBARCFARogACgCECEBCyAEQQFqIQQMAAsACyADC8kMAwp/An4BfCMAQUBqIgUkAEEBIQIDQCACQQJ0IQYCQANAIAIgACgCECIBKAK0AUsNASABKAK4ASAGaigCABAbRQRAQYyKBEEAECsgACgCECIHKAK4ASAGaiIBIAFBBGogBygCtAEgAmtBAnQQVBogACgCECIBIAEoArQBQQFrNgK0AQwBCwsgAkEBaiECDAELC0Gc2wotAAAEQEHA4AoQrAELQdD+CiAANgIAQcz+CkEAOgAAQdT+CiAAEGIQsgJBAWoiAUEEEBk2AgAgAUEEEBkhAUHY/gpBCDYCAEHc/gogATYCAEHY2wpBGDYCAAJAIABB5SAQJiIBRQ0AIAEQqQIiDUQAAAAAAAAAAGRFDQBB2P4KQdj+CigCACANEPgDQQBKBH9B2P4KKAIAIA0Q+AMFQQELNgIAQdjbCkHY2wooAgAgDRD4A0EASgR/QdjbCigCACANEPgDBUEBCzYCAAsgACgCECIBLQCIAUEQcQRAIAAgASgC7AFBAmoiAkEEEBkiASACQQAQgw8aIAEQGAsgABCjDiAAQQEQuwggABCCDyAAELQIQeD+CiAAKAIQIgMoAugBNgIAQeT+CiADKALsATYCACAFQgA3AzggBUIANwMwAkADQCADKALcASIGIARLBEAgAyADKALYASAEQQJ0aigCADYCwAECQCAERQ0AIAMoAuwBIQcgAygC6AEhAgNAIAIgB0oNASADKALEASACQcgAbGoiBigCACEBIAZBADYCACAGIAYoAgQgAUECdGo2AgQgAkEBaiECDAALAAsgAEEAIAVBMGoiARCzCCIMQgBTBEAgARCBBkF/IQIMAwUgBEEBaiEEIAsgDHwhCyAAKAIQIQMMAgsACwsCQCAGQQFNBEAgAygC6AEhBAwBCyADKALYASEHQQAhAQNAIAYgCEYEQCADQQE2AtwBIAMgBygCADYCwAEgA0Hg/gooAgAiBDYC6AEgA0Hk/gooAgA2AuwBDAILIAcgCEECdGooAgAhAiABBEAgASgCECACNgK4AQsgAigCECABNgK8AQNAIAIiASgCECgCuAEiAg0ACyAIQQFqIQgMAAsAC0HI9ggoAgAhCkEBIQkCQANAAkAgAygC7AEgBEgEQANAIAkgAygCtAEiAUoNAiADKAK4ASAJQQJ0aigCACAFQTBqEIEPIgxCAFMNBCAJQQFqIQkgCyAMfCELIAAoAhAhAwwACwALIARByABsIgggAygCxAFqIgIgAigCCCIBNgIAIAIgAigCDCIGNgIEQQAhAiABQQAgAUEAShshBwNAAkAgAiAHRwRAIAYgAkECdGooAgAiAQ0BQZzbCi0AAARAIAAQICEBIAUgACgCECgCxAEgCGooAgA2AiwgBSACNgIoIAUgBDYCJCAFIAE2AiAgCkG48QMgBUEgahAeGiAAKAIQIQMLIAMoAsQBIAhqIAI2AgALIARBAWohBAwDCyABKAIQIAI2AvgBIAJBAWohAgwACwALCwJAIAFBAEwNACAAQd0rECYiAQRAIAEQa0UNAQsgABChCEHM/gpBAToAACAAQQIgBUEwaiIBELMIIgtCAFkNACABEIEGQX8hAgwCCyAFQTBqEIEGQdz+CigCACIBBEAgARAYQdz+CkEANgIAC0HU/gooAgAiAQRAIAEQGEHU/gpBADYCAAtBASECA0AgACgCECIEKAK0ASACTgRAIAQoArgBIAJBAnRqKAIAELIIIAJBAWohAgwBCwsgBCgC6AEhCQNAQQAhBiAEKALsASAJTgRAA0AgBCgCxAEgCUHIAGxqIgEoAgAgBkoEQCABKAIEIAZBAnRqKAIAIgcoAhAiASAGNgL4AUEAIQIgASgC0AEiCARAA0AgCCACQQJ0aigCACIBBEAgASgCEC0AcEEERgR/IAEQvQggASgCEBAYIAEQGCAHKAIQKALQASEIIAJBAWsFIAILQQFqIQIMAQsLIAAoAhAhBAsgBkEBaiEGDAELCyABKAJAIgEEQCABKAIIEBggARAYIAAoAhAhBAsgCUEBaiEJDAELC0EAIQJBnNsKLQAARQ0BIAAQICEAIAUQjwE5AxAgBSALNwMIIAUgADYCACAKQeTjBCAFEDEMAQsgBUEwahCBBkF/IQILIAVBQGskACACC/sBAQV/IAEQGyEDA0AgAwRAIAEgAxAcIQQgAygCEC0AtQEEQCABIAMQuAEgBCEDDAIFQQEhAgNAAkAgACgCECIFKAK0ASIGIAJKBH8gBSgCuAEgAkECdGooAgAgAxCuAUUNASAAKAIQKAK0AQUgBgsgAkoEQCABIAMQuAELIAMoAhBBADYC6AEgBCEDDAQLIAJBAWohAgwACwALAAsLIAEQGyEAA0AgAARAIAEQYiAAEC0hAgNAIAIEQCABIAJBUEEAIAIoAgBBA3FBAkcbaigCKBCuAQRAIAEgAkEBENACGgsgARBiIAIQMCECDAELCyABIAAQHCEADAELCws3AQF/IAAoAgQhAQNAIAFBf0YEQCAAQQA2AgQFIAAoAgAgAUECdGpBADYCACABQQFrIQEMAQsLC4ICAQN/AkACQAJAIAEoAhAiAigCyAENACACIAA2AsgBIAAgARCFDyABEBtFDQAgACABEIMGQQAhAkHI2wooAgBB5ABGBEAgARCNDyABKAIQIgRBwAFqIQADQCAAKAIAIgAEQCAAKAIQIgMoAvQBRQRAIAIgACADLQCsARshAgsgA0G4AWohAAwBCwsgAkUNAiAEIAI2AogCIAEQGyEAA0AgAEUNAiAAIAJHIAAoAhAoAuwBQQJOcQ0EIAAgAhCCBRogACgCEEEHOgC1ASABIAAQHCEADAALAAsgARCTDwsPC0HD1AFBzr8BQewBQYM9EAAAC0GSPUHOvwFB8AFBgz0QAAALagECfyAAKAIQIgEgASgCiAIoAhAoAvQBIgIgASgC6AFqNgLoASABIAIgASgC7AFqNgLsAUEBIQIDQCACIAEoArQBSkUEQCABKAK4ASACQQJ0aigCABCIDyACQQFqIQIgACgCECEBDAELCwvfAgEEfyABEHshAwNAIAMEQEEHIQQCQAJAIAMQxAFFBEAgA0GZ9wAQJkGg0ApBwNAKEOsGIQQgAygCECAEOgCSAiAERQ0BCwJAIARBB0cNAEHI2wooAgBB5ABHDQAgACADEIcPDAILIAMQGyICRQ0BIAQhBSACIQEDQCABKAIQIAU6ALUBIAMgARAcIgEEQCACIAEQggUaIAIoAhAtALUBIQUMAQsLAkACQAJAIARBAmsOBAAAAQEECyAAKAIQIgEoAuABIgVFBEAgASACNgLgAQwCCyAFIAIQggUhAiAAKAIQIgEgAjYC4AEMAQsgACgCECIBKALkASIFRQRAIAEgAjYC5AEMAQsgBSACEIIFIQIgACgCECIBIAI2AuQBC0HgASECAkACQCAEQQNrDgMBAwADC0HkASECCyABIAJqKAIAKAIQIAQ6ALUBDAELIAAgAxCJDwsgAxB6IQMMAQsLC7kBAQN/QQEhAgNAIAIgACgCECIDKAK0AUpFBEAgAygCuAEgAkECdGooAgBBABCKDyACQQFqIQIMAQsLAkAgAUUEQCADKALIAUUNAQsgA0L/////dzcD6AFBACEBIAAQGyECA0AgAgRAIAIoAhAoAvQBIgMgACgCECIEKALsAUoEQCAEIAM2AuwBCyADIAQoAugBSARAIAQgAzYC6AEgAiEBCyAAIAIQHCECDAELCyAAKAIQIAE2AogCCwumAgEGfyABKAIQIgYoArABRQRAIAZBAToAtAEgBkEBNgKwASAAIAEQLSECA0AgAgRAIAAgAhAwIQYgAkEAQVAgAigCAEEDcSIHQQJGIgMbaigCKCIFKAIQIgQtALQBBEAgACACIAJBMGsiBCADGygCKCACIAJBMGoiBSAHQQNGGygCKEEAQQAQXyIDRQRAIAAgAiAEIAIoAgBBA3EiBEECRhsoAiggAiAFIARBA0YbKAIoQQBBARBfIQMLIAIoAhAiBCgCrAEhBSADKAIQIgMgAygCnAEgBCgCnAFqNgKcASADIAMoAqwBIgQgBSAEIAVKGzYCrAEgACACELgBIAYhAgwCCyAGIQIgBCgCsAENASAAIAUQiw8MAQsLIAEoAhBBADoAtAELC/YBAQR/AkAgABDEAUUNACAAELkIRQ0AIAAQGyEEA0AgBARAIAAgBBC4AkUEQCAEEIECKAIQKAKkASEFIAJFBEAgAUGV3AAQyQQhAgsgASACIAVBAEEBEF8aCyAAIAQQLUUEQCABIAQQgQIoAhAoAqQBIANFBEAgAUG5HhDJBCEDCyADQQBBARBfGgsgACAEEBwhBAwBCwsgAkUgA0VyDQAgASACIANBAEEBEF8oAhAiBCAEKAKcAUHoB2o2ApwBIAQgBCgCrAEiBEEAIARBAEobNgKsAQsgABB7IQQDQCAEBEAgBCABIAIgAxCMDyAEEHohBAwBCwsL6A4BC38gABCRDyAAIAAQiQ8gABCfDiAAEBshAwNAIAMEQCAAIAMQLSEBA0AgAQRAAkAgASgCECgCsAENACABEJwODQAgASABQTBqIgUgASgCAEEDcUEDRhsoAigQpgEiAiABIAFBMGsiBiABKAIAQQNxQQJGGygCKBCmASIERg0AAkAgAigCECgC6AFFBEAgBCgCECgC6AFFDQELIAEgBiABKAIAQQNxIgJBAkYiBhsgASAFIAJBA0YiBRshCEEAIQJBACEEIAFBAEEwIAUbaigCKCgCECIFKALoASIJBEAgBSgC9AEgCSgCECgCiAIoAhAoAvQBayEECygCKCAIKAIoIAFBAEFQIAYbaigCKCgCECIFKALoASIGBEAgBigCECgCiAIoAhAoAvQBIAUoAvQBayECCyABKAIQKAKsASEGIAAQswIiBSgCEEECOgCsARCmASEIEKYBIQcgBSAIRAAAAAAAAAAAQQAgBiACIARqaiICa7ggAkEASiIEGyABKAIQKAKcAUEKbBCjASAFIAcgAkEAIAQbuCABKAIQKAKcARCjASgCECABNgJ4KAIQIAE2AngMAQsgAiAEELEDIgUEQCABIAUQiAMMAQsgAiAEIAEQ4QEaCyAAIAEQMCEBDAELCyAAIAMQHCEDDAELCyAAKAIQIgMoAuABIQECQAJAAkACQCADKALkASICRQRAIAENAQwECyABRQ0BCyABEKYBIQMgACgCECIBIAM2AuABIAEoAuQBIgJFDQELIAIQpgEhAyAAKAIQIgEgAzYC5AEgA0UNACADKAIQIgEtALUBQQVGIQoCQANAIAEoAsgBKAIAIgEEQCABQVBBACABKAIAQQNxQQJHG2ooAigiAhCmASACRw0CIAEQvAggAygCECEBDAELCyAAKAIQIQEMAQtB0qsDQc6/AUHNAkGkMxAAAAsgASgC4AEiA0UEQAwBCyADKAIQIgEtALUBQQNGIQsDQCABKALAASgCACIBRQ0BIAFBMEEAIAEoAgBBA3FBA0cbaigCKCICEKYBIAJGBEAgARC8CCADKAIQIQEMAQsLQbKrA0HOvwFB1AJBpDMQAAALIABBABC7CEEAIQIDQCAAKAIQIgEoAtwBIAJLBEAgASABKALYASACQQJ0aigCACIBNgLAASABIQMDQCADBEAgAygCECIDQQA2ArABIAMoArgBIQMMAQsLA0AgAQRAIAEQlg8gASgCECgCuAEhAQwBCwsgAkEBaiECDAELCwJAIAAoAhAiASgC5AFFBEAgASgC4AFFDQELIAAQGyEBQQAhAwNAIAEEQAJAIAEQpgEgAUcNAAJAIAEoAhAiAigCzAENACAAKAIQKALkASIERSABIARGcg0AIAEgBEEAEOEBIgMoAhAiAkEANgKcASACIAo2AqwBIAEoAhAhAgsgAigCxAENACAAKAIQKALgASICRSABIAJGcg0AIAIgAUEAEOEBIgMoAhAiAkEANgKcASACIAs2AqwBCyAAIAEQHCEBDAELCyADRQ0AIABBABC7CAsgAEHl7gIQJiIBBH8gABA4IAEQqQIQ+AMFQf////8HCyECQQAhAQNAIAEgACgCECIDKALcAUkEQCADIAMoAtgBIAFBAnRqKAIANgLAASAAIAMoArQBRSACEMsEGiABQQFqIQEMAQsLIAAQGyEBIAAoAhAhAwJAIAEEQCADQv////93NwPoAQNAIAEEQAJAIAEgARCmASICRgRAIAEoAhAiAygC9AEhAgwBCyABKAIQIgMgAygC9AEgAigCECgC9AFqIgI2AvQBCyACIAAoAhAiBCgC7AFKBEAgBCACNgLsAQsgAiAEKALoAUgEQCAEIAI2AugBCyADLQC1ASIDRSADQQZGckUEQCABEK8KCyAAIAEQHCEBDAELCyAAEGIgAEcNAUHI2wooAgBB5ABGBEBBASEBA0AgASAAKAIQIgMoArQBSg0DIAMoArgBIAFBAnRqKAIAEIgPIAFBAWohAQwACwALIAAQYhB7IQEDQCABRQ0CIAEoAhAtAJICQQdGBEAgACABEIcPCyABEHohAQwACwALIANCADcD6AELQQAhAgN/IAAoAhAiASgC3AEgAk0EfyAAEBsFIAEgASgC2AEgAkECdGooAgAiATYCwAEDQCAB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fwsQpg8aIAAoAhBC/////3c3A+gBQQAhBwJAIAlBAkgNACAJQQFqIgIQtwghB0EBIQEDQCABIAJGDQEgByABQQJ0akH/////BzYCACABQQFqIQEMAAsACyAAEBshCANAIAgEQCAIEIECIQIgCCgCECIFIAIoAhAoAqQBKAIQIgIoAvQBIgQ2AvQBIAQgACgCECIBKALsAUoEQCABIAQ2AuwBCyAEIAEoAugBSARAIAEgBDYC6AELIAcEQCAFIAIoApABIgI2ApABIAcgAkECdGoiAiACKAIAIgIgBCACIARIGzYCAAsgACAIEBwhCAwBCwsCQCAHBEAgABAbIQEDQCABBEAgASgCECICIAIoAvQBIAcgAigCkAFBAnRqKAIAazYC9AEgACABEBwhAQwBBUEBIQYMAwsACwALQQAhBiAAKAIQKALoASIFQQBMDQAgABAbIQEDQCABBEAgASgCECICIAIoAvQBIAVrNgL0ASAAIAEQHCEBDAELCyAAKAIQIgIgAigC6AEgBWs2AugBIAIgAigC7AEgBWs2AuwBCyAAIAYQig8gAxAbIQEDQCABBEAgASgCECgCwAEQGCABKAIQKALIARAYIAMgARAcIQEMAQsLIAAQGygCECgCgAEQGCAAEBshAQNAIAEEQCABKAIQQQA2AoABIAAgARAcIQEMAQsLIAcQGCADELoBC0Gc2wotAAAEQCAKIAAoAhApA+gBQiCJNwMAQcj2CCgCAEGZyQQgChAeGgsgCkGQAWokAAuOAQEEfyAAKAIQQv////93NwPoASAAEBshAwNAAkAgACgCECEBIANFDQAgAygCECgC9AEiBCABKALsAUoEQCABIAQ2AuwBCyAEIAEoAugBSARAIAEgBDYC6AELIAMhASACBEAgASACIAQgAigCECgC9AFIGyEBCyAAIAMQHCEDIAEhAgwBCwsgASACNgKIAguoAgEHfyMAQRBrIgckACABKAIQQbz+CigCAEEBajYCsAECQAJAIAAoAggiBSAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAFQQF0QQEgBRsiAkH/////A0sEQEHEACEADAILIAAoAgAgAkECdBA5IgNFBEBBMCEADAILIAMgACgCDCIGQQJ0akEAIAIgBmtBAnQQMxogBiAAKAIIIgUgACgCBCIEakkEQCAEQQJ0IQgg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AWoQigQMAQsgBigCzAFBIBAZIQIgBigCzAEhB0EAIQMDQCADIAdGBEBEAAAAAAAAAAAhE0QAAAAAAAAAACEVRAAAAAAAAAAAIRQgAC0AHQRAIAArAxAiFRBYIRQgFRBFIRULIAYgFDkDeCAGIBU5A3BEAAAAAAAAAAAhFSAALQBFQQFGBEAgACsDOCITEFiaIRUgExBFmiETCyAGIBU5A4gBIAYgEzkDgAEgBiAGKQLAATcDICACIAcgBkEgaiAGQfAAaiAGQbgBahDQCCACEBhBAE4NAiAKEBhBACEFQfLABEEAEDYMCQUgAiADQQV0aiIEIAogA0EEdGoiBSkDADcDACAEIAUpAwg3AwggBCAKIANBAWoiA0EAIAMgB0cbQQR0aiIFKQMANwMQIAQgBSkDCDcDGAwBCwALAAsFIAggA0EFdGoiB0L/////////dzcDECAHQv/////////3/wA3AwAgA0EBaiEDDAELCwJAIAYoArwBIgBBEBBBIgUEQEEAIQkgBigCuAEhAkEBIQtBACEDA0AgACADRgRARAAAAAAAACRAIRMDQCALQQFxRSAJQQ5Lcg0EIAggDCAFIAYoArwBIBMQrQ9BACEDA0ACQAJAIAMgDEYEQCAMIQMMAQsgCCADQQV0aiIAKQMAQv/////////3/wBSBEAgACkDEEL/////////d1INAgsgEyAToCETCyAJQQFqIQkgAyAMRyELDAILIANBAWohAwwACwALAAUgBSADQQR0IgdqIgQgAiAHaiIHKQMANwMAIAQgBykDCDcDCCADQQFqIQMMAQsACwALIAoQGEEAIQVBrekDQQAQNgwFCyALQQFxBEAgDiAQIA4oAgBBA3FBA0YbKAIoECAhACAGIA4gDyAOKAIAQQNxQQJGGygCKBAgNgIUIAYgADYCEEGV5QQgBkEQahArIAYgBikCwAE3AwggBkEIaiAGQegAahCKBCAIIAwgBigCaCAGKAJsRAAAAAAAACRAEK0PCyABIAYoArwBNgIAIAoQGAwECyAJQQJqCyEJIAchAwwACwALIAoQGCAGIA4gDyAOKAIAQQNxQQJGGygCKBAgNgIAQfjzAyAGEDZBACEFCyAGQdABaiQAIAULqwMBA38jAEHgAGsiBSQAIAUgACsDADkDMCAFIAArAwg5AzggBSABKwMAOQNAIAUgASsD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Bw0FDAcLQRIMAwtBAQwCC0EEDAELQQILIAZyIgY2AgALIAJBAWoiAi0AACEFDAALAAsgAQRAQf3iBEEAECsLAn8jAEHgAmsiAyQAQQFBHBAZIQ4CQCAAIgcQOEEATgRAIA4gABA4Igk2AgQgDiAJQcgAEBkiBjYCDET////////vfyEcRP///////+//IR8gABAbIQVE////////7/8hHUT////////vfyEeIAYhAQNAIAUEQCAFKAIQIgArAxAhIiAAKwNgISEgACsDWCEjIAArAxghICAAKwNQISQgASABKAIAQQFyNgIAIAEgICAkRAAAAAAAAOA/okQAAAAAAADwPxAiIiSgIiU5A0AgASAgICShIiA5AzAgASAiICMgIaBEAAAAAAAA4D+iRAAAAAAAAPA/ECIiIaAiIzkDOCABICIgIaEiIjkDKCAAIAE2AoABIAFByABqIQEgHyAlECIhHyAcICAQKiEcIB0gIxAiIR0gHiAiECohHiAHIAUQHCEFDAELCyADIBxEAAAAAAAAQsCgOQOoAiADIB1EAAAAAAAAQkCgOQOwAiADIB9EAAAAAAAAQkCgOQO4AiADIAMpA6gCNwOAAiADIAMpA7ACNwOIAiADIAMpA7gCNwOQAiADIB5EAAAAAAAAQsCgOQOgAiADIAMpA6ACNwP4AUEAIQECfyMAQbACayIEJAAgCUECdCIAQQVqQTgQGSECIABBBGoiBUEEEBkhCCAEIAMpA5ACNwNYIAQgAykDiAI3A1AgBCADKQOAAjcDSCAEIAMpA/gBNwNAQQAhACAGIAkgBEFAayACQQAQ1w9BrQEQsAcgBSAIENYPAkACQCAFQQBOBEAgBEHgAWoiCyAFIAIgCBDdDyAEQgA3A9gBIARCADcD0AEgBSACIAtBACAEQdABahDVDyALENQPIAQgAykDkAI3AzggBCADKQOIAjcDMCAEIAMpA4ACNwMoIAQgAykD+AE3AyAgBiAJIARBIGogAkEBENcPIAUgCBDWDyAEQcABaiILIAUgAiAIEN0PIARCADcDuAEgBEIANwOwASAFIAIgC0EBIARBsAFqENUPIAsQ1A8gBEIANwOoASAEQgA3A6ABA0BBACEFIAQoArgBIABNBEAgAhAYIAgQGCAEQdABahDTDyAEQbABahDTDyADIAQoAqgBIgw2ApwCIAQoAqAB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FGohB0EAIQFB0M8KQbzuCSgCABCVASEEA0AgCSgCACABSgRAIAkoAgggAUHIAGxqIgItAABBAnFFBEADQAJAIAIiACgCJCgCDCICRQ0AIAIoAhQiAkUNACACLQAAQQFxRQ0BCwtBMBBVIgMgADYCLCADIAArAzA5AwggACgCACEFIAAhAgNAAkAgAiIGIAVBAnI2AgAgAigCJCgCBCICRQ0AIAIoAhgiAkUNACACKAIAIgVBAXFFDQELCyADIAYrA0A5AxAgBCADIAArAygQww8LIAFBAWohAQwBCwsgCSAENgIYIAlBGGohBEEAIQ0DQCANIBVHBEAgEiANQQN0aiIAKAIEIQsgACgCACEMQQAhAQNAIAEgDEYEQCANQQFqIQ0MAwsgCyABQThsaiIIIAQgByAILQAAGygCACAIELQDIgIoAiAiADYCKAJAIAIoAiQiBiAARwRAIAIoAhghAyACKAIcIQUMAQsgAEEBdEEBIAAbIgZB/////wNLBEBBxAAhAgwGCyACKAIYIAZBAnQQOSIDRQRAQTAhAgwGCyADIAIoAiQiEUECdGpBACAGIBFrQQJ0EDMaIBEgAigCICIAIAIoAhwiBWpJBEAgBUECdCEQIAMgBiARIAVrIhFrIgVBAnRqIAMgEGogEUECdBBUGiACIAU2AhwLIAIgBjYCJCACIAM2AhgLIAMgACAFaiAGcEECdGogCDYCACACIABBAWo2AiAgAUEBaiEBDAALAAsLIAcoAgAQwg8gBCgCABDCDyAHKAIAEMEPDQAgBCgCABDBDw0AIAkoAhQgCRDADw0AIAkoAhggCRDADw0AIAcoAgAQvw8gBCgCABC/D0EAIQJBgP4KLQAAQQRxBEBB3oEFIA4QgAEaIApCioCAgKABNwOgASAOQeKwBCAKQaABahAeGkGoiAQgDhCAARoDQCAJKAIEIAJNBEBBACEBRP///////+9/IRxE////////7/8hIET////////v/yEhRP///////+9/IR8DQCABIBVGBEACQEGPiAQgDhCAARpBACECIApBQGshAQNAIAIgCSgCAE4NASAJKAIIIAJByABsaiIAKwMoIR0gACsDMCEeIAArAzghIiAKIAArA0AiIzkDSCABICI5AwAgCiAeOQM4IAogHTkDMCAOQdWQBCAKQTBqEDEgAkEBaiECICAgIxAi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IAMgAEHQAWoQnAQhByAAQcQBaiADIABBxAJqEJsEIABBuAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqEFsNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCtAELIABBzAJqIgMQgwEgBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQ0wMNACADEJYBGgwBCwsCQCAAQcQBahAjRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEMELNwMAIABBxAFqIABBEGogACgCDCAEELMBIABBzAJqIABByAJqEFsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQNBogAEHEAWoQNBogAEHQAmokAAuaAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQowIhBiADIABB0AFqEJwEIQcgAEHEAWogAyAAQcQCahCbBCAAQbgBahBSIgEgARBWED0gACABQQAQPyICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBbDQAgACgCtAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArQBCyAAQcwCaiIDEIMBIAYgAiAAQbQBaiAAQQhqIAAoAsQCIABBxAFqIABBEGogAEEMaiAHENMDDQAgAxCWARoMAQsLAkAgAEHEAWoQI0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhDECzsBACAAQcQBaiAAQRBqIAAoAgwgBBCzASAAQcwCaiAAQcgCahBbBEAgBCAEKAIAQQJyNgIACyAAKALMAiABEDQaIABBxAFqEDQaIABB0AJqJAALmgMBAn8jAEHQAmsiACQAIAAgAjYCyAIgACABNgLMAiADEKMCIQYgAyAAQdABahCcBCEHIABBxAFqIAMgAEHEAmoQmwQgAEG4AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCtAEgACAAQRBqNgIMIABBADYCCANAAkAgAEHMAmogAEHIAmoQWw0AIAAoArQBIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgK0AQsgAEHMAmoiAxCDASAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxDTAw0AIAMQlgEaDAELCwJAIABBxAFqECNFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQxQs3AwAgAEHEAWogAEEQaiAAKAIMIAQQswEgAEHMAmogAEHIAmoQWwRAIAQgBCgCAEECcjYCAAsgACgCzAIgARA0GiAAQcQBahA0GiAAQdACaiQAC5oDAQJ/IwBB0AJrIgAkACAAIAI2AsgCIAAgATYCzAIgAxCjAiEGIAMgAEHQAWoQnAQhByAAQcQBaiADIABBxAJqEJsEIABBuAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqEFsNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCtAELIABBzAJqIgMQgwEgBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQ0wMNACADEJYBGgwBCwsCQCAAQcQBahAjRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEMYLNgIAIABBxAFqIABBEGogACgCDCAEELMBIABBzAJqIABByAJqEFsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQNBogAEHEAWoQNBogAEHQAmokAAvtAQEBfyMAQSBrIgYkACAGIAE2AhwCQCADKAIEQQFxRQRAIAZBfzYCACAAIAEgAiADIAQgBiAAKAIAKAIQEQkAIQECQAJAAkAgBigCAA4CAAECCyAFQQA6AAAMAwsgBUEBOgAADAILIAVBAToAACAEQQQ2AgAMAQsgBiADEFEgBhDJASEBIAYQTiAGIAMQUSAGENQDIQAgBhBOIAYgABD0ASAGQQxyIAAQ8wEgBSAGQRxqIAIgBiAGQRhqIgMgASAEQQEQngUgBkY6AAAgBigCHCEBA0AgA0EMaxB5IgMgBkcNAAsLIAZBIGokACABC+cCAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHEAWoQUiEGIABBEGoiAiADEFEgAhDKAUGAsglBmrIJIABB0AFqEO4CIAIQTiAAQbgBahBSIgMgAxBWED0gACADQQAQPyIBNgK0ASAAIAI2AgwgAEEANgIIA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCtAEgAxAjIAFqRgRAIAMQIyECIAMgAxAjQQF0ED0gAyADEFYQPSAAIAIgA0EAED8iAWo2ArQBCyAAQfwBaiICEIQBQRAgASAAQbQBaiAAQQhqQQAgBiAAQRBqIABBDGogAEHQAWoQ1QMNACACEJcBGgwBCwsgAyAAKAK0ASABaxA9IAMQQxBoIAAgBTYCACAAEL0LQQFHBEAgBEEENgIACyAAQfwBaiAAQfgBahBcBEAgBCAEKAIAQQJyNgIACyAAKAL8ASADEDQaIAYQNBogAEGAAmokAAvQAwEBfiMAQZACayIAJAAgACACNgKIAiAAIAE2AowCIABB0AFqIAMgAEHgAWogAEHfAWogAEHeAWoQmwcgAEHEAWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCwAEgACAAQSBqNgIcIABBADYCGCAAQQE6ABcgAEHFADoAFgNAAkAgAEGMAmogAEGIAmoQXA0AIAAoAsABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgLAAQsgAEGMAmoiAxCEASAAQRdqIABBFmogAiAAQcABaiAALADfASAALADeASAAQdABaiAAQSBqIABBHGogAEEYaiAAQeABahCaBw0AIAMQlwEaDAELCwJAIABB0AFqECNFDQAgAC0AF0EBRw0AIAAoAhwiAyAAQSBqa0GfAUoNACAAIANBBGo2AhwgAyAAKAIYNgIACyAAIAIgACgCwAEgBBC+CyAAKQMAIQYgBSAAKQMINwMIIAUgBjcDACAAQdABaiAAQSBqIAAoAhwgBBCzASAAQYwCaiAAQYgCahBcBEAgBCAEKAIAQQJyNgIACyAAKAKMAiABEDQaIABB0AFqEDQaIABBkAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCbByAAQbQBahBSIgEgARBWED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIQBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEJoHDQAgAxCXARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEL8LOQMAIABBwAFqIABBEGogACgCDCAEELMBIABB/AFqIABB+AFqEFwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAu5AwAjAEGAAmsiACQAIAAgAjYC+AEgACABNgL8ASAAQcABaiADIABB0AFqIABBzwFqIABBzgFqEJsHIABBtAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArABIAAgAEEQajYCDCAAQQA2AgggAEEBOgAHIABBxQA6AAYDQAJAIABB/AFqIABB+AFqEFwNACAAKAKwASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCsAELIABB/AFqIgMQhAEgAEEHaiAAQQZqIAIgAEGwAWogACwAzwEgACwAzgEgAEHAAWogAEEQaiAAQQxqIABBCGogAEHQAWoQmgcNACADEJcBGgwBCwsCQCAAQcABahAjRQ0AIAAtAAdBAUcNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArABIAQQwAs4AgAgAEHAAWogAEEQaiAAKAIMIAQQswEgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgARA0GiAAQcABahA0GiAAQYACaiQAC48DAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAxCjAiEG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yO0JQb8DEAEACyABKAIIKAIgIgMtACgNASADEOANDAELCwJAIAVBBGoiAigCCEUNACACKAIEIgAoAgAiASACKAIAKAIEIgM2AgQgAyABNgIAIAJBADYCCANAIAAgAkYNASAAKAIEIAAQGCEADAALAAsgBUEQaiQACxkBAn4gACkDCCICIAEpAwgiA1YgAiADVGsLHQAgACgCAEEEdiIAIAEoAgBBBHYiAUsgACABSWsLugECAn8CfET////////v/yEEAnxE////////7/8gASgCACgCICICKAIsIAEoAhhKDQAaRP///////+//IAIgASgCBCgCIEYNABogARCwAgshBQJAIAAoAgAoAiAiAigCLCAAKAIYSg0AIAIgACgCBCgCIEYNACAAELACIQQLIAQgBWEEQCABKAIAKAIAIgIgACgCACgCACIDRgRAIAEoAgQoAgAgACgCBCgCAEgPCyACIANIDwsgBCAFZAszACAAENsNIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAFBADYCCCABQgA3AgALygEBB38jAEEQayIFJAAgAEEANgIIIABCADcCAEEoQTQgAhshByABKAIEIQggASgCACEEA0AgBCAIRwRAIAQoAgAgB2oiAygCBCEJIAMoAgAhAwNAIAMgCUYEQCAEQQRqIQQMAwUgBSADKAIAIgY2AgwgBkGo/wooAgA2AhgCQAJAIAIEQCAGKAIAKAIgIAFHDQELIAINASAGKAIEKAIgIAFGDQELIAAgBUEMahC/AQsgA0EEaiEDDAELAAsACwsgABDpDSAFQRBqJAALPgECfAJ/QX8gACsDACICIAErAwAiA2MNABpBASACIANkDQAaQX8gACsDCCICIAErAwgiA2MNABogAiADZAsLHAAgACgCDCABKAIMaiAAKAIEIAEoAgRqa0ECbQscACAAKAIIIAEoAghqIAAoAgAgASgCAGprQQJtC4wBAQd/AkAgACgCICIDIAEoAigiBEoNACABKAIgIgUgACgCKCIGSg0AQQEhAiAAKAIsIgcgASgCJCIISA0AIAAoAhAgASgCEGsgByABKAIsaiAAKAIkIAhqa0ECbWogBiADIAVqayAEakECbSABKAIMIgEgACgCDCIAayAAIAFrIAAgAUobakwhAgsgAguMAQEHfwJAIAAoAiQiAyAB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AkEBcUUNAiAFKwA4IhEgAysAOCISYw0CIBEgEmQNASAFKwBAIhEgAysAQCISYw0CIBEgEmQhAgsgAg0CIAgoAhAoAqQBQcABcSIBIAAoAhAoAqQBQcABcSICSQ0BIAEgAksNAEF/IQIgCCgCAEEEdiIBIAAoAgBBBHYiAEkNAiAAIAFJIQIMAgtBASECDAELQX8hAgsgBEHgA2okACACCyUAIAAoAgAoAhAoAvgBIgAgASgCACgCECgC+AEiAUogACABSGsLEgAgAUGVugEgAigCCEEBEDUaCxIAIAFBpLoBIAIoAgRBARA1GgsSACABQYW6ASACKAIAQQEQNRoLJQAgACgCACgCECgC9AEiACABKAIAKAIQKAL0ASIBSiAAIAFIawslACABKAIAKAIQKAL0ASIBIAAoAgAoAhAoAvQBIgBKIAAgAUprC0ACAnwBfyAAKwMAIgIgASsDACIDZARAIAArAwggASsDCGVFDwsgAiADYwR/QQBBfyAAKwMIIAErAwhmGwVBAAsLtAEBBX8gACgCKCEEA0AgBCgCBCEBIAQoAgAgAksEQCABIAJBGGxqQQhqIQFBACEDA0AgASgCCCADSwRAIAEgAxDVCBogA0EBaiEDDAELCyABQgA3AgQgASgCABAYIAFCADcCCCABQgA3AgAgAkEBaiECDAELCyABEBggBBAYIABBGGohAQNAIAAoAiAgBUsEQCABIAUQXRogBUEBaiEFDAELCyAAQgA3AhwgACgCGBAYIAAQGAsgAQJ8QQFBf0EAIAArAwAiAiABKwMAIgNjGyACIANkGwsPACAAKAIQEJoBGiAAEBgLWgIBfAF/QX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsLC1oCAXwBf0F/IAArAwAgASsDAKEiAkRIr7ya8td6PmQgAkRIr7ya8td6vmMbIgMEfyADBUF/IAArAwggASsDCKEiAkRIr7ya8td6PmQgAkRIr7ya8td6vmMbCwsjACAAKAIQKAIAQQR2IgAgASgCECgCAEEEdiIBSyAAIAFJawsUACAAKAIQQRxqIABHBEAgABAYCwuOAQIBfwR8IwBBMGsiAyQAIAMgASgCCCIENgIkIAMgBDYC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C0GAgICAeAshAiAHRAAAAAAAAAhAIAK3oaAFRAAAAAAAAAhACxCtASIHOQMAIAEgBzkDoAMgASAHOQOoAyAAQdyqBCABQaADahAdIAFBzcYINgKQAyAAQdmXBCABQZADahAdIAFBzcYINgKAAyAAQaXdBCABQYADahAdIAFBzcYINgLwAiAAQaLeAyABQfACahAdIAFBzcYINgLgAiAAQcHpAyABQeACahAdIAFBzcYINgLQAiAAQY/gBCABQdACahAdIAFBzcYINgLAAiAAQZzKBCABQcACahAdIAFBzcYINgKwAiAAQeHdBCABQbACahAdIAFBzcYINgKgAiAAQcfdAyABQaACahAdIAFBzcYINgKQAiAAQc+TBCABQZACahAdIAFBzcYINgKAAiAAQc/eBCABQYACahAdIAFBzcYINgLwASAAQYPqAyABQfABahAdIABB6dEEQQAQHSABQc3GCDYC4AEgAEGJsAQgAUHgAWoQHSABQc3GCDYC0AEgAEHhrwQgAUHQAWoQHSAAQdfaBEEAEB0gAUHNxgg2AsABIABBmu8EIAFBwAFqEB0gAUHNxgg2ArABIABBgtoEIAFBsAFqEB0gAUHNxgg2AqABIABBvNkEIAFBoAFqEB0gAEGQ0QRBABAdIAFBzcYINgKQASAAQdONBCABQZABahAdIAFBzcYINgKAASAAQbyOBCABQYABahAdIAFBzcYINgJwIABB09sDIAFB8ABqEB0gAUHNxgg2AmAgAEGw4wMgAUHgAGoQHSABQc3GCDYCUCAAQfrbAyABQdAAahAdIAFBzcYINgJAIABB1+IDIAFBQGsQHSAAQdGVBEEAEB0gAUHNxgg2AjAgAEGE4gMgAUEwahAdIAFBzcYINgIgIABB7owEIAFBIGoQHSABQc3GCDYCECAAQdrKBCABQRBqEB0gASAJOQMIIAEgDTkDACAAQYeuBCABEB0gAEHS0ARBABAdIABB1PkEQQAQHSABQeADaiQACycBAX8jAEEQayIBJAAgAUHIxgg2AgAgAEH40gQgARAdIAFBEGokAAuIAQIDfwF+IwBBMGsiASQAIAAoAhAhAiAAKAIMKAIAIgMpAgAhBCABIAMoAgg2AiwgASAENwIkIAFByMYINgIgIABBsPIEIAFBIGoQHSABIAIoAggQIDYCFCABQcjGCDYCECAAQbaD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YWwgcGFyYW1ldGVyIGVudGl0eQBYTUwgb3IgdGV4dCBkZWNsYXJhdGlvbiBub3QgYXQgc3RhcnQgb2YgZW50aXR5AHVuZGVmaW5lZCBlbnRpdHkAcGFyc2VyLT5tX29wZW5JbnRlcm5hbEVudGl0aWVzID09IG9wZW5FbnRpdHkAcGFyc2VyLT5tX29wZW5WYWx1ZUVudGl0aWVzID09IG9wZW5FbnRpdHkAcGFyc2VyLT5tX29wZW5BdHRyaWJ1dGVFbnRpdGllcyA9PSBvcGVuRW50aXR5AGluZmluaXR5AGZhbnRhc3kAU3BhcnNlTWF0cml4X2Nvb3JkaW5hdGVfZm9ybV9hZGRfZW50cnkAL3N2Zy9pdm9yeQBvdXQgb2YgbWVtb3J5AEZlYnJ1YXJ5AEphbnVhcnkAZ3ZwbHVnaW5fZG90X2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9uZWF0b19sYXlvdXRfTFRYX2xpYnJhcnkAZ3ZwbHVnaW5fY29yZV9MVFhfbGlicmFyeQBnYXRoZXJfdGltZV9lbnRyb3B5AG5vZGVzX2NvcHkAYWxiYW55AEp1bHkAU3BhcnNlTWF0cml4X211bHRpcGx5AGVxdWFsbHkAYXNzZW1ibHkAc3VtbWVyc2t5AHNoeQBzYXRpc2Z5AGJlYXV0aWZ5AG5vanVzdGlmeQBDbGFzc2lmeQAvc3ZnL2xpZ2h0Z3JleQAvc3ZnL2RpbWdyZXkAL3N2Zy9kYXJrZ3JleQAvc3ZnL2xpZ2h0c2xhdGVncmV5AC9zdmcvZGFya3NsYXRlZ3JleQAvc3ZnL3NsYXRlZ3JleQB3ZWJncmV5AHgxMWdyZXkAL3N2Zy9ncmV5AG1vdmUgdG8gZnJvbnQgbG9jayBpbmNvbnNpc3RlbmN5AGV4dHJhY3RfYWRqYWNlbmN5AG1lcmdlX29uZXdheQBhcnJheQBhbGxvY0FycmF5AC9zdmcvbGlnaHRncmF5AC9zdmcvZGltZ3JheQAvc3ZnL2RhcmtncmF5AC9zdmcvbGlnaHRzbGF0ZWdyYXkAL3N2Zy9kYXJrc2xhdGVncmF5AC9zdmcvc2xhdGVncmF5AHdlYmdyYXkAeDExZ3JheQAvc3ZnL2dyYXkAVGh1cnNkYXkAVHVlc2RheQBXZWRuZXNkYXkAU2F0dXJkYXkAU3VuZGF5AE1vbmRheQBGcmlkYXkATWF5AC4uLy4uL2xpYi9jZ3JhcGgvZ3JhbW1hci55AC4uLy4uL2xpYi9jb21tb24vaHRtbHBhcnNlLnkAJW0vJWQvJXkAcG9ydGhveXgAcG9ydGhvX3l4AHh4eABib3gAdmlld0JveABjaGtCb3VuZEJveAAvTWVkaWFCb3gAZ2V0X2VkZ2VfbGFiZWxfbWF0cml4AGlkZWFsX2Rpc3RhbmNlX21hdHJpeABtdXN0IG5vdCB1bmRlY2xhcmUgcHJlZml4AHVuYm91bmQgcHJlZml4AGh0bWxsZXgAbWF4ACMlMDJ4JTAyeCUwMngAIyUyeCUyeCUyeCUyeAAjJTF4JTF4JTF4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAcmFycm93AGxhcnJvdwBIZWx2ZXRpY2EtTmFycm93AGFycm93X2xlbmd0aF9jcm93AC9zdmcvc25vdwBzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfc2xvdwAvc3ZnL2xpZ2h0eWVsbG93AC9zdmcvZ3JlZW55ZWxsb3cAL3N2Zy9saWdodGdvbGRlbnJvZHllbGxvdwAvc3ZnL3llbGxvdwBmYXRhbCBlcnJvciAtIHNjYW5uZXIgaW5wdXQgYnVmZmVyIG92ZXJmbG93AGZsZXggc2Nhbm5lciBwdXNoLWJhY2sgb3ZlcmZsb3cAY291cmllcm5ldwBTcHJpbmdTbW9vdGhlcl9uZXcAVHJpYW5nbGVTbW9vdGhlcl9uZXcAZGlhZ19wcmVjb25fbmV3AFF1YWRUcmVlX25ldwBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcjJfbmV3AG4gJiYgbmV3AHNrZXcAc3RydmlldwAvc3ZnL2hvbmV5ZGV3ACAtYW5jaG9yIHcAc29ydHYAcG92OnBvdgBOb3YAaW52AGVxdWl2AHBpdgBub25hbWUuZ3YAY2Mlc18lenUAY2MlcyslenUAL3N2Zy9wZXJ1AG51AG11ACVjJWxsdQBUaHUAdGF1AFRhdQBOdQBNdQBfcG9ydF8lc18oJWQpXyglZClfJXUATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQBOdW1iZXIgb2YgaW5jcmVhc2VzID0gJXUAcGxhaW50ZXh0AHN0cmVzc3d0AGlucHV0AHRleHRsYXlvdXQAZG90X2xheW91dABuZWF0b19sYXlvdXQAaW5pdExheW91dABjbHVzdABtYXBDbHVzdABsYWJlbGp1c3QAc2NBZGp1c3QAQXVndXN0AGVkZ2VzZmlyc3QAbm9kZXNmaXJzdABtYXhpbWFsX2luZGVwZW5kZW50X2VkZ2Vfc2V0X2hlYXZlc3RfZWRnZV9wZXJub2RlX3N1cGVybm9kZXNfZmlyc3QAZXhpc3QAcmVhbGlnbk5vZGVsaXN0AGFwcGVuZE5vZGVsaXN0AGRlZmF1bHRkaXN0AG1pbmRpc3QAcG93ZXJfZGlzdABncmFwaF9kaXN0AGF2Z19kaXN0AGdldEVkZ2VMaXN0AGlxdWVzdABsb3dhc3QAc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nX2Zhc3QAZ3Zfc29ydAB2aWV3cG9ydAB0YWlscG9ydAB1bmV4cGVjdGVkIHBhcnNlciBzdGF0ZSAtIHBsZWFzZSBzZW5kIGEgYnVnIHJlcG9ydABoZWFkcG9ydABodG1sX3BvcnQAaW5zZXJ0AFJUcmVlSW5zZXJ0AGZpbmRTVmVydABzdGFydABwYXJ0AGVzdGltYXRlX3RleHRfd2lkdGhfMXB0AHF1b3QAf3Jvb3QAbm90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG5vZGVsaXN0X3NldABpbnRzX3NldAB0cmFwc19zZXQAbm9kZXNfc2V0AHNjYXJsZXQAL3N2Zy9kYXJrdmlvbGV0AC9zdmcvYmx1ZXZpb2xldAAvc3ZnL3Zpb2xldABUcmVidWNoZXQAYWd4Z2V0AHRhaWx0YXJnZXQAbGFiZWx0YXJnZXQAZWRnZXRhcmdldABoZWFkdGFyZ2V0AGJpdGFycmF5X2dldABkZWdsaXN0X2dldABub2RlbGlzdF9nZXQAYWRqX2xpc3RfZ2V0AHNlZ19saXN0X2dldABzYW1lX2xpc3RfZ2V0AGVkZ2VfbGlzdF9nZXQAc2ZvbnRfZ2V0AHJvd3NfZ2V0AHRzdHNfZ2V0AHBvaW50c19nZXQAcGFpcnNfZ2V0AHRyYXBzX2dldABjZWxsc19nZXQAY29sb3JzZWdzX2dldABib3hlc19nZXQAdHJpYW5nbGVzX2dldABjeWNsZXNfZ2V0AHFub2Rlc19nZXQAZXN0YWNrX2dldABpbnRfc3RhY2tfZ2V0AGRmc19zdGFja19nZXQAbm9kZV9zdGFja19nZXQAYmV6aWVyX3BhdGhfZ2V0AG5vZGVfcXVldWVfZ2V0AHN0eWxlc2hlZXQAc3RyaWN0AGFnY29weWRpY3QAYWdtYWtlZGF0YWRpY3QAcmVjLT5kaWN0ID09IGRhdGFkaWN0AHdyaXRlX2RpY3QAc2VjdABlbmNvZGluZyBzcGVjaWZpZWQgaW4gWE1MIGRlY2xhcmF0aW9uIGlzIGluY29ycmVjdABhc3BlY3QAbGF5ZXJzZWxlY3QAS1BfU3VidHJhY3QAUXVhZFRyZWVfcmVwdWxzaXZlX2ZvcmNlX2ludGVyYWN0AGNvbXBhY3QAT2N0AHJlcXVlc3RlZCBmZWF0dXJlIHJlcXVpcmVzIFhNTF9EVEQgc3VwcG9ydCBpbiBFeHBhdABsYWJlbGZsb2F0AGxhYmVsX2Zsb2F0AFNwYXJzZU1hdHJpeF9mcm9tX2Nvb3JkaW5hdGVfZm9ybWF0AC9zdmcvd2hlYXQAZGVnbGlzdF9hdABub2RlbGlzdF9hdABhZGpfbGlzdF9hdABzYW1lX2xpc3RfYXQAcG9pbnRzX2F0AHRyYXBzX2F0AGNvbG9yc2Vnc19hdAB0cmlhbmdsZXNfYXQAcW5vZGVzX2F0AFNhdABBZ3JhcGhpbmZvX3QAQWdlZGdlaW5mb190AEFnbm9kZWluZm9fdABcdABmbGF0aW5kZXgoYWdoZWFkKGUpKSA8IE0tPm5yb3dzAG1pbnVzAG9wbHVzAGhlYXJ0cwBzYW1wbGVwb2ludHMAZGlyZWRnZWNvbnN0cmFpbnRzAGxldmVsIGFzc2lnbm1lbnQgY29uc3RyYWludHMAeHkgcHNldWRvLW9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggcHNldWRvLW9ydGhvZ29uYWwgY29uc3RyYWludHMAeHkgb3J0aG9nb25hbCBjb25zdHJhaW50cwB5eCBvcnRob2dvbmFsIGNvbnN0cmFpbnRzAGxpbmUgc2VnbWVudHMAc2V0X2NlbGxfaGVpZ2h0cwByZWN0cwBhY2NvdW50aW5nUmVwb3J0U3RhdHMAZW50aXR5VHJhY2tpbmdSZXBvcnRTdGF0cwBaYXBmRGluZ2JhdHMAcmVtaW5jcm9zcwBjb21wcmVzcwBndnVzZXJzaGFwZV9maWxlX2FjY2VzcwBicmFzcwBjbGFzcwBhcHBseWF0dHJzAGFnbWFrZWF0dHJzAGJpbmRhdHRycwBwYXJzZV9sYXllcnMAbWtDbHVzdGVycwByb3VuZF9jb3JuZXJzAG1ha2VfYmFycmllcnMAY2RhdGEubnRvcGxldmVsID09IGFnbm5vZGVzKGcpIC0gY2RhdGEubnZhcnMAY2Fubm90IHJlYWxsb2Mgb3BzAGNhbm5vdCByZWFsbG9jIHBubHBzAGVwcwBjb3JlX2xvYWRpbWFnZV9wcwBlcHM6cHMAcHMyOnBzAChsaWIpOnBzAGd2X3RyaW1femVyb3MAYWd4YnVmX3RyaW1femVyb3MAdGV4Z3lyZWhlcm9zAGltYWdlcG9zAHRpbm9zAHNldEVkZ2VMYWJlbFBvcwBTZXR0aW5nIGluaXRpYWwgcG9zaXRpb25zAHhsaW50ZXJzZWN0aW9ucwBjb2x1bW5zAG5vZGVzX2NvbnRhaW5zAGRlamF2dXNhbnMAbmltYnVzc2FucwBsaWJlcmF0aW9uc2FucwBmcmVlc2FucwBPcGVuU2FucwBvZmZzZXQgPT0gbl90ZXJtcwBkaXRlbXMAZGlhbXMAZmxhdGluZGV4KGFndGFpbChlKSkgPCBNLT5uY29scwBjYW5ub3QgcmVhbGxvYyBkcS5wbmxzAGNhbm5vdCByZWFsbG9jIHBubHMAbGV2ZWxzAGZvcmNlbGFiZWxzAGRpYWdvbmFscwBtZXJnZV9yYW5rcwBzcGxpdEJsb2NrcwBpbnZpcwBjYW5ub3QgcmVhbGxvYyB0cmlzAHNldF9jZWxsX3dpZHRocwBDYWxjdWxhdGluZyBzaG9ydGVzdCBwYXRocwB5ZXMAc2hvd2JveGVzAGJlYXV0aWZ5X2xlYXZlcwBhdHRhY2hfZWRnZV9sYWJlbF9jb29yZGluYXRlcwBwb2x5bGluZXMAc3BsaW5lcwBvcnRob2dvbmFsIGxpbmVzAHRleGd5cmV0ZXJtZXMAb3RpbWVzAFRpbWVzAGZvbnRuYW1lcwBwcmVmaXggbXVzdCBub3QgYmUgYm91bmQgdG8gb25lIG9mIHRoZSByZXNlcnZlZCBuYW1lc3BhY2UgbmFtZXMAU3BhcnNlTWF0cml4X3N1bV9yZXBlYXRfZW50cmllcwBwZXJpcGhlcmllcwBHZXRCcmFuY2hlcwBmIDwgZ3JhcGhbal0ubmVkZ2VzAG1pbm1heF9lZGdlcwBtYWtlU3RyYWlnaHRFZGdlcwB1bmRvQ2x1c3RlckVkZ2VzAGNvbXBvdW5kRWRnZXMAbWVyZ2VfdHJlZXMAX19jbHVzdGVybm9kZXMAYWdubm9kZXMATkRfaWQobnApID09IG5fbm9kZXMATG9hZE5vZGVzAHNpZGVzAHNwYWRlcwB2ZXJ0aWNlcwBjb29yZHMAc2V0Ym91bmRzAG1kcwBjZHMAbWFrZVNlbGZBcmNzAGVtaXRfZWRnZV9ncmFwaGljcwBjbHVicwBjb25zb2xhcwAlbGYlMnMAClN0cmluZyBzdGFydGluZzo8JS44MHMAClN0cmluZyBzdGFydGluZzoiJS44MHMAICUuKnMAJS4qcyVzJXMAZXhwYXQ6IEFjY291bnRpbmcoJXApOiBEaXJlY3QgJTEwbGx1LCBpbmRpcmVjdCAlMTBsbHUsIGFtcGxpZmljYXRpb24gJTguMmYlcwAgJXM6JXMAX18lZDolcwAvJXMvJXMAJXMtJXMALCVzACBmb250LWZhbWlseT0iJXMAIiBzdHJva2UtZGFzaGFycmF5PSIlcwAiIGNsYXNzPSIlcwBwb2x5ICVzACgoJWYsJWYpLCglZiwlZikpICVzICVzAGNvbG9yICVzACBUaXRsZTogJXMAInN0cmljdCI6ICVzAGNvdXIAdXRyAGFwcGVuZGF0dHIAYWRkYXR0cgBiZWdpbnN0cgBzdHJ2aWV3X3N0cgBwb3ZfY29sb3JfYXNfc3RyAHZwc2MhPW51bGxwdHIAYmVuZFRvU3RyAHVhcnIAY3JhcnIAbGFycgBoYXJyAGRhcnIAdUFycgByQXJyAGxBcnIAaEFycgBkQXJyAEFwcgBTcGFyc2VNYXRyaXhfbXVsdGlwbHlfdmVjdG9yAHRlcm1pbmF0b3IAaW5zdWxhdG9yAGludGVybmFsRW50aXR5UHJvY2Vzc29yAHRleGd5cmVjdXJzb3IAc3ludGF4IGVycm9yAG1vbmV5X2dldCBlcnJvcgBFcnJvcgByZmxvb3IAbGZsb29yAGxhYmVsZm9udGNvbG9yAHBlbmNvbG9yAGZpbGxjb2xvcgBiZ2NvbG9yAHJvdyBtYWpvcgBjb2x1bW4gbWFqb3IAbmVpZ2hib3IAc3R5bGVfb3IAbXIAcmFua2RpcgBwYWdlZGlyAGxheWVyAE5vZGVDb3ZlcgAvc3ZnL3NpbHZlcgBjbHVzdGVyAGV4cGFuZENsdXN0ZXIAcnByb21vdGVyAGxwcm9tb3RlcgBjZW50ZXIAbWF4aXRlcgBwYXJ0aWFsIGNoYXJhY3RlcgAhIHJvb3RQYXJzZXItPm1fcGFyZW50UGFyc2VyAGRrZ3JlZW5jb3BwZXIAY29vbGNvcHBlcgBndl9zb3J0X2NvbXBhcl93cmFwcGVyAHRhcGVyAG92ZXJsYXBfYmV6aWVyAGZpZ19iZXppZXIAY291cmllcgBDb3VyaWVyAGhpZXIAZGFnZ2VyAERhZ2dlcgBvdXRwdXRvcmRlcgBwb3N0b3JkZXIAZmxhdF9yZW9yZGVyAGNlbGxib3JkZXIAZml4TGFiZWxPcmRlcgBjeWxpbmRlcgAvc3ZnL2xhdmVuZGVyAHJlbmRlcgBmb2xkZXIAY2x1c3Rlcl9sZWFkZXIATkRfVUZfc2l6ZShuKSA8PSAxIHx8IG4gPT0gbGVhZGVyAE9jdG9iZXIAcmVmZXJlbmNlIHRvIGludmFsaWQgY2hhcmFjdGVyIG51bWJlcgBOb3ZlbWJlcgBTZXB0ZW1iZXIARGVjZW1iZXIAbWFjcgBicgBzdGFyAGZlbGRzcGFyAHJlZ3VsYXIAaHRleHRzcGFuc19jbGVhcgBpb3NfYmFzZTo6Y2xlYXIAYnJ2YmFyAE1hcgBccgBORF9yYW5rKHYpID09IHIAc3RyZXEAc3Rydmlld19lcQBzdHJ2aWV3X3N0cl9lcQBzdHJ2aWV3X2Nhc2Vfc3RyX2VxAHN0cnZpZXdfY2FzZV9lcQB2cAAlJUJlZ2luUHJvbG9nCi9Eb3REaWN0IDIwMCBkaWN0IGRlZgpEb3REaWN0IGJlZ2luCgovc2V0dXBMYXRpbjEgewptYXJrCi9FbmNvZGluZ1ZlY3RvciAyNTYgYXJyYXkgZGVmCiBFbmNvZGluZ1ZlY3RvciAwCgpJU09MYXRpbjFFbmNvZGluZyAwIDI1NSBnZXRpbnRlcnZhbCBwdXRpbnRlcnZhbApFbmNvZGluZ1ZlY3RvciA0NSAvaHlwaGVuIHB1dAoKJSBTZXQgdXAgSVNPIExhdGluIDEgY2hhcmFjdGVyIGVuY29kaW5nCi9zdGFybmV0SVNPIHsKICAgICAgICBkdXAgZHVwIGZpbmRmb250IGR1cCBsZW5ndGggZGljdCBiZWdpbgogICAgICAgIHsgMSBpbmRleCAvRklEIG5lIHsgZGVmIH17IHBvcCBwb3AgfSBpZmVsc2UKICAgICAgICB9IGZvcmFsbAogICAgICAgIC9FbmNvZGluZyBFbmNvZGluZ1ZlY3RvciBkZWYKICAgICAgICBjdXJyZW50ZGljdCBlbmQgZGVmaW5lZm9udAp9IGRlZgovVGltZXMtUm9tYW4gc3Rhcm5ldElTTyBkZWYKL1RpbWVzLUl0YWxpYyBzdGFybmV0SVNPIGRlZgovVGltZXMtQm9sZCBzdGFybmV0SVNPIGRlZgovVGltZXMtQm9sZEl0YWxpYyBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLUJvbGQgc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgovQ291cmllciBzdGFybmV0SVNPIGRlZgovQ291cmllci1PYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLUJvbGQgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItQm9sZE9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKY2xlYXJ0b21hcmsKfSBiaW5kIGRlZgoKJSVCZWdpblJlc291cmNlOiBwcm9jc2V0IGdyYXBodml6IDAgMAovY29vcmQtZm9udC1mYW1pbHkgL1RpbWVzLVJvbWFuIGRlZgovZGVmYXVsdC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmCi9jb29yZGZvbnQgY29vcmQtZm9udC1mYW1pbHkgZmluZGZvbnQgOCBzY2FsZWZvbnQgZGVmCgovSW52U2NhbGVGYWN0b3IgMS4wIGRlZgovc2V0X3NjYWxlIHsKICAgICAgIGR1cCAxIGV4Y2ggZGl2IC9JbnZTY2FsZUZhY3RvciBleGNoIGRlZgogICAgICAgc2NhbGUKfSBiaW5kIGRlZgoKJSBzdHlsZXMKL3NvbGlkIHsgW10gMCBzZXRkYXNoIH0gYmluZCBkZWYKL2Rhc2hlZCB7IFs5IEludlNjYWxlRmFjdG9yIG11bCBkdXAgXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovZG90dGVkIHsgWzEgSW52U2NhbGVGYWN0b3IgbXVsIDYgSW52U2NhbGVGYWN0b3IgbXVsXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovaW52aXMgey9maWxsIHtuZXdwYXRofSBkZWYgL3N0cm9rZSB7bmV3cGF0aH0gZGVmIC9zaG93IHtwb3AgbmV3cGF0aH0gZGVmfSBiaW5kIGRlZgovYm9sZCB7IDIgc2V0bGluZXdpZHRoIH0gYmluZCBkZWYKL2ZpbGxlZCB7IH0gYmluZCBkZWYKL3VuZmlsbGVkIHsgfSBiaW5kIGRlZgovcm91bmRlZCB7IH0gYmluZCBkZWYKL2RpYWdvbmFscyB7IH0gYmluZCBkZWYKL3RhcGVyZWQgeyB9IGJpbmQgZGVmCgolIGhvb2tzIGZvciBzZXR0aW5nIGNvbG9yIAovbm9kZWNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovZWRnZWNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovZ3JhcGhjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYKL25vcGNvbG9yIHtwb3AgcG9wIHBvcH0gYmluZCBkZWYKCi9iZWdpbnBhZ2UgewklIGkgaiBucGFnZXMKCS9ucGFnZXMgZXhjaCBkZWYKCS9qIGV4Y2ggZGVmCgkvaSBleGNoIGRlZgoJL3N0ciAxMCBzdHJpbmcgZGVmCglucGFnZXMgMSBndCB7CgkJZ3NhdmUKCQkJY29vcmRmb250IHNldGZvbnQKCQkJMCAwIG1vdmV0bwoJCQkoXCgpIHNob3cgaSBzdHIgY3ZzIHNob3cgKCwpIHNob3cgaiBzdHIgY3ZzIHNob3cgKFwpKSBzaG93CgkJZ3Jlc3RvcmUKCX0gaWYKfSBiaW5kIGRlZgoKL3NldF9mb250IHsKCWZpbmRmb250IGV4Y2gKCXNjYWxlZm9udCBzZXRmb250Cn0gZGVmCgolIGRyYXcgdGV4dCBmaXR0ZWQgdG8gaXRzIGV4cGVjdGVkIHdpZHRoCi9hbGlnbmVkdGV4dCB7CQkJJSB3aWR0aCB0ZXh0CgkvdGV4dCBleGNoIGRlZgoJL3dpZHRoIGV4Y2ggZGVmCglnc2F2ZQoJCXdpZHRoIDAgZ3QgewoJCQlbXSAwIHNldGRhc2gKCQkJdGV4dCBzdHJpbmd3aWR0aCBwb3Agd2lkdGggZXhjaCBzdWIgdGV4dCBsZW5ndGggZGl2IDAgdGV4dCBhc2hvdwoJCX0gaWYKCWdyZXN0b3JlCn0gZGVmCgovYm94cHJpbSB7CQkJCSUgeGNvcm5lciB5Y29ybmVyIHhzaXplIHlzaXplCgkJNCAyIHJvbGwKCQltb3ZldG8KCQkyIGNvcHkKCQlleGNoIDAgcmxpbmV0bwoJCTAgZXhjaCBybGluZXRvCgkJcG9wIG5lZyAwIHJsaW5ldG8KCQljbG9zZXBhdGgKfSBiaW5kIGRlZgoKL2VsbGlwc2VfcGF0aCB7CgkvcnkgZXhjaCBkZWYKCS9yeCBleGNoIGRlZgoJL3kgZXhjaCBkZWYKCS94IGV4Y2ggZGVmCgltYXRyaXggY3VycmVudG1hdHJpeAoJbmV3cGF0aAoJeCB5IHRyYW5zbGF0ZQoJcnggcnkgc2NhbGUKCTAgMCAxIDAgMzYwIGFyYwoJc2V0bWF0cml4Cn0gYmluZCBkZWYKCi9lbmRwYWdlIHsgc2hvd3BhZ2UgfSBiaW5kIGRlZgovc2hvd3BhZ2UgeyB9IGRlZgoKL2xheWVyY29sb3JzZXEKCVsJJSBsYXllciBjb2xvciBzZXF1ZW5jZSAtIGRhcmtlc3QgdG8gbGlnaHRlc3QKCQlbMCAwIDBdCgkJWy4yIC44IC44XQoJCVsuNCAuOCAuOF0KCQlbLjYgLjggLjhdCgkJWy44IC44IC44XQoJXQpkZWYKCi9sYXllcmxlbiBsYXllcmNvbG9yc2VxIGxlbmd0aCBkZWYKCi9zZXRsYXllciB7L21heGxheWVyIGV4Y2ggZGVmIC9jdXJsYXllciBleGNoIGRlZgoJbGF5ZXJjb2xvcnNlcSBjdXJsYXllciAxIHN1YiBsYXllcmxlbiBtb2QgZ2V0CglhbG9hZCBwb3Agc2V0aHNiY29sb3IKCS9ub2RlY29sb3Ige25vcGNvbG9yfSBkZWYKCS9lZGdlY29sb3Ige25vcGNvbG9yfSBkZWYKCS9ncmFwaGNvbG9yIHtub3Bjb2xvcn0gZGVmCn0gYmluZCBkZWYKCi9vbmxheWVyIHsgY3VybGF5ZXIgbmUge2ludmlzfSBpZiB9IGRlZgoKL29ubGF5ZXJzIHsKCS9teXVwcGVyIGV4Y2ggZGVmCgkvbXlsb3dlciBleGNoIGRlZgoJY3VybGF5ZXIgbXlsb3dlciBsdAoJY3VybGF5ZXIgbXl1cHBlciBndAoJb3IKCXtpbnZpc30gaWYKfSBkZWYKCi9jdXJsYXllciAwIGRlZgoKJSVFbmRSZXNvdXJjZQolJUVuZFByb2xvZwolJUJlZ2luU2V0dXAKMTQgZGVmYXVsdC1mb250LWZhbWlseSBzZXRfZm9udAolIC9hcnJvd2xlbmd0aCAxMCBkZWYKJSAvYXJyb3d3aWR0aCA1IGRlZgoKJSBtYWtlIHN1cmUgcGRmbWFyayBpcyBoYXJtbGVzcyBmb3IgUFMtaW50ZXJwcmV0ZXJzIG90aGVyIHRoYW4gRGlzdGlsbGVyCi9wZGZtYXJrIHdoZXJlIHtwb3B9IHt1c2VyZGljdCAvcGRmbWFyayAvY2xlYXJ0b21hcmsgbG9hZCBwdXR9IGlmZWxzZQolIG1ha2UgJzw8JyBhbmQgJz4+JyBzYWZlIG9uIFBTIExldmVsIDEgZGV2aWNlcwovbGFuZ3VhZ2VsZXZlbCB3aGVyZSB7cG9wIGxhbmd1YWdlbGV2ZWx9ezF9IGlmZWxzZQoyIGx0IHsKICAgIHVzZXJkaWN0ICg8PCkgY3ZuIChbKSBjdm4gbG9hZCBwdXQKICAgIHVzZXJkaWN0ICg+PikgY3ZuIChbKSBjdm4gbG9hZCBwdXQKfSBpZgoKJSVFbmRTZXR1cABzdXAAZ3JvdXAAY3VwAHRoaW5zcABlbnNwAGVtc3AAbmJzcABwZXJwAHdlaWVycABnZW5lcmF0ZS1jb25zdHJhaW50cy5jcHAAYmxvY2suY3BwAGNzb2x2ZV9WUFNDLmNwcAB/dG9wAHByb3AAYWd4YnBvcABub3AAYXN5bXAAY29tcABmaW5kQ0NvbXAAYm1wAHNjYWxlX2NsYW1wAHhscABscCAhPSBjbHAAdGFpbF9scABoZWFkX2xwAHRhaWx0b29sdGlwAGxhYmVsdG9vbHRpcABlZGdldG9vbHRpcABoZWFkdG9vbHRpcABoZWxsaXAAdGFpbGNsaXAAaGVhZGNsaXAAL3N2Zy9wYXBheWF3aGlwAGhwAHRyYW5zcG9zZV9zdGVwAGNvbXB1dGVTdGVwAGxheWVybGlzdHNlcABsYXllcnNlcABpcHNlcAByYW5rc2VwAG5vZGVzZXAAc3ViZ3JhcGhzIG5lc3RlZCBtb3JlIHRoYW4gJWQgZGVlcABTZXAAc2ZkcABjcAB3ZWJwAGlkbWFwAGNsdXN0ZXJfbWFwAGNtYXB4Om1hcABlcHM6bWFwAGNtYXB4X25wOm1hcABpbWFwX25wOm1hcABpc21hcDptYXAAaW1hcDptYXAAY21hcDptYXAAc3ZnOm1hcABqcGc6bWFwAHBuZzptYXAAanBlZzptYXAAZ2lmOm1hcABqcGU6bWFwAG92ZXJsYXAAbGV2ZWxzZ2FwAGNhcABLUF9VcAAlSTolTTolUyAlcABzdGFydCA8PSBwAHJzcXVvAGxzcXVvAHJkcXVvAGxkcXVvAGJkcXVvAHNicXVvAHJzYXF1bwBsc2FxdW8AcmFxdW8AbGFxdW8AYXV0bwBOdW5pdG8AL3N2Zy90b21hdG8AbmVhdG8AZXVybwAvc3ZnL2dhaW5zYm9ybwBNZXRob2RaZXJvAG1pY3JvAG5pbWJ1c21vbm8AbGliZXJhdGlvbm1vbm8AZnJlZW1vbm8AYXJpbW8AcmF0aW8AcG9ydGhvAHJobwBSaG8AL3N2Zy9pbmRpZ28AcGluZm8AY2NncmFwaGluZm8AY2Nnbm9kZWluZm8AY2xfZWRnZV9pbmZvAGdldFBhY2tJbmZvAG1ha2VJbmZvAHBhcnNlUGFja01vZGVJbmZvAGNpcmNvAGljbwBcJTAzbwAvc3ZnL3Jvc3licm93bgAvc3ZnL3NhbmR5YnJvd24AdmVyeWRhcmticm93bgAvc3ZnL3NhZGRsZWJyb3duAC9zdmcvYnJvd24AS1BfRG93bgBjYW5ub3QgY2hhbmdlIHNldHRpbmcgb25jZSBwYXJzaW5nIGhhcyBiZWd1bgBTdW4ASnVuAHRob3JuAC9zdmcvY3JpbXNvbgB4ZG90X2pzb24AeGRvdF9qc29uOmpzb24AanNvbjA6anNvbgBvbWljcm9uAE9taWNyb24Ac2Nhcm9uAFNjYXJvbgB3ZWJtYXJvb24AeDExbWFyb29uAC9zdmcvbWFyb29uAC9zdmcvbGlnaHRzYWxtb24AL3N2Zy9kYXJrc2FsbW9uAC9zdmcvc2FsbW9uAHVwc2lsb24AZXBzaWxvbgBVcHNpbG9uAEVwc2lsb24AcmVzb2x1dGlvbgBkaXN0b3J0aW9uAHN0ZDo6ZXhjZXB0aW9uAHBhcnRpdGlvbgBkb3RfcG9zaXRpb24AU2V0dGluZyB1cCBzdHJlc3MgZnVuY3Rpb24AdW5jbG9zZWQgQ0RBVEEgc2VjdGlvbgBwb3N0YWN0aW9uAHJvdGF0aW9uAG9yaWVudGF0aW9uAGFib21pbmF0aW9uAGFjY291bnRpbmdHZXRDdXJyZW50QW1wbGlmaWNhdGlvbgB4ZG90dmVyc2lvbgBTVHNldFVuaW9uADxwb2x5Z29uAGhleGFnb24Ac2VwdGFnb24AcGVudGFnb24AdHJpcGxlb2N0YWdvbgBkb3VibGVvY3RhZ29uAC9zdmcvbGVtb25jaGlmZm9uAE1vbgBwbHVzbW4Abm90aW4AaXNpbgAvc3ZnL21vY2Nhc2luAHBpbgBtaW4Adm9yb19tYXJnaW4AaW5maW4Ab25lZF9vcHRpbWl6ZXJfdHJhaW4AcGxhaW4AbWFrZV9jaGFpbgBtZXJnZV9jaGFpbgBkZWxldGVNaW4AZmluZE1pbgB2YWxpZ24AYmFsaWduAHllbgBNdWx0aWxldmVsX2NvYXJzZW4AY3VycmVuAFBvYnNvcGVuAGd2X2ZvcGVuAGd2dXNlcnNoYXBlX29wZW4AZW50aXR5VHJhY2tpbmdPbk9wZW4AL3N2Zy9saW5lbgBkaW1lbgBtaW5sZW4Ac3R5bGVfdG9rZW4AdW5jbG9zZWQgdG9rZW4AL3N2Zy95ZWxsb3dncmVlbgBtZWRpdW1mb3Jlc3RncmVlbgAvc3ZnL2ZvcmVzdGdyZWVuAC9zdmcvbGlnaHRncmVlbgBodW50ZXJzZ3JlZW4AL3N2Zy9sYXduZ3JlZW4AL3N2Zy9kYXJrZ3JlZW4AL3N2Zy9tZWRpdW1zcHJpbmdncmVlbgAvc3ZnL3NwcmluZ2dyZWVuAC9zdmcvZGFya29saXZlZ3JlZW4AL3N2Zy9saW1lZ3JlZW4AL3N2Zy9wYWxlZ3JlZW4Ad2ViZ3JlZW4AL3N2Zy9saWdodHNlYWdyZWVuAC9zdmcvbWVkaXVtc2VhZ3JlZW4AL3N2Zy9kYXJrc2VhZ3JlZW4AL3N2Zy9zZWFncmVlbgB4MTFncmVlbgAvc3ZnL2dyZWVuAEdyZWVuAC9zdmcvbGlnaHRjeWFuAC9zdmcvZGFya2N5YW4AL3N2Zy9jeWFuAG5ld3RhbgBkYXJrdGFuAC9zdmcvdGFuAHJvd3NwYW4AY29sc3BhbgBuYW4AdGltZXNuZXdyb21hbgBuaW1idXNyb21hbgB0aW1lc3JvbWFuAFRpbWVzLVJvbWFuAFBhbGF0aW5vLVJvbWFuAE5ld0NlbnR1cnlTY2hsYmstUm9tYW4ASmFuAEdEX3JhbmsoZylbcl0ubiA8PSBHRF9yYW5rKGcpW3JdLmFuAGFneGJwdXRfbgBcbgBuX25vZGVzID09IGdyYXBoLT5uAEEtPm0gPT0gQS0+bgBqb2ItPm9iai0+dS5uAHMsJWxmLCVsZiVuACBlLCVsZiwlbGYlbgAlZCAlMVsiXSVuAHYgPT0gbgBuemMgPT0gbgBiID09IG4AbmNsdXN0ZXIgPD0gbgBwc3ltAGFsZWZzeW0AdGhldGFzeW0AcXVhbnR1bQBzdW0AL3N2Zy9wbHVtAGludnRyYXBleml1bQBtZWRpdW0AOTpwcmlzbQBscm0AY3VzdG9tAGFwdHItPnRhZyA9PSBUX2F0b20AL2Rldi91cmFuZG9tAGd2X3JhbmRvbQBybG0Ac2ltAElNRFNfZ2l2ZW5fZGltAG9yZG0AcGFyYWxsZWxvZ3JhbQAvc3ZnL21pbnRjcmVhbQBKdWwAdGwAZnJhc2wAU3ltYm9sAGZpbmRDb2wAPD94bWwAeXVtbAB1dW1sAG91bWwAaXVtbABldW1sAGF1bWwAWXVtbABVdW1sAE91bWwASXVtbABFdW1sAEF1bWwAY29yZV9sb2FkaW1hZ2VfdnJtbABqcGc6dnJtbABwbmc6dnJtbABqcGVnOnZybWwAZ2lmOnZybWwAanBlOnZybWwAYnVsbABmaWxsAC9zdmcvc2Vhc2hlbGwAZm9yYWxsAEFwcmlsAHBlcm1pbAByY2VpbABsY2VpbABjY2VkaWwAQ2NlZGlsAGFycm93dGFpbABsdGFpbABzYW1ldGFpbABsZXZlbCA+PSAwICYmIGxldmVsIDw9IG4tPmxldmVsAHN0cmVzc19tYWpvcml6YXRpb25fa0RfbWtlcm5lbABpc19wYXJhbGxlbABDYWxjdWxhdGluZyBjaXJjdWl0IG1vZGVsAENhbGN1bGF0aW5nIHN1YnNldCBtb2RlbABDYWxjdWxhdGluZyBNRFMgbW9kZWwAeGxhYmVsAHRhaWxsYWJlbABoZWFkbGFiZWwAbWFrZV9sYWJlbABncmFwaCBsYWJlbABpZXhjbABvYmpwLT5sYmwAb3ZhbABtZXJnZXZpcnR1YWwAL3N2Zy9saWdodGNvcmFsAC9zdmcvY29yYWwAU3BhcnNlTWF0cml4X2Zyb21fY29vcmRpbmF0ZV9hcnJheXNfaW50ZXJuYWwATXVsdGlsZXZlbF9jb2Fyc2VuX2ludGVybmFsAFF1YWRUcmVlX2FkZF9pbnRlcm5hbABhcnJvd19sZW5ndGhfbm9ybWFsAGFyaWFsAHJhZGlhbAAvc3ZnL3RlYWwAcmVhbABsb2NhbABlc3RpbWF0ZV9jaGFyYWN0ZXJfd2lkdGhfY2Fub25pY2FsAGdsb2JhbABxLT5sAC4uLy4uL2xpYi9jZ3JhcGgvc2Nhbi5sAHRrOnRrAGdpZjp0awBwYXRjaHdvcmsAdG9rAGJvb2sAQXZhbnRHYXJkZS1Cb29rAHNpbmsAb3ZlcmxhcF9zaHJpbmsAc3BpY3lwaW5rAC9zdmcvaG90cGluawAvc3ZnL2xpZ2h0cGluawAvc3ZnL2RlZXBwaW5rAG5lb25waW5rAC9zdmcvcGluawBuZXdyYW5rAGNsdXN0ZXJyYW5rAF9uZXdfcmFuawBpbnN0YWxsX2luX3JhbmsAcmVtb3ZlX2Zyb21fcmFuawAvc3ZnL2Nvcm5zaWxrAG9uZWJsb2NrAHYtPmxlZnQtPmJsb2NrID09IHYtPnJpZ2h0LT5ibG9jawAvc3ZnL2ZpcmVicmljawBQUWNoZWNrAHBhY2sAL3N2Zy9ibGFjawBCbGFjawBzZm9udF9iYWNrAHJvd3NfYmFjawB0c3RzX2JhY2sAY29sb3JzZWdzX2JhY2sAc2ZvbnRfcG9wX2JhY2sAdHN0c19wb3BfYmFjawBlc3RhY2tfcG9wX2JhY2sAZGZzX3N0YWNrX3BvcF9iYWNrAGRmc19zdGFja19iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAHN0cmRpY3RfaGFzaABuZGFzaABtZGFzaABkaWdyYXBoAHN1YmdyYXBoAGNvbnN0cnVjdF9ncmFwaABjaGtTZ3JhcGgAY2xvc2VzdF9wYWlyczJncmFwaABhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABjb25uZWN0R3JhcGgAbWtNYXplR3JhcGgAdXBzaWgAJXNsaW5lLXRocm91Z2gAZmxhdF9zZWFyY2gAY2hhblNlYXJjaABSVHJlZVNlYXJjaABNYXJjaABEaXNjb25CcmFuY2gAUGlja0JyYW5jaABBZGRCcmFuY2gALi4vLi4vbGliL3V0aWwvYml0YXJyYXkuaAAuLi8uLi9saWIvdXRpbC9zdHJ2aWV3LmgALi4vLi4vbGliL2NpcmNvZ2VuL25vZGVsaXN0LmgALi4vLi4vbGliL3V0aWwvc29ydC5oAC4uLy4uL2xpYi9jZ3JhcGgvbm9kZV9zZXQuaAAuLi8uLi9saWIvY29tbW9uL2JveGVzLmgALi4vLi4vbGliL29ydGhvL3N0cnVjdHVyZXMuaAAuLi8uLi9saWIvZG90Z2VuL2RvdHByb2NzLmgALi4vLi4vbGliL3V0aWwvc3RyZXEuaAAuLi8uLi9saWIvb3J0aG8vdHJhcC5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvdXRpbC9ndl9tYXRoLmgALi4vLi4vbGliL29ydGhvL3Jhd2dyYXBoLmgALi4vLi4vbGliL3V0aWwvYWd4YnVmLmgALi4vLi4vbGliL3V0aWwvdG9rZW5pemUuaAAuLi8uLi9saWIvY29tbW9uL2h0bWx0YWJsZS5oAC4uLy4uL2xpYi91dGlsL2FsbG9jLmgAYXV4ZwBjb3JlX2xvYWRpbWFnZV9zdmcAc3ZnOnN2ZwBqcGc6c3ZnAHBuZzpzdmcAanBlZzpzdmcAZ2lmOnN2ZwBqcGU6c3ZnAHN2Z19pbmxpbmU6c3ZnAEF1ZwBkb1Byb2xvZwBwb3dlcl9pdGVyYXRpb25fb3J0aG9nAHBuZwBpZGVhbF9kaXN0X3NjaGVtZSB2YWx1ZSB3cm9uZwB4ZG90IHZlcnNpb24gIiVzIiB0b28gbG9uZwBjb25nAGxibGVuY2xvc2luZwBiYXNpY19zdHJpbmcAZmFpbHVyZSBtYWxsb2MnaW5nIGZvciByZXN1bHQgc3RyaW5nAHNwcmluZwBvcmRlcmluZwBnZW5lcmF0ZVJhbmRvbU9yZGVyaW5nAGFyaW5nAEFyaW5nAERhbXBpbmcAV2FybmluZwBvdmVybGFwX3NjYWxpbmcAeCBhbmQgeSBzY2FsaW5nAG9sZCBzY2FsaW5nAHNtb290aGluZwB1bmtub3duIGVuY29kaW5nAG11bHRpbGV2ZWxfc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nAHNwcmluZ19lbGVjdHJpY2FsX3NwcmluZ19lbWJlZGRpbmcAY2VsbHBhZGRpbmcAY2VsbHNwYWNpbmcAcmFuZwBsYW5nAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGVtaXRfaHRtbF9pbWcAbGcAb3JpZwBzemxpZwBvZWxpZwBhZWxpZwBPRWxpZwBBRWxpZwBjb3JlX2xvYWRpbWFnZV9maWcAanBnOmZpZwBwbmc6ZmlnAGZpZzpmaWcAanBlZzpmaWcAZ2lmOmZpZwBqcGU6ZmlnAGVnZwBuZXh0X3NlZwByZWcAanBlZwBpID09IGRlZwBkZwBjZwBjbG9zZXN1YmcAbWlzbWF0Y2hlZCB0YWcAYmV6LT5zZmxhZwBiZXotPmVmbGFnACEqZmxhZwAhZmxhZwA8ZwAlLjVnLCUuNWcsJS41ZywlLjVnACUuNWcgJS41ZwAlZyAlZwBib3hJbnRlcnNlY3RmAGVwc2YAYWdlZGdlc2VxY21wZgBjY3dyb3RhdGVwZgBmbm9mAGluZgBzZWxmAGhhbGYAJWxmJWxmJWxmJWxmACVsZiwlbGYsJWxmLCVsZiwlbGYAJSpmICUqZiAlbGYgJWxmAGxpYmVyYXRpb25zZXJpZgBmcmVlc2VyaWYAc2Fucy1TZXJpZgBnaWYAL3N2Zy9wZWFjaHB1ZmYAcmlmZgBhY2NvdW50aW5nUmVwb3J0RGlmZgB0YWlsaHJlZgBsYWJlbGhyZWYAZWRnZWhyZWYAaGVhZGhyZWYAb3JkZgBwZGYAc2lnbWFmAFxmACUuMExmACVMZgB1cy0+ZgAlLjAzZgAlcyB0cmFuc21pdCAlLjNmAHJnYjwlOS4zZiwgJTkuM2YsICU5LjNmPiB0cmFuc21pdCAlLjNmACUuMDJmACUuMmYAJS4wZiwlLjBmLCUuMGYsJS4wZgAgJS4wZiwlLjBmACUuMGYgJS4wZiAlLjBmICUuMGYAIiBmaWxsLW9wYWNpdHk9IiVmACIgc3Ryb2tlLW9wYWNpdHk9IiVmAApmaW5hbCBlID0gJWYAYnJvbnplAGFycm93c2l6ZQBsYWJlbGZvbnRzaXplAHNlYXJjaHNpemUAZml4ZWRzaXplAG5vZGVsaXN0X3NpemUAbm9kZV9zZXRfc2l6ZQB0cmFwc19zaXplAGNlbGxzX3NpemUAbm9kZXNfc2l6ZQB0ZXh0c3Bhbl9zaXplAHN2Z19zaXplAGNhcGFjaXR5ID4gZGljdC0+c2l6ZQBjYXBhY2l0eSA+IHNlbGYtPnNpemUAYnouc2l6ZQBwb2ludC1zaXplAG5vcm1hbGl6ZQBta01hemUAaWN1cnZlAG5vZGVsaXN0X3JlbW92ZQBhZGpfbGlzdF9yZW1vdmUAbm9kZV9zZXRfcmVtb3ZlAHN0cmRpY3RfcmVtb3ZlAHNvbHZlACF2LT5hY3RpdmUALWFjdGl2ZQBmb250X2luX2xpc3RfcGVybWlzc2l2ZQAvc3ZnL29saXZlAHVncmF2ZQBvZ3JhdmUAaWdyYXZlAGVncmF2ZQBhZ3JhdmUAVWdyYXZlAE9ncmF2ZQBJZ3JhdmUARWdyYXZlAEFncmF2ZQB0cnVlAC9zdmcvYmlzcXVlAG9ibGlxdWUAQXZhbnRHYXJkZS1Cb29rT2JsaXF1ZQBBdmFudEdhcmRlLURlbWlPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctQm9sZE9ibGlxdWUAQ291cmllci1Cb2xkT2JsaXF1ZQBIZWx2ZXRpY2EtQm9sZE9ibGlxdWUASGVsdmV0aWNhLU5hcnJvdy1PYmxpcXVlAENvdXJpZXItT2JsaXF1ZQBIZWx2ZXRpY2EtT2JsaXF1ZQBuYXZ5Ymx1ZQAvc3ZnL2xpZ2h0c2t5Ymx1ZQAvc3ZnL2RlZXBza3libHVlAC9zdmcvc2t5Ymx1ZQBuZXdtaWRuaWdodGJsdWUAL3N2Zy9taWRuaWdodGJsdWUAL3N2Zy9saWdodGJsdWUAL3N2Zy9jYWRldGJsdWUAL3N2Zy9jb3JuZmxvd2VyYmx1ZQAvc3ZnL2RvZGdlcmJsdWUAL3N2Zy9wb3dkZXJibHVlAG5lb25ibHVlAC9zdmcvbWVkaXVtYmx1ZQAvc3ZnL2xpZ2h0c3RlZWxibHVlAC9zdmcvc3RlZWxibHVlAC9zdmcvcm95YWxibHVlAC9zdmcvZGFya2JsdWUAcmljaGJsdWUAbGlnaHRzbGF0ZWJsdWUAL3N2Zy9tZWRpdW1zbGF0ZWJsdWUAL3N2Zy9kYXJrc2xhdGVibHVlAC9zdmcvc2xhdGVibHVlAC9zdmcvYWxpY2VibHVlAC9zdmcvYmx1ZQBjYWxsU3RvcmVFbnRpdHlWYWx1ZQBzdG9yZUF0dHJpYnV0ZVZhbHVlAEJsdWUAbmVhdG9fZW5xdWV1ZQBUdWUAY29udmVydFNQdG9Sb3V0ZQB5YWN1dGUAdWFjdXRlAG9hY3V0ZQBpYWN1dGUAZWFjdXRlAGFhY3V0ZQBZYWN1dGUAVWFjdXRlAE9hY3V0ZQBJYWN1dGUARWFjdXRlAEFhY3V0ZQByZWZlcmVuY2UgdG8gZXh0ZXJuYWwgZW50aXR5IGluIGF0dHJpYnV0ZQBkdXBsaWNhdGUgYXR0cmlidXRlAG5vdGUAcHJpbWVyc2l0ZQByaWJvc2l0ZQByZXN0cmljdGlvbnNpdGUAcHJvdGVhc2VzaXRlAC9zdmcvZ2hvc3R3aGl0ZQAvc3ZnL25hdmFqb3doaXRlAC9zdmcvZmxvcmFsd2hpdGUAL3N2Zy9hbnRpcXVld2hpdGUAL3N2Zy93aGl0ZQBXaGl0ZQBwb3Bfb2JqX3N0YXRlAHBjcF9yb3RhdGUAY29uY2VudHJhdGUAZGVjb3JhdGUAUXVhZFRyZWVfcmVwdWxzaXZlX2ZvcmNlX2FjY3VtdWxhdGUAbm90cmFuc2xhdGUAL3N2Zy9jaG9jb2xhdGUAZ2VvbVVwZGF0ZQBpbnZob3VzZQAvc3ZnL2NoYXJ0cmV1c2UAbm9kZWxpc3RfcmV2ZXJzZQBYTUxfUGFyc2UAPGVsbGlwc2UAZHVzdHlyb3NlAC9zdmcvbWlzdHlyb3NlAFNwYXJzZU1hdHJpeF90cmFuc3Bvc2UAYWdjbG9zZQBlbnRpdHlUcmFja2luZ09uQ2xvc2UAU3BhcnNlTWF0cml4X211bHRpcGx5X2RlbnNlAGZhbHNlAC9zdmcvbWVkaXVtdHVycXVvaXNlAC9zdmcvZGFya3R1cnF1b2lzZQAvc3ZnL3BhbGV0dXJxdW9pc2UAL3N2Zy90dXJxdW9pc2UAcGhhc2UAL3N2Zy9henVyZQBzaWduYXR1cmUAY29yZQBNc3F1YXJlAFBhbGF0aW5vIExpbm90eXBlAEEtPnR5cGUgPT0gQi0+dHlwZQBzdXBlAGVsbGlwc2VfdGFuZ2VudF9zbG9wZQBndnJlbmRlcl91c2Vyc2hhcGUAbWl0ZXJfc2hhcGUAbGFuZHNjYXBlAExhbmRzY2FwZQBKdW5lAG5vbmUAZG9jdW1lbnQgaXMgbm90IHN0YW5kYWxvbmUAY291c2luZQAvc3ZnL21lZGl1bWFxdWFtYXJpbmUAL3N2Zy9hcXVhbWFyaW5lADxwb2x5bGluZQAlc292ZXJsaW5lAHVuZGVybGluZQBQcm91dGVzcGxpbmUAbGluZWFyX3NwbGluZQBiX3NwbGluZQBvbGluZQBhZ3hidWZfaXNfaW5saW5lAHN2Z19pbmxpbmUAcmVmaW5lAHByaW1lAFByaW1lAC9zdmcvbGltZQBjb2xvcnNjaGVtZQBsYWJlbF9zY2hlbWUAc2FtZQBsYWJlbGZvbnRuYW1lAFVGX3NldG5hbWUAZm9udF9uYW1lAGZvbnQtPm5hbWUAdXMtPm5hbWUAcmVzZXJ2ZWQgcHJlZml4ICh4bWwpIG11c3Qgbm90IGJlIHVuZGVjbGFyZWQgb3IgYm91bmQgdG8gYW5vdGhlciBuYW1lc3BhY2UgbmFtZQBzdHlsZQAvc3ZnL3RoaXN0bGUAdGl0bGUAL3N2Zy9tZWRpdW1wdXJwbGUAZGFya3B1cnBsZQB3ZWJwdXJwbGUAcmViZWNjYXB1cnBsZQB2ZXJ5X2xpZ2h0X3B1cnBsZQBtZWRfcHVycGxlAHgxMXB1cnBsZQAvc3ZnL3B1cnBsZQBzaGFwZWZpbGUAZ3JhZGllbnRhbmdsZQByZWN0YW5nbGUAUmVjdGFuZ2xlAGxhYmVsYW5nbGUAaW52dHJpYW5nbGUAZGVzdGluYXRpb24gcG9pbnQgbm90IGluIGFueSB0cmlhbmdsZQBzb3VyY2UgcG9pbnQgbm90IGluIGFueSB0cmlhbmdsZQBkZnNDeWNsZQBkb3VibGVjaXJjbGUATWNpcmNsZQBpbnZpc2libGUAdGhvcm5kYWxlAGlucHV0c2NhbGUAb3NjYWxlAGltYWdlc2NhbGUAL3N2Zy93aGl0ZXNtb2tlAG1hbmRhcmlub3JhbmdlAC9zdmcvZGFya29yYW5nZQAvc3ZnL29yYW5nZQAvc3ZnL2JlaWdlAG5ld2VkZ2UAZGVsZXRlX2Zhc3RfZWRnZQBkZWxldGVfZmxhdF9lZGdlAGFkZF90cmVlX2VkZ2UAbWFrZVN0cmFpZ2h0RWRnZQBtYWtlU2VsZkVkZ2UAbWFrZUNvbXBvdW5kRWRnZQAhdXNlX3N0YWdlAG9zYWdlAHBhZ2UAZ3Zsb2FkaW1hZ2UAdmVlAHRlZQBRVUFEX1RSRUVfSFlCUklELCBzaXplIGxhcmdlciB0aGFuICVkLCBzd2l0Y2ggdG8gZmFzdCBxdWFkdHJlZQBmZWFzaWJsZV90cmVlAFNwYXJzZU1hdHJpeF9kaXZpZGVfcm93X2J5X2RlZ3JlZQBub2RlbGlzdF9mcmVlAHNmb250X2ZyZWUAbm9kZV9zZXRfZnJlZQByb3dzX2ZyZWUAY2VsbHNfZnJlZQBuZXdub2RlAGluc3RhbGxub2RlAGFnbm9kZQBkZWxldGVfZmFzdF9ub2RlAHBhY2ttb2RlAFNwbGl0Tm9kZQBvdGlsZGUAbnRpbGRlAGF0aWxkZQBPdGlsZGUATnRpbGRlAEF0aWxkZQBkaXZpZGUAdHJhZGUAZ3JhcGh2aXpfbm9kZV9pbmR1Y2UAc291cmNlAHJlcHVsc2l2ZWZvcmNlAGlsbGVnYWwgcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2UAZXJyb3IgaW4gcHJvY2Vzc2luZyBleHRlcm5hbCBlbnRpdHkgcmVmZXJlbmNlAHJlY3Vyc2l2ZSBlbnRpdHkgcmVmZXJlbmNlAGxhYmVsZGlzdGFuY2UAVEJfYmFsYW5jZQBUQmJhbGFuY2UAZGV2aWNlAG1vbm9zcGFjZQAvc3ZnL29sZGxhY2UAZmFjZQBzdWJlACAtYW5jaG9yIGUAczEtPmNvbW1fY29vcmQ9PXMyLT5jb21tX2Nvb3JkAE1yZWNvcmQAZm9yd2FyZABwcm9kAGxpZ2h0Z29sZGVucm9kAG1lZGl1bWdvbGRlbnJvZAAvc3ZnL2Rhcmtnb2xkZW5yb2QAL3N2Zy9wYWxlZ29sZGVucm9kAC9zdmcvZ29sZGVucm9kAC9zdmcvYnVybHl3b29kAGxpZ2h0d29vZABtZWRpdW13b29kAGRhcmt3b29kAF9iYWNrZ3JvdW5kAGNvbXBvdW5kAG5vIGVsZW1lbnQgZm91bmQAZmF0YWwgZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1ubyBhY3Rpb24gZm91bmQAL3N2Zy9ibGFuY2hlZGFsbW9uZABhcnJvd19sZW5ndGhfZGlhbW9uZABNZGlhbW9uZABub2RlX3NldF9maW5kAHN0cmRpY3RfZmluZABndnVzZXJzaGFwZV9maW5kAG5vZGVsaXN0X3RyeV9hcHBlbmQAZWRnZV9saXN0X3RyeV9hcHBlbmQAc2ZvbnRfdHJ5X2FwcGVuZAB0cmFwc190cnlfYXBwZW5kAGNlbGxzX3RyeV9hcHBlbmQAbm9kZXNfdHJ5X2FwcGVuZABub2RlX3F1ZXVlX3RyeV9hcHBlbmQAZXhwYW5kAGN1bWJlcmxhbmQAYnJpZ2h0Z29sZABvbGRnb2xkAC9zdmcvZ29sZABib2xkAEhlbHZldGljYS1OYXJyb3ctQm9sZABUaW1lcy1Cb2xkAENvdXJpZXItQm9sZABQYWxhdGluby1Cb2xkAE5ld0NlbnR1cnlTY2hsYmstQm9sZABIZWx2ZXRpY2EtQm9sZAAlMCpsbGQAJSpsbGQAKyVsbGQAbi0+YnJhbmNoW2ldLmNoaWxkACUrLjRsZAAlcyVsZABzb2xpZAAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL2RhcmtvcmNoaWQAL3N2Zy9vcmNoaWQAaWxsZWdhbCBjaGFyYWN0ZXIocykgaW4gcHVibGljIGlkAGRpamtzdHJhX3NnZABmaXhlZABjdXJ2ZWQAZGVyaXZlZABkb3R0ZWQAbWVtb3J5IGV4aGF1c3RlZABsb2NhbGUgbm90IHN1cHBvcnRlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdGFydGVkAGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkAGFjY291bnRpbmdEaWZmVG9sZXJhdGVkAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAY29uZGVuc2VkAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvcGFsZXZpb2xldHJlZABJbXByb3BlciAlcyB2YWx1ZSAlcyAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPCAlZCAtIHRvbyBzbWFsbCAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPiAlZCAtIHRvbyBsYXJnZSAtIGlnbm9yZWQAL3N2Zy9pbmRpYW5yZWQAL3N2Zy9kYXJrcmVkAGEgc3VjY2Vzc2Z1bCBwcmlvciBjYWxsIHRvIGZ1bmN0aW9uIFhNTF9HZXRCdWZmZXIgaXMgcmVxdWlyZWQAdGFwZXJlZAAvc3ZnL29yYW5nZXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbG5zKSBtdXN0IG5vdCBiZSBkZWNsYXJlZCBvciB1bmRlY2xhcmVkAC9zdmcvcmVkAHN0cmlwZWQAaWxsLWNvbmRpdGlvbmVkAHVuZGVmaW5lZABub3QgY29uc3RyYWluZWQAbGFiZWxhbGlnbmVkAHRleHQgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAFhNTCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAdW5maWxsZWQAaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZAB0cmlhbmd1bGF0aW9uIGZhaWxlZABwYXJzaW5nIGZpbmlzaGVkAGRhc2hlZABsaW1pdCBvbiBpbnB1dCBhbXBsaWZpY2F0aW9uIGZhY3RvciAoZnJvbSBEVEQgYW5kIGVudGl0aWVzKSBicmVhY2hlZAB3ZWRnZWQAc2l6ZT09ZnJlZWQAcm91bmRlZABwYXJzZXIgbm90IHN1c3BlbmRlZABwYXJzZXIgc3VzcGVuZGVkAFdlZABSZWQAU3BhcnNlTWF0cml4X2FkZABub2RlX3NldF9hZGQAc3RyZGljdF9hZGQAZGQgIT0gcGFyZW50X2RkAEtQX0FkZABwYWQAeGxoZHhsb2FkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAcG9pbnRzX3N5bmMAc3Ryc19zeW5jAEFncmFwaHNfc3luYwBib3hlc19zeW5jAGxheWVyX25hbWVzX3N5bmMAc25vZGVzX3N5bmMAdmFyYXJyX3N5bmMAYmV6aWVyX3BhdGhfc3luYwBwYnNfc2l6ZV9zeW5jAG1jAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMAQS0+aXNfcGF0dGVybl9zeW1tZXRyaWMAcGljOnBpYwBpdGFsaWMAQm9va21hbi1MaWdodEl0YWxpYwBaYXBmQ2hhbmNlcnktTWVkaXVtSXRhbGljAEJvb2ttYW4tRGVtaUl0YWxpYwBUaW1lcy1Cb2xkSXRhbGljAFBhbGF0aW5vLUJvbGRJdGFsaWMATmV3Q2VudHVyeVNjaGxiay1Cb2xkSXRhbGljAFRpbWVzLUl0YWxpYwBQYWxhdGluby1JdGFsaWMATmV3Q2VudHVyeVNjaGxiay1JdGFsaWMAcmFkaWMAI2ZjZmNmYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBuX2VkZ2VzID09IGdyYXBoLT5zb3VyY2VzW2dyYXBoLT5uXQBqZFttYXNrW2pjW2tdXV0gPT0gamNba10AamNbbWFza1tqYltrXV1dID09IGpiW2tdAGphW21hc2tbamFbal1dXSA9PSBqYVtqXQBxLT5xdHNbaWldACFydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0udGFrZW5baV0Aci5ib3VuZGFyeVtpXSA8PSByLmJvdW5kYXJ5W05VTURJTVMgKyBpXQBbJS4wM2YsJS4wM2ZdAFtpbnRlcm5hbCBoYXJkLWNvZGVkXQBucC0+Y2VsbHNbMV0AbnAtPmNlbGxzWzBdAHVzLT5uYW1lWzBdAGNwLT5zcmNbMF0AWy4uXQBcXAAicG9pbnRzIjogWwAic3RvcHMiOiBbAAlbAFoAY29tcHV0ZVNjYWxlWFkAeTw9WQAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWAB5ID49IElOVF9NSU4gJiYgeSA8PSBJTlRfTUFYAHggPj0gSU5UX01JTiAmJiB4IDw9IElOVF9NQVgAdyA+PSAwICYmIHcgPD0gSU5UX01BWABlX2NudCA8PSBJTlRfTUFYAHBhaXIucmlnaHQgPD0gSU5UX01BWABwYWlyLmxlZnQgPD0gSU5UX01BWAB0YXJnZXQgPD0gSU5UX01BWABuc2VncyA8PSBJTlRfTUFYAG5fZWRnZXMgPD0gSU5UX01BWABzdHAubnZlcnRpY2VzIDw9IElOVF9NQVgAb2JzW3BvbHlfaV0tPnBuIDw9IElOVF9NQVgAaW5wdXRfcm91dGUucG4gPD0gSU5UX01BWABncmFwaC0+biA8PSBJTlRfTUFYAGggPj0gMCAmJiBoIDw9IElOVF9NQVgAY3R4LT5UcmVlX2VkZ2Uuc2l6ZSA8PSBJTlRfTUFYAGVfY250IC0gMSA8PSBJTlRfTUFYAGNsaXN0X3NpemUoJmxpc3QpIC0gMSA8PSBJTlRfTUFYAGxheWVyX25hbWVzX3NpemUoJmxheWVySURzKSAtIDEgPD0gSU5UX01BWABzdHJsZW4oYXJncykgPD0gSU5UX01BWABzbm9kZXNfc2l6ZSgmY3Bfc2lkZXMpIDw9IElOVF9NQVgAb2JqbGlzdF9zaXplKCZvYmpsKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAc2NyYXRjaCAhPSBOVUxMAG9ydGhvZyAhPSBOVUxMAHNlbGYgIT0gTlVMTAB2YWx1ZSAhPSBOVUxMAGZpbGVuYW1lICE9IE5VTEwAam9iLT5vdXRwdXRfZmlsZSAhPSBOVUxMAG1vZGUgIT0gTlVMTABzb3VyY2UgIT0gTlVMTAB4ZCAhPSBOVUxMAHNtLT5Md2QgIT0gTlVMTABqb2IgIT0gTlVMTABzb3VyY2UuZGF0YSAhPSBOVUxMAGIuZGF0YSAhPSBOVUxMAGEuZGF0YSAhPSBOVUxMAGxpc3QgJiYgbGlzdFswXSAhPSBOVUxMAEFGICE9IE5VTEwAc20tPkQgIT0gTlVMTABFRF90b192aXJ0KG9yaWcpICE9IE5VTEwATENfQUxMAEJMAGJlc3Rjb3N0IDwgSFVHRV9WQUwATk9STUFMAFJBRElBTABBLT50eXBlID09IE1BVFJJWF9UWVBFX1JFQUwAVVJXIENoYW5jZXJ5IEwAVVJXIEJvb2ttYW4gTABDZW50dXJ5IFNjaG9vbGJvb2sgTABVUlcgR290aGljIEwAS0sASgBpIDwgTUFYX0kAUC0+ZW5kLnRoZXRhIDwgMiAqIE1fUEkAQVNDSUkAXEgARVRIAFdJRFRIAERPVEZPTlRQQVRIAEdERk9OVFBBVEgAbWtOQ29uc3RyYWludEcAXEcARVhQQVRfRU5USVRZX0RFQlVHAEVYUEFUX0VOVFJPUFlfREVCVUcARVhQQVRfQUNDT1VOVElOR19ERUJVRwBSTkcAU1BSSU5HAENFTExQQURESU5HAENFTExTUEFDSU5HAExBTkcASU1HAFx4RgAlJUVPRgBJTkYAXHhGRgBSSUZGAGRlbHRhIDw9IDB4RkZGRgBceEVGAFx4REYAXHhDRgBceEJGAFx4QUYAXHg5RgBceDhGAFx4N0YAXHgxRgBceEUAXEUAUE9JTlQtU0laRQBUUlVFAENMT1NFAEZBTFNFAGtleSAhPSBUT01CU1RPTkUAciAhPSBUT01CU1RPTkUAa2luZCA9PSBMVF9OT05FAEdSQURJRU5UQU5HTEUAVFJJQU5HTEUATUlERExFAElOVklTSUJMRQBUQUJMRQBBR1RZUEUob2JqKSA9PSBBR0lORURHRSB8fCBBR1RZUEUob2JqKSA9PSBBR09VVEVER0UAXHhGRQBceEVFAFx4REUAQl9OT0RFAFx4Q0UAXHhCRQBceEFFAFx4OUUAXHg4RQBceDFFAFREAEEtPmZvcm1hdCA9PSBGT1JNQVRfQ09PUkQAbiAmJiBpID49IDAgJiYgaSA8IE5PREVDQVJEACUlRU5EAEhZQlJJRABTT0xJRABceEZEAFx4RUQARE9UVEVEAERBU0hFRABST1VOREVEAFx4REQAXHhDRABceEJEAFx4QUQAXHg5RABceDhEAFx4MUQAXHhDAGRlbGV0ZVZQU0MAXHhGQwBceEVDAFx4REMAXHhDQwBceEJDAFx4QUMAXHg5QwBceDhDAFx4MUMAXHhCAFNVQgBceEZCAFx4RUIAXHhEQgBceENCAFx4QkIAXHhBQgBceDlCAFx4OEIAXHgxQgBBICYmIEIAXHhGQQBceEVBAFx4REEAXHhDQQBceEJBAFx4QUEAXHg5QQBceDhBAFx4MUEAQAA/ADwlcz4APG5pbD4APC90c3Bhbj48L3RleHRQYXRoPgAKICAgIDwlOS4zZiwgJTkuM2YsICU5LjNmPgA+Cjx0aXRsZT4APEZPTlQ+ADxCUj4APEhUTUw+ADwvSFRNTD4APElNRz4AU3ludGF4IGVycm9yOiBub24tc3BhY2Ugc3RyaW5nIHVzZWQgYmVmb3JlIDxUQUJMRT4AU3ludGF4IGVycm9yOiBub24tc3BhY2Ugc3RyaW5nIHVzZWQgYWZ0ZXIgPC9UQUJMRT4APFREPgAtPgAiPgAJW2tleT0APD0APAAmI3gleDsAJnF1b3Q7ACZsdDsAJmd0OwAmYW1wOwAjJWQ7ACYjMzk7ACYjNDU7ACYjOTM7ACYjMTM7ACYjMTYwOwAmIzEwOwA7c3RvcC1vcGFjaXR5OgAlJUJvdW5kaW5nQm94OgBjYWxjdWxhdGluZyBzaG9ydGVzdCBwYXRocyBhbmQgc2V0dGluZyB1cCBzdHJlc3MgdGVybXM6ADxzdG9wIG9mZnNldD0iJS4wM2YiIHN0eWxlPSJzdG9wLWNvbG9yOgA8c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOgA8c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOgBzb2x2aW5nIG1vZGVsOgAvXDoAZ3JleTkAZ3JheTkAXHhGOQBceEU5AFx4RDkAXHhDOQBceEI5AFx4QTkAZ3JleTk5AGdyYXk5OQBceDk5AGdyZXk4OQBncmF5ODkAXHg4OQAwMTIzNDU2Nzg5AGdyZXk3OQBncmF5NzkAZ3JleTY5AGdyYXk2OQBncmV5NTkAZ3JheTU5AGdyZXk0OQBncmF5NDkAZ3JleTM5AGdyYXkzOQBncmV5MjkAZ3JheTI5AGdyZXkxOQBncmF5MTkAXHgxOQAvcmRneTkvOQAvYnVwdTkvOQAvcmRwdTkvOQAvcHVidTkvOQAveWxnbmJ1OS85AC9nbmJ1OS85AC9yZHlsYnU5LzkAL3JkYnU5LzkAL2dyZXlzOS85AC9ncmVlbnM5LzkAL2JsdWVzOS85AC9wdXJwbGVzOS85AC9vcmFuZ2VzOS85AC9yZWRzOS85AC9wdW9yOS85AC95bG9yYnI5LzkAL3B1YnVnbjkvOQAvYnVnbjkvOQAvcHJnbjkvOQAvcmR5bGduOS85AC95bGduOS85AC9zcGVjdHJhbDkvOQAvcGl5ZzkvOQAvYnJiZzkvOQAvcHVyZDkvOQAveWxvcnJkOS85AC9vcnJkOS85AC9wYWlyZWQ5LzkAL3NldDM5LzkAL3NldDE5LzkAL3Bhc3RlbDE5LzkAL3BhaXJlZDEyLzkAL3NldDMxMi85AC9yZGd5MTEvOQAvcmR5bGJ1MTEvOQAvcmRidTExLzkAL3B1b3IxMS85AC9wcmduMTEvOQAvcmR5bGduMTEvOQAvc3BlY3RyYWwxMS85AC9waXlnMTEvOQAvYnJiZzExLzkAL3BhaXJlZDExLzkAL3NldDMxMS85AC9yZGd5MTAvOQAvcmR5bGJ1MTAvOQAvcmRidTEwLzkAL3B1b3IxMC85AC9wcmduMTAvOQAvcmR5bGduMTAvOQAvc3BlY3RyYWwxMC85AC9waXlnMTAvOQAvYnJiZzEwLzkAL3BhaXJlZDEwLzkAL3NldDMxMC85AGdyZXk4AGdyYXk4AFx4OAB1dGY4ACNmOGY4ZjgAI2U4ZThlOABceEY4AEdJRjgAXHhFOABceEQ4AFx4QzgAXHhCOABceEE4AGdyZXk5OABncmF5OTgAXHg5OABncmV5ODgAZ3JheTg4AFx4ODgAZ3JleTc4AGdyYXk3OABncmV5NjgAZ3JheTY4AGdyZXk1OABncmF5NTgAZ3JleTQ4AGdyYXk0OABncmV5MzgAZ3JheTM4AGdyZXkyOABncmF5MjgAZ3JleTE4AGdyYXkxOABceDE4AC9yZGd5OS84AC9idXB1OS84AC9yZHB1OS84AC9wdWJ1OS84AC95bGduYnU5LzgAL2duYnU5LzgAL3JkeWxidTkvOAAvcmRidTkvOAAvZ3JleXM5LzgAL2dyZWVuczkvOAAvYmx1ZXM5LzgAL3B1cnBsZXM5LzgAL29yYW5nZXM5LzgAL3JlZHM5LzgAL3B1b3I5LzgAL3lsb3JicjkvOAAvcHVidWduOS84AC9idWduOS84AC9wcmduOS84AC9yZHlsZ245LzgAL3lsZ245LzgAL3NwZWN0cmFsOS84AC9waXlnOS84AC9icmJnOS84AC9wdXJkOS84AC95bG9ycmQ5LzgAL29ycmQ5LzgAL3BhaXJlZDkvOAAvc2V0MzkvOAAvc2V0MTkvOAAvcGFzdGVsMTkvOAAvcmRneTgvOAAvYnVwdTgvOAAvcmRwdTgvOAAvcHVidTgvOAAveWxnbmJ1OC84AC9nbmJ1OC84AC9yZHlsYnU4LzgAL3JkYnU4LzgAL2FjY2VudDgvOAAvZ3JleXM4LzgAL2dyZWVuczgvOAAvYmx1ZXM4LzgAL3B1cnBsZXM4LzgAL29yYW5nZXM4LzgAL3JlZHM4LzgAL3B1b3I4LzgAL3lsb3JicjgvOAAvcHVidWduOC84AC9idWduOC84AC9wcmduOC84AC9yZHlsZ244LzgAL3lsZ244LzgAL3NwZWN0cmFsOC84AC9waXlnOC84AC9icmJnOC84AC9wdXJkOC84AC95bG9ycmQ4LzgAL29ycmQ4LzgAL3BhaXJlZDgvOAAvc2V0MzgvOAAvc2V0MjgvOAAvcGFzdGVsMjgvOAAvZGFyazI4LzgAL3NldDE4LzgAL3Bhc3RlbDE4LzgAL3BhaXJlZDEyLzgAL3NldDMxMi84AC9yZGd5MTEvOAAvcmR5bGJ1MTEvOAAvcmRidTExLzgAL3B1b3IxMS84AC9wcmduMTEvOAAvcmR5bGduMTEvOAAvc3BlY3RyYWwxMS84AC9waXlnMTEvOAAvYnJiZzExLzgAL3BhaXJlZDExLzgAL3NldDMxMS84AC9yZGd5MTAvOAAvcmR5bGJ1MTAvOAAvcmRidTEwLzgAL3B1b3IxMC84AC9wcmduMTAvOAAvcmR5bGduMTAvOAAvc3BlY3RyYWwxMC84AC9waXlnMTAvOAAvYnJiZzEwLzgAL3BhaXJlZDEwLzgAL3NldDMxMC84AHV0Zi04AEMuVVRGLTgAZ3JleTcAZ3JheTcAXHg3AFx4RjcAXHhFNwBceEQ3AFx4QzcAXHhCNwBceEE3AGdyZXk5NwBncmF5OTcAXHg5NwBncmV5ODcAZ3JheTg3AFx4ODcAZ3JleTc3AGdyYXk3NwBncmV5NjcAZ3JheTY3AGdyZXk1NwBncmF5NTcAZ3JleTQ3AGdyYXk0NwBncmV5MzcAZ3JheTM3AGdyZXkyNwBncmF5MjcAZ3JleTE3AGdyYXkxNwBceDE3AC9yZGd5OS83AC9idXB1OS83AC9yZHB1OS83AC9wdWJ1OS83AC95bGduYnU5LzcAL2duYnU5LzcAL3JkeWxidTkvNwAvcmRidTkvNwAvZ3JleXM5LzcAL2dyZWVuczkvNwAvYmx1ZXM5LzcAL3B1cnBsZXM5LzcAL29yYW5nZXM5LzcAL3JlZHM5LzcAL3B1b3I5LzcAL3lsb3JicjkvNwAvcHVidWduOS83AC9idWduOS83AC9wcmduOS83AC9yZHlsZ245LzcAL3lsZ245LzcAL3NwZWN0cmFsOS83AC9waXlnOS83AC9icmJnOS83AC9wdXJkOS83AC95bG9ycmQ5LzcAL29ycmQ5LzcAL3BhaXJlZDkvNwAvc2V0MzkvNwAvc2V0MTkvNwAvcGFzdGVsMTkvNwAvcmRneTgvNwAvYnVwdTgvNwAvcmRwdTgvNwAvcHVidTgvNwAveWxnbmJ1OC83AC9nbmJ1OC83AC9yZHlsYnU4LzcAL3JkYnU4LzcAL2FjY2VudDgvNwAvZ3JleXM4LzcAL2dyZWVuczgvNwAvYmx1ZXM4LzcAL3B1cnBsZXM4LzcAL29yYW5nZXM4LzcAL3JlZHM4LzcAL3B1b3I4LzcAL3lsb3JicjgvNwAvcHVidWduOC83AC9idWduOC83AC9wcmduOC83AC9yZHlsZ244LzcAL3lsZ244LzcAL3NwZWN0cmFsOC83AC9waXlnOC83AC9icmJnOC83AC9wdXJkOC83AC95bG9ycmQ4LzcAL29ycmQ4LzcAL3BhaXJlZDgvNwAvc2V0MzgvNwAvc2V0MjgvNwAvcGFzdGVsMjgvNwAvZGFyazI4LzcAL3NldDE4LzcAL3Bhc3RlbDE4LzcAL3JkZ3k3LzcAL2J1cHU3LzcAL3JkcHU3LzcAL3B1YnU3LzcAL3lsZ25idTcvNwAvZ25idTcvNwAvcmR5bGJ1Ny83AC9yZGJ1Ny83AC9hY2NlbnQ3LzcAL2dyZXlzNy83AC9ncmVlbnM3LzcAL2JsdWVzNy83AC9wdXJwbGVzNy83AC9vcmFuZ2VzNy83AC9yZWRzNy83AC9wdW9yNy83AC95bG9yYnI3LzcAL3B1YnVnbjcvNwAvYnVnbjcvNwAvcHJnbjcvNwAvcmR5bGduNy83AC95bGduNy83AC9zcGVjdHJhbDcvNwAvcGl5ZzcvNwAvYnJiZzcvNwAvcHVyZDcvNwAveWxvcnJkNy83AC9vcnJkNy83AC9wYWlyZWQ3LzcAL3NldDM3LzcAL3NldDI3LzcAL3Bhc3RlbDI3LzcAL2RhcmsyNy83AC9zZXQxNy83AC9wYXN0ZWwxNy83AC9wYWlyZWQxMi83AC9zZXQzMTIvNwAvcmRneTExLzcAL3JkeWxidTExLzcAL3JkYnUxMS83AC9wdW9yMTEvNwAvcHJnbjExLzcAL3JkeWxnbjExLzcAL3NwZWN0cmFsMTEvNwAvcGl5ZzExLzcAL2JyYmcxMS83AC9wYWlyZWQxMS83AC9zZXQzMTEvNwAvcmRneTEwLzcAL3JkeWxidTEwLzcAL3JkYnUxMC83AC9wdW9yMTAvNwAvcHJnbjEwLzcAL3JkeWxnbjEwLzcAL3NwZWN0cmFsMTAvNwAvcGl5ZzEwLzcAL2JyYmcxMC83AC9wYWlyZWQxMC83AC9zZXQzMTAvNwAxLjcAZ3JleTYAZ3JheTYAXHg2AFx4RjYAXHhFNgBceEQ2AFx4QzYAXHhCNgBceEE2AGdyZXk5NgBncmF5OTYAXHg5NgBncmV5ODYAZ3JheTg2AFx4ODYAZ3JleTc2AGdyYXk3NgBncmV5NjYAZ3JheTY2AGdyZXk1NgBncmF5NTYAZ3JleTQ2AGdyYXk0NgBncmV5MzYAZ3JheTM2AGdyZXkyNgBncmF5MjYAZ3JleTE2AGdyYXkxNgBceDE2AC9yZGd5OS82AC9idXB1OS82AC9yZHB1OS82AC9wdWJ1OS82AC95bGduYnU5LzYAL2duYnU5LzYAL3JkeWxidTkvNgAvcmRidTkvNgAvZ3JleXM5LzYAL2dyZWVuczkvNgAvYmx1ZXM5LzYAL3B1cnBsZXM5LzYAL29yYW5nZXM5LzYAL3JlZHM5LzYAL3B1b3I5LzYAL3lsb3JicjkvNgAvcHVidWduOS82AC9idWduOS82AC9wcmduOS82AC9yZHlsZ245LzYAL3lsZ245LzYAL3NwZWN0cmFsOS82AC9waXlnOS82AC9icmJnOS82AC9wdXJkOS82AC95bG9ycmQ5LzYAL29ycmQ5LzYAL3BhaXJlZDkvNgAvc2V0MzkvNgAvc2V0MTkvNgAvcGFzdGVsMTkvNgAvcmRneTgvNgAvYnVwdTgvNgAvcmRwdTgvNgAvcHVidTgvNgAveWxnbmJ1OC82AC9nbmJ1OC82AC9yZHlsYnU4LzYAL3JkYnU4LzYAL2FjY2VudDgvNgAvZ3JleXM4LzYAL2dyZWVuczgvNgAvYmx1ZXM4LzYAL3B1cnBsZXM4LzYAL29yYW5nZXM4LzYAL3JlZHM4LzYAL3B1b3I4LzYAL3lsb3JicjgvNgAvcHVidWduOC82AC9idWduOC82AC9wcmduOC82AC9yZHlsZ244LzYAL3lsZ244LzYAL3NwZWN0cmFsOC82AC9waXlnOC82AC9icmJnOC82AC9wdXJkOC82AC95bG9ycmQ4LzYAL29ycmQ4LzYAL3BhaXJlZDgvNgAvc2V0MzgvNgAvc2V0MjgvNgAvcGFzdGVsMjgvNgAvZGFyazI4LzYAL3NldDE4LzYAL3Bhc3RlbDE4LzYAL3JkZ3k3LzYAL2J1cHU3LzYAL3JkcHU3LzYAL3B1YnU3LzYAL3lsZ25idTcvNgAvZ25idTcvNgAvcmR5bGJ1Ny82AC9yZGJ1Ny82AC9hY2NlbnQ3LzYAL2dyZXlzNy82AC9ncmVlbnM3LzYAL2JsdWVzNy82AC9wdXJwbGVzNy82AC9vcmFuZ2VzNy82AC9yZWRzNy82AC9wdW9yNy82AC95bG9yYnI3LzYAL3B1YnVnbjcvNgAvYnVnbjcvNgAvcHJnbjcvNgAvcmR5bGduNy82AC95bGduNy82AC9zcGVjdHJhbDcvNgAvcGl5ZzcvNgAvYnJiZzcvNgAvcHVyZDcvNgAveWxvcnJkNy82AC9vcnJkNy82AC9wYWlyZWQ3LzYAL3NldDM3LzYAL3NldDI3LzYAL3Bhc3RlbDI3LzYAL2RhcmsyNy82AC9zZXQxNy82AC9wYXN0ZWwxNy82AC9yZGd5Ni82AC9idXB1Ni82AC9yZHB1Ni82AC9wdWJ1Ni82AC95bGduYnU2LzYAL2duYnU2LzYAL3JkeWxidTYvNgAvcmRidTYvNgAvYWNjZW50Ni82AC9ncmV5czYvNgAvZ3JlZW5zNi82AC9ibHVlczYvNgAvcHVycGxlczYvNgAvb3JhbmdlczYvNgAvcmVkczYvNgAvcHVvcjYvNgAveWxvcmJyNi82AC9wdWJ1Z242LzYAL2J1Z242LzYAL3ByZ242LzYAL3JkeWxnbjYvNgAveWxnbjYvNgAvc3BlY3RyYWw2LzYAL3BpeWc2LzYAL2JyYmc2LzYAL3B1cmQ2LzYAL3lsb3JyZDYvNgAvb3JyZDYvNgAvcGFpcmVkNi82AC9zZXQzNi82AC9zZXQyNi82AC9wYXN0ZWwyNi82AC9kYXJrMjYvNgAvc2V0MTYvNgAvcGFzdGVsMTYvNgAvcGFpcmVkMTIvNgAvc2V0MzEyLzYAL3JkZ3kxMS82AC9yZHlsYnUxMS82AC9yZGJ1MTEvNgAvcHVvcjExLzYAL3ByZ24xMS82AC9yZHlsZ24xMS82AC9zcGVjdHJhbDExLzYAL3BpeWcxMS82AC9icmJnMTEvNgAvcGFpcmVkMTEvNgAvc2V0MzExLzYAL3JkZ3kxMC82AC9yZHlsYnUxMC82AC9yZGJ1MTAvNgAvcHVvcjEwLzYAL3ByZ24xMC82AC9yZHlsZ24xMC82AC9zcGVjdHJhbDEwLzYAL3BpeWcxMC82AC9icmJnMTAvNgAvcGFpcmVkMTAvNgAvc2V0MzEwLzYAZ3JleTUAZ3JheTUAXHg1AGJpZzUAXHhGNQBceEU1AFx4RDUAXHhDNQBceEI1AFx4QTUAZ3JleTk1AGdyYXk5NQBceDk1AGdyZXk4NQBncmF5ODUAXHg4NQBncmV5NzUAZ3JheTc1AGdyZXk2NQBncmF5NjUAZ3JleTU1AGdyYXk1NQBncmV5NDUAZ3JheTQ1AGdyZXkzNQBncmF5MzUAZ3JleTI1AGdyYXkyNQBncmV5MTUAZ3JheTE1AFx4MTUAZ3JheTA1AC9yZGd5OS81AC9idXB1OS81AC9yZHB1OS81AC9wdWJ1OS81AC95bGduYnU5LzUAL2duYnU5LzUAL3JkeWxidTkvNQAvcmRidTkvNQAvZ3JleXM5LzUAL2dyZWVuczkvNQAvYmx1ZXM5LzUAL3B1cnBsZXM5LzUAL29yYW5nZXM5LzUAL3JlZHM5LzUAL3B1b3I5LzUAL3lsb3JicjkvNQAvcHVidWduOS81AC9idWduOS81AC9wcmduOS81AC9yZHlsZ245LzUAL3lsZ245LzUAL3NwZWN0cmFsOS81AC9waXlnOS81AC9icmJnOS81AC9wdXJkOS81AC95bG9ycmQ5LzUAL29ycmQ5LzUAL3BhaXJlZDkvNQAvc2V0MzkvNQAvc2V0MTkvNQAvcGFzdGVsMTkvNQAvcmRneTgvNQAvYnVwdTgvNQAvcmRwdTgvNQAvcHVidTgvNQAveWxnbmJ1OC81AC9nbmJ1OC81AC9yZHlsYnU4LzUAL3JkYnU4LzUAL2FjY2VudDgvNQAvZ3JleXM4LzUAL2dyZWVuczgvNQAvYmx1ZXM4LzUAL3B1cnBsZXM4LzUAL29yYW5nZXM4LzUAL3JlZHM4LzUAL3B1b3I4LzUAL3lsb3JicjgvNQAvcHVidWduOC81AC9idWduOC81AC9wcmduOC81AC9yZHlsZ244LzUAL3lsZ244LzUAL3NwZWN0cmFsOC81AC9waXlnOC81AC9icmJnOC81AC9wdXJkOC81AC95bG9ycmQ4LzUAL29ycmQ4LzUAL3BhaXJlZDgvNQAvc2V0MzgvNQAvc2V0MjgvNQAvcGFzdGVsMjgvNQAvZGFyazI4LzUAL3NldDE4LzUAL3Bhc3RlbDE4LzUAL3JkZ3k3LzUAL2J1cHU3LzUAL3JkcHU3LzUAL3B1YnU3LzUAL3lsZ25idTcvNQAvZ25idTcvNQAvcmR5bGJ1Ny81AC9yZGJ1Ny81AC9hY2NlbnQ3LzUAL2dyZXlzNy81AC9ncmVlbnM3LzUAL2JsdWVzNy81AC9wdXJwbGVzNy81AC9vcmFuZ2VzNy81AC9yZWRzNy81AC9wdW9yNy81AC95bG9yYnI3LzUAL3B1YnVnbjcvNQAvYnVnbjcvNQAvcHJnbjcvNQAvcmR5bGduNy81AC95bGduNy81AC9zcGVjdHJhbDcvNQAvcGl5ZzcvNQAvYnJiZzcvNQAvcHVyZDcvNQAveWxvcnJkNy81AC9vcnJkNy81AC9wYWlyZWQ3LzUAL3NldDM3LzUAL3NldDI3LzUAL3Bhc3RlbDI3LzUAL2RhcmsyNy81AC9zZXQxNy81AC9wYXN0ZWwxNy81AC9yZGd5Ni81AC9idXB1Ni81AC9yZHB1Ni81AC9wdWJ1Ni81AC95bGduYnU2LzUAL2duYnU2LzUAL3JkeWxidTYvNQAvcmRidTYvNQAvYWNjZW50Ni81AC9ncmV5czYvNQAvZ3JlZW5zNi81AC9ibHVlczYvNQAvcHVycGxlczYvNQAvb3JhbmdlczYvNQAvcmVkczYvNQAvcHVvcjYvNQAveWxvcmJyNi81AC9wdWJ1Z242LzUAL2J1Z242LzUAL3ByZ242LzUAL3JkeWxnbjYvNQAveWxnbjYvNQAvc3BlY3RyYWw2LzUAL3BpeWc2LzUAL2JyYmc2LzUAL3B1cmQ2LzUAL3lsb3JyZDYvNQAvb3JyZDYvNQAvcGFpcmVkNi81AC9zZXQzNi81AC9zZXQyNi81AC9wYXN0ZWwyNi81AC9kYXJrMjYvNQAvc2V0MTYvNQAvcGFzdGVsMTYvNQAvcmRneTUvNQAvYnVwdTUvNQAvcmRwdTUvNQAvcHVidTUvNQAveWxnbmJ1NS81AC9nbmJ1NS81AC9yZHlsYnU1LzUAL3JkYnU1LzUAL2FjY2VudDUvNQAvZ3JleXM1LzUAL2dyZWVuczUvNQAvYmx1ZXM1LzUAL3B1cnBsZXM1LzUAL29yYW5nZXM1LzUAL3JlZHM1LzUAL3B1b3I1LzUAL3lsb3JicjUvNQAvcHVidWduNS81AC9idWduNS81AC9wcmduNS81AC9yZHlsZ241LzUAL3lsZ241LzUAL3NwZWN0cmFsNS81AC9waXlnNS81AC9icmJnNS81AC9wdXJkNS81AC95bG9ycmQ1LzUAL29ycmQ1LzUAL3BhaXJlZDUvNQAvc2V0MzUvNQAvc2V0MjUvNQAvcGFzdGVsMjUvNQAvZGFyazI1LzUAL3NldDE1LzUAL3Bhc3RlbDE1LzUAL3BhaXJlZDEyLzUAL3NldDMxMi81AC9yZGd5MTEvNQAvcmR5bGJ1MTEvNQAvcmRidTExLzUAL3B1b3IxMS81AC9wcmduMTEvNQAvcmR5bGduMTEvNQAvc3BlY3RyYWwxMS81AC9waXlnMTEvNQAvYnJiZzExLzUAL3BhaXJlZDExLzUAL3NldDMxMS81AC9yZGd5MTAvNQAvcmR5bGJ1MTAvNQAvcmRidTEwLzUAL3B1b3IxMC81AC9wcmduMTAvNQAvcmR5bGduMTAvNQAvc3BlY3RyYWwxMC81AC9waXlnMTAvNQAvYnJiZzEwLzUAL3BhaXJlZDEwLzUAL3NldDMxMC81AGJpZy01AEJJRy01ACAtZGFzaCA1AGl2b3J5NABncmV5NABkYXJrc2xhdGVncmF5NABceDQAc25vdzQAbGlnaHR5ZWxsb3c0AGhvbmV5ZGV3NAB3aGVhdDQAdG9tYXRvNAByb3N5YnJvd240AG1hcm9vbjQAbGlnaHRzYWxtb240AGxlbW9uY2hpZmZvbjQAc3ByaW5nZ3JlZW40AGRhcmtvbGl2ZWdyZWVuNABwYWxlZ3JlZW40AGRhcmtzZWFncmVlbjQAbGlnaHRjeWFuNAB0YW40AHBsdW00AHNlYXNoZWxsNABjb3JhbDQAaG90cGluazQAbGlnaHRwaW5rNABkZWVwcGluazQAY29ybnNpbGs0AGZpcmVicmljazQAa2hha2k0AGxhdmVuZGVyYmx1c2g0AHBlYWNocHVmZjQAYmlzcXVlNABsaWdodHNreWJsdWU0AGRlZXBza3libHVlNABsaWdodGJsdWU0AGNhZGV0Ymx1ZTQAZG9kZ2VyYmx1ZTQAbGlnaHRzdGVlbGJsdWU0AHJveWFsYmx1ZTQAc2xhdGVibHVlNABuYXZham93aGl0ZTQAYW50aXF1ZXdoaXRlNABjaG9jb2xhdGU0AGNoYXJ0cmV1c2U0AG1pc3R5cm9zZTQAcGFsZXR1cnF1b2lzZTQAYXp1cmU0AHRoZXJlNABhcXVhbWFyaW5lNAB0aGlzdGxlNABtZWRpdW1wdXJwbGU0AGRhcmtvcmFuZ2U0AGxpZ2h0Z29sZGVucm9kNABkYXJrZ29sZGVucm9kNABidXJseXdvb2Q0AGdvbGQ0AG1lZGl1bW9yY2hpZDQAZGFya29yY2hpZDQAcGFsZXZpb2xldHJlZDQAaW5kaWFucmVkNABvcmFuZ2VyZWQ0AG9saXZlZHJhYjQAbWFnZW50YTQAc2llbm5hNABceEY0AFx4RTQAXHhENABceEM0AFx4QjQAXHhBNABncmV5OTQAZ3JheTk0AFx4OTQAZ3JleTg0AGdyYXk4NABceDg0AGdyZXk3NABncmF5NzQAZ3JleTY0AGdyYXk2NABncmV5NTQAZ3JheTU0AGdyZXk0NABncmF5NDQAZ3JleTM0AGdyYXkzNABmcmFjMzQAZ3JleTI0AGdyYXkyNAAyMDI1MDYwOC4xNjI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAY3R4LT5UcmVlX2VkZ2Uuc2l6ZSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMABncmV5MTAAZ3JheTEwAFx4MTAAIzEwMTAxMAAvcGFpcmVkMTIvMTAAL3NldDMxMi8xMAAvcmRneTExLzEwAC9yZHlsYnUxMS8xMAAvcmRidTExLzEwAC9wdW9yMTEvMTAAL3ByZ24xMS8xMAAvcmR5bGduMTEvMTAAL3NwZWN0cmFsMTEvMTAAL3BpeWcxMS8xMAAvYnJiZzExLzEwAC9wYWlyZWQxMS8xMAAvc2V0MzExLzEwAC9yZGd5MTAvMTAAL3JkeWxidTEwLzEwAC9yZGJ1MTAvMTAAL3B1b3IxMC8xMAAvcHJnbjEwLzEwAC9yZHlsZ24xMC8xMAAvc3BlY3RyYWwxMC8xMAAvcGl5ZzEwLzEwAC9icmJnMTAvMTAAL3BhaXJlZDEwLzEwAC9zZXQzMTAvMTAAMTIwMABncmV5MTAwAGdyYXkxMDAASVNPLUlSLTEwMAAxMDAwMAAlIVBTLUFkb2JlLTMuMAAxMy4wLjAAbnogPiAwAGxpc3QtPmNhcGFjaXR5ID4gMABkaXN0ID4gMABwYXRoY291bnQgPiAwAHdndCA+IDAAbnNpdGVzID4gMABzaWRlcyA+IDAAcnYgPT0gMCB8fCAoTkRfb3JkZXIocnYpLU5EX29yZGVyKHYpKSpkaXIgPiAwAGxlbiA+IDAAcXQxLT5uID4gMCAmJiBxdDItPm4gPiAwAHdpZHRoID4gMABsaXN0LT5zaXplID4gMABkaWN0LT5zaXplID4gMABzcGwtPnNpemUgPiAwAHNlbGYtPnNpemUgPiAwAGJ6LnNpemUgPiAwAGJvdW5kID4gMABncmFwaC0+d2VpZ2h0c1t4XSA+IDAAZ3JhcGgtPndlaWdodHNbbl9lZGdlc10gPiAwAG0gPiAwICYmIG4gPiAwICYmIG56ID49IDAAdCA+PSAwAG5ub2RlcyA+PSAwAG5fb2JzID49IDAAbiA+PSAwAG4tPmxldmVsID49IDAAdG90YWwgPj0gMABvcmlnaW5hbCA+PSAwAE1heHJhbmsgPj0gMABQYWNrID49IDAAaWkgPCAxPDxkaW0gJiYgaWkgPj0gMAB3aWR0aCA+PSAwAGpkaWFnID49IDAAaWRpYWcgPj0gMABkID49IDAAcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzBdID49IDAgJiYgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID49IDAAViA+PSAwAGFnbm5vZGVzKGdyYXBoKSA+PSAwAGFnbm5vZGVzKGcpID49IDAARURfY291bnQoZSkgPj0gMABvYmpwMS0+c3oueCA9PSAwICYmIG9ianAxLT5zei55ID09IDAAY19jbnQgPT0gMAByYW5rX3Jlc3VsdCA9PSAwAGdldHRpbWVvZmRheV9yZXMgPT0gMABqID09IDAATkRfaW4ocmlnaHQpLnNpemUgKyBORF9vdXQocmlnaHQpLnNpemUgPT0gMABhLnNoYXBlID09IDAgfHwgYi5zaGFwZSA9PSAwAGR0c2l6ZShkZXN0KSA9PSAwAGR0c2l6ZShnLT5uX3NlcSkgPT0gMABkdHNpemUoZy0+Z19zZXEpID09IDAAZHRzaXplKGctPmVfc2VxKSA9PSAwAEdEX21pbnJhbmsoZykgPT0gMABkdHNpemUoZy0+Z19pZCkgPT0gMABkdHNpemUoZy0+ZV9pZCkgPT0gMABjb3N4ICE9IDAgfHwgc2lueCAhPSAwAG1lbWNtcCgmc3R5bGUsICYoZ3JhcGh2aXpfcG9seWdvbl9zdHlsZV90KXswfSwgc2l6ZW9mKHN0eWxlKSkgIT0gMAByZXN1bHQgPT0gKGludCkoc2l6ZSAtIDEpIHx8IHJlc3VsdCA8IDAAbWFza1tpaV0gPCAwAE5EX2hlYXBpbmRleCh2KSA8IDAAXC8AWDExLwAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXRzdHNfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFkZnNfc3RhY2tfaXNfZW1wdHkobGlzdCkAIXBic19zaXplX2lzX2VtcHR5KGxpc3QpAG9iamxpc3RfaXNfY29udGlndW91cyhsaXN0KQBkZWdsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAbm9kZWxpc3RfaXNfY29udGlndW91cyhsaXN0KQBjbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAHBvaW50c19pc19jb250aWd1b3VzKGxpc3QpAHN0cnNfaXNfY29udGlndW91cyhsaXN0KQBBZ3JhcGhzX2lzX2NvbnRpZ3VvdXMobGlzdCkAYm94ZXNfaXNfY29udGlndW91cyhsaXN0KQBsYXllcl9uYW1lc19pc19jb250aWd1b3VzKGxpc3QpAHNub2Rlc19pc19jb250aWd1b3VzKGxpc3QpAHZhcmFycl9pc19jb250aWd1b3VzKGxpc3QpAGJlemllcl9wYXRoX2lzX2NvbnRpZ3VvdXMobGlzdCkAcGJzX3NpemVfaXNfY29udGlndW91cyhsaXN0KQBvbmUgPD0gbm9kZWxpc3Rfc2l6ZShsaXN0KQBucCA8IG5vZGVsaXN0X3NpemUobGlzdCkAc3RkOjppc19oZWFwKGhlYXAuYmVnaW4oKSwgaGVhcC5lbmQoKSwgZ3QpACEocS0+cXRzKQAhaW50c19pc19lbXB0eSgmbGVhdmVzKQBvbl9oZWFwKHIpAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gKHNpemVfdClkdHNpemUoZy0+bl9zZXEpAE5EX3JhbmsoZnJvbSkgPCBORF9yYW5rKHRvKQBub3Qgd2VsbC1mb3JtZWQgKGludmFsaWQgdG9rZW4pAGFnc3VicmVwKGcsbikAbiAhPSBORF9uZXh0KG4pAGZpbmRfZmFzdF9ub2RlKGcsIG4pAChudWxsKQAoIWpjbikgJiYgKCF2YWwpACEocS0+bCkAc3ltLT5pZCA+PSAwICYmIHN5bS0+aWQgPCB0b3BkaWN0c2l6ZShvYmopAG1vdmUgdG8gKCUuMGYsICUuMGYpADsgc3BsaW5lIHRvICglLjBmLCAlLjBmKQA7IGxpbmUgdG8gKCUuMGYsICUuMGYpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgdHJ1ZSkAdmFsdWUgJiYgc3RybGVuKHZhbHVlKQBTcGFyc2VNYXRyaXhfaXNfc3ltbWV0cmljKEEsIGZhbHNlKQAhdXNlX3N0YWdlIHx8IHNpemUgPD0gc2l6ZW9mKHN0YWdlKQBFRF9sYWJlbChmZSkAIVRSRUVfRURHRShlKQAhY29uc3RyYWluaW5nX2ZsYXRfZWRnZShnLCBlKQBub2RlX3NldF9pc19lbXB0eShnLT5uX2lkKQByXyVkKQBsXyVkKQAobGliKQAhU3BhcnNlTWF0cml4X2hhc19kaWFnb25hbChBKQAgc2Nhbm5pbmcgYSBIVE1MIHN0cmluZyAobWlzc2luZyAnPic/IGJhZCBuZXN0aW5nPyBsb25nZXIgdGhhbiAlZD8pACBzY2FubmluZyBhIHF1b3RlZCBzdHJpbmcgKG1pc3NpbmcgZW5kcXVvdGU/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgLyouLi4qLyBjb21tZW50IChtaXNzaW5nICcqLz8gbG9uZ2VyIHRoYW4gJWQ/KQBmYWxsYmFjayg0KQBvbl9oZWFwKHIwKSB8fCBvbl9oZWFwKHIxKQBhZ3RhaWwoZSkgPT0gVUZfZmluZChhZ3RhaWwoZSkpAGFnaGVhZChlKSA9PSBVRl9maW5kKGFnaGVhZChlKSkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2dldF9uZXh0X2J1ZmZlcigpAG91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjaygpAHN0cmVxKG1vZGUsICJyIikgfHwgc3RyZXEobW9kZSwgInJiIikgfHwgc3RyZXEobW9kZSwgInciKSB8fCBzdHJlcShtb2RlLCAid2IiKQBwbmFtZSAhPSBOVUxMICYmICFzdHJlcShwbmFtZSwgIiIpAHNldGxpbmV3aWR0aCgAKSByb3RhdGUoJWQpIHRyYW5zbGF0ZSgAIHRyYW5zZm9ybT0ic2NhbGUoAE5PVEFUSU9OKAAgKAAgbmVhciAnJXMnACVsZiwlbGYsJWxmLCclW14nXScAaXNkaWdpdCgoaW50KWRvdHBbMV0pICYmIGlzZGlnaXQoKGludClkb3RwWzJdKSAmJiBkb3RwWzNdID09ICdcMCcAJgAlACQAdXJsKCMAPHRleHRQYXRoIHhsaW5rOmhyZWY9IiMAPGFyZWEgc2hhcGU9InBvbHkiACBmaWxsPSIjJTAyeCUwMnglMDJ4IgAoc2VxICYgU0VRX01BU0spID09IHNlcSAmJiAic2VxdWVuY2UgSUQgb3ZlcmZsb3ciAGd2X3NvcnRfY29tcGFyID09IE5VTEwgJiYgZ3Zfc29ydF9hcmcgPT0gTlVMTCAmJiAidW5zdXBwb3J0ZWQgcmVjdXJzaXZlIGNhbGwgdG8gZ3Zfc29ydCIAZ3Zfc29ydF9jb21wYXIgIT0gTlVMTCAmJiAibm8gY29tcGFyYXRvciBzZXQgaW4gZ3Zfc29ydCIAb3AtPm9wLnUucG9seWdvbi5jbnQgPD0gSU5UX01BWCAmJiAicG9seWdvbiBjb3VudCBleGNlZWRzIGd2cmVuZGVyX3BvbHlnb24gc3VwcG9ydCIAIHRleHQtYW5jaG9yPSJzdGFydCIAcC54ICE9IGEgJiYgImNhbm5vdCBoYW5kbGUgZWxsaXBzZSB0YW5nZW50IHNsb3BlIGluIGhvcml6b250YWwgZXh0cmVtZSBwb2ludCIAZnVsbF9sZW5ndGhfd2l0aG91dF9zaGFmdCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGxlbmd0aCB3aXRob3V0IHNoYWZ0IgA8YXJlYSBzaGFwZT0icmVjdCIAc2l6ZSA+IDAgJiYgImF0dGVtcHQgdG8gYWxsb2NhdGUgYXJyYXkgb2YgMC1zaXplZCBlbGVtZW50cyIAaW5kZXggPCBzZWxmLT5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgBpbmRleCA8IHNlbGYuc2l6ZV9iaXRzICYmICJvdXQgb2YgYm91bmRzIGFjY2VzcyIAKnMxICE9ICpzMiAmJiAiZHVwbGljYXRlIHNlcGFyYXRvciBjaGFyYWN0ZXJzIgBHRF9taW5yYW5rKHN1YmcpIDw9IEdEX21heHJhbmsoc3ViZykgJiYgImNvcnJ1cHRlZCByYW5rIGJvdW5kcyIAaW5kZXggPCBsaXN0LT5zaXplICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVsaXN0X3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgaW50c19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IHRyYXBzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZXNfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAKHVpbnRwdHJfdClzICUgMiA9PSAwICYmICJoZWFwIHBvaW50ZXIgd2l0aCBsb3cgYml0IHNldCB3aWxsIGNvbGxpZGUgd2l0aCBhbm9ueW1vdXMgSURzIgAgKCslNmxkIGJ5dGVzICVzfCV1LCB4bWxwYXJzZS5jOiVkKSAlKnMiACBmb250LWZhbWlseT0iJXMiACBmb250LXdlaWdodD0iJXMiACBmaWxsPSIlcyIAIGZvbnQtc3RyZXRjaD0iJXMiACBmb250LXN0eWxlPSIlcyIAYmFkIGVkZ2UgbGVuICIlcyIAIGJhc2VsaW5lLXNoaWZ0PSJzdXBlciIAYWd4Ymxlbih4YikgPD0gc2l6ZW9mKHhiLT51LnN0b3JlKSAmJiAiYWd4YnVmIGNvcnJ1cHRpb24iAGNlbGwucm93IDwgdGFibGUtPnJvd19jb3VudCAmJiAib3V0IG9mIHJhbmdlIGNlbGwiAGNlbGwuY29sIDwgdGFibGUtPmNvbHVtbl9jb3VudCAmJiAib3V0IG9mIHJhbmdlIGNlbGwiACB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgBmdWxsX2xlbmd0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGxlbmd0aCIAZnVsbF9iYXNlX3dpZHRoID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgYmFzZSB3aWR0aCIAbm9taW5hbF9iYXNlX3dpZHRoID4gMCAmJiAibm9uLXBvc2l0aXZlIG5vbWluYWwgYmFzZSB3aWR0aCIAIiB3aWR0aD0iJWdweCIgaGVpZ2h0PSIlZ3B4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0IiB4PSIlZyIgeT0iJWciACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgeD0iJWciIHk9IiVnIgAgZm9udC1zaXplPSIlLjJmIgAgZmlsbC1vcGFjaXR5PSIlZiIAPHRleHQgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIAaXNmaW5pdGUobSkgJiYgImVsbGlwc2UgdGFuZ2VudCBzbG9wZSBpcyBpbmZpbml0ZSIAKHhiLT51LnMubG9jYXRlZCA9PSBBR1hCVUZfT05fSEVBUCB8fCB4Yi0+dS5zLmxvY2F0ZWQgPD0gc2l6ZW9mKHhiLT51LnN0b3JlKSkgJiYgImNvcnJ1cHRlZCBhZ3hidWYgdHlwZSIAIHRleHQtYW5jaG9yPSJtaWRkbGUiADxhcmVhIHNoYXBlPSJjaXJjbGUiAGNlbGwtPnJvdyArIGNlbGwtPnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLnJvdyArIGNlbGwucm93c3BhbiA8PSB0YWJsZS0+cm93X2NvdW50ICYmICJjZWxsIHNwYW5zIGhpZ2hlciB0aGFuIGNvbnRhaW5pbmcgdGFibGUiAGNlbGwtPmNvbCArIGNlbGwtPmNvbHNwYW4gPD0gdGFibGUtPmNvbHVtbl9jb3VudCAmJiAiY2VsbCBzcGFucyB3aWRlciB0aGFuIGNvbnRhaW5pbmcgdGFibGUiAGNlbGwuY29sICsgY2VsbC5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBvbGRfbm1lbWIgPCBTSVpFX01BWCAvIHNpemUgJiYgImNsYWltZWQgcHJldmlvdXMgZXh0ZW50IGlzIHRvbyBsYXJnZSIAdGhldGEgPj0gMCAmJiB0aGV0YSA8PSBNX1BJICYmICJ0aGV0YSBvdXQgb2YgcmFuZ2UiAHRhYmxlLT5oZWlnaHRzID09IE5VTEwgJiYgInRhYmxlIGhlaWdodHMgY29tcHV0ZWQgdHdpY2UiAHRhYmxlLT53aWR0aHMgPT0gTlVMTCAmJiAidGFibGUgd2lkdGhzIGNvbXB1dGVkIHR3aWNlIgAgdGV4dC1hbmNob3I9ImVuZCIAIGZvbnQtd2VpZ2h0PSJib2xkIgAgZm9udC1zdHlsZT0iaXRhbGljIgAgYmFzZWxpbmUtc2hpZnQ9InN1YiIAXCIAbGxlbiA8PSBJTlRfTUFYICYmICJYTUwgdG9rZW4gdG9vIGxvbmcgZm9yIGV4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ICAgICAgcGlnbWVudCB7IGJvem8gdHVyYnVsZW5jZSAwLjk1CiAgICAgICAgICAgIGNvbG9yX21hcCB7CiAgICAgICAgICAgICAgICBbMC4wMCByZ2IgPDAuMDUsIDAuMjAsIDAuNTA+XQogICAgICAgICAgICAgICAgWzAuNTAgcmdiIDwwLjA1LCAwLjIwLCAwLjUwPl0KICAgICAgICAgICAgICAgIFswLjc1IHJnYiA8MS4wMCwgMS4wMCwgMS4wMD5dCiAgICAgICAgICAgICAgICBbMC43NSByZ2IgPDAuMjUsIDAuMjUsIDAuMjU+XQogICAgICAgICAgICAgICAgWzEuMDAgcmdiIDwwLjUwLCAwLjUwLCAwLjUwPl0KICAgICAgICAgICAgfQogICAgICAgICAgICBzY2FsZSA8MS4wMCwgMS4wMCwgMS41MD4gKiAyLjUwCiAgICAgICAgICAgIHRyYW5zbGF0ZSA8MC4wMCwgMC4wMCwgMC4wMD4KICAgICAgICB9CiAgICAgICAgZmluaXNoIHsgYW1iaWVudCAxIGRpZmZ1c2UgMCB9CiAgICB9CiAgICBzY2FsZSAxMDAwMAp9Ci8vbWlzdApmb2cgeyBmb2dfdHlwZSAyCiAgICBkaXN0YW5jZSA1MAogICAgY29sb3IgcmdiIDwxLjAwLCAxLjAwLCAxLjAwPiAqIDAuNzUKICAgIGZvZ19vZmZzZXQgMC4xMAogICAgZm9nX2FsdCAxLjUwCiAgICB0dXJidWxlbmNlIDEuNzUKfQovL2duZApwbGFuZSB7IDwwLjAwLCAxLjAwLCAwLjAwPiwgMAogICAgdGV4dHVyZSB7CiAgICAgICAgcGlnbWVudHsgY29sb3IgcmdiIDwwLjI1LCAwLjQ1LCAwLjAwPiB9CiAgICAgICAgbm9ybWFsIHsgYnVtcHMgMC43NSBzY2FsZSAwLjAxIH0KICAgICAgICBmaW5pc2ggeyBwaG9uZyAwLjEwIH0KICAgIH0KfQoAY2FtZXJhIHsgbG9jYXRpb24gPCUuM2YgLCAlLjNmICwgLTUwMC4wMDA+CiAgICAgICAgIGxvb2tfYXQgIDwlLjNmICwgJS4zZiAsIDAuMDAwPgogICAgICAgICByaWdodCB4ICogaW1hZ2Vfd2lkdGggLyBpbWFnZV9oZWlnaHQKICAgICAgICAgYW5nbGUgJS4zZgp9CgAgICAgbWF0ZXJpYWwgTWF0ZXJpYWwgewoAU2hhcGUgewoAICBhcHBlYXJhbmNlIEFwcGVhcmFuY2UgewoAL3VzZXJfc2hhcGVfJWQgewoAZ3JhcGggRyB7CgBhcnJvd2hlYWQgPSA3ICVzIG5vdCB1c2VkIGJ5IGdyYXBodml6CgBib3hyYWQgPSAwICVzIG5vIHJvdW5kZWQgY29ybmVycyBpbiBncmFwaHZpegoAb3V0IG9mIG1lbW9yeQoAJXM6IGNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkKAEdyYXBodml6IGJ1aWx0IHdpdGhvdXQgYW55IHRyaWFuZ3VsYXRpb24gbGlicmFyeQoAcmVtb3ZlX292ZXJsYXA6IEdyYXBodml6IG5vdCBidWlsdCB3aXRoIHRyaWFuZ3VsYXRpb24gbGlicmFyeQoAJXMgZmlsbCBoYXMgbm8gbWVhbmluZyBpbiBEV0IgMiwgZ3BpYyBjYW4gdXNlIGZpbGwgb3IgZmlsbGVkLCAxMHRoIEVkaXRpb24gdXNlcyBmaWxsIG9ubHkKAGJveHJhZD0yLjAgJXMgd2lsbCBiZSByZXNldCB0byAwLjAgYnkgZ3BpYyBvbmx5CgAlZCAlZCAjJTAyeCUwMnglMDJ4CgBIZWFwIG92ZXJmbG93CgB0ZXh0IHsKICAgIHR0ZiAiJXMiLAogICAgIiVzIiwgJS4zZiwgJS4zZgogICAgICAgIG5vX3NoYWRvdwoAJWQgJWQgJWQgJS4wZiAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICV6dQoAdG90YWwgYWRkZWQgc28gZmFyID0gJXp1CgByb290ID0gJXMgbWF4IHN0ZXBzIHRvIHJvb3QgPSAlbGx1CgAucHMgJS4wZipcbihTRnUvJS4wZnUKACAgbWFyZ2luICV1CgBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1CgBvdmVybGFwIFsldV0gOiAldQoAICVzIGFsaWduZWR0ZXh0CgBsYXllcnMgbm90IHN1cHBvcnRlZCBpbiAlcyBvdXRwdXQKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IG91dGVkZ2UgbGlzdAoAYWRkX3RyZWVfZWRnZTogZW1wdHkgaW5lZGdlIGxpc3QKAE5vIGxpYnogc3VwcG9ydAoAJXMgLlBTIHcvbyBhcmdzIGNhdXNlcyBHTlUgcGljIHRvIHNjYWxlIGRyYXdpbmcgdG8gZml0IDguNXgxMSBwYXBlcjsgRFdCIGRvZXMgbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgbGluZXRoaWNrIHZhcmlhYmxlIHRvIHNldCBsaW5lIHRoaWNrbmVzczsgRFdCIGFuZCAxMHRoIEVkLiBkbyBub3QKACVzIEdOVSBwaWMgc3VwcG9ydHMgYSBib3hyYWQgdmFyaWFibGUgdG8gZHJhdyBib3hlcyB3aXRoIHJvdW5kZWQgY29ybmVyczsgRFdCIGFuZCAxMHRoIEVkLiBkbyBub3QKACAvJXMgc2V0X2ZvbnQKACVzJS4qcyBpcyBub3QgYSB0cm9mZiBmb250CgBjZWxsIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgB0YWJsZSBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAJSVFbmREb2N1bWVudAoAVW5jbG9zZWQgY29tbWVudAoATGFiZWwgY2xvc2VkIGJlZm9yZSBlbmQgb2YgSFRNTCBlbGVtZW50CgBQb3J0cmFpdAoAZml4ZWQgY2VsbCBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBmaXhlZCB0YWJsZSBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBwb3MgYXR0cmlidXRlIGZvciBlZGdlICglcywlcykgZG9lc24ndCBoYXZlIDNuKzEgcG9pbnRzCgAgIGdlbmVyYXRlZCAlZCBjb25zdHJhaW50cwoAc3BsaW5lcyBhbmQgY2x1c3RlciBlZGdlcyBub3Qgc3VwcG9ydGVkIC0gdXNpbmcgbGluZSBzZWdtZW50cwoAb2JqZWN0cwoAV2FybmluZzogbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBmbG9hdHMKAGZvbnQgbmFtZSAlcyBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgbWF5IG5vdCBiZSBhY2NlcHRlZCBieSBzb21lIFBTIHZpZXdlcnMKAGZvbnQgbmFtZSAlcyBpcyBsb25nZXIgdGhhbiAyOSBjaGFyYWN0ZXJzIHdoaWNoIG1heSBiZSByZWplY3RlZCBieSBzb21lIFBTIHZpZXdlcnMKAGNhbm5vdCBhbGxvY2F0ZSBwcwoAc2NhbGU9MS4wICVzIHJlcXVpcmVkIGZvciBjb21wYXJpc29ucwoAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwoAJXMgRFdCIDIgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucwoAYXJyYXkgcGFja2luZzogJXMgJXp1IHJvd3MgJXp1IGNvbHVtbnMKAHN5bnRheCBhbWJpZ3VpdHkgLSBiYWRseSBkZWxpbWl0ZWQgbnVtYmVyICclcycgaW4gbGluZSAlZCBvZiAlcyBzcGxpdHMgaW50byB0d28gdG9rZW5zCgBlZGdlIGxhYmVscyB3aXRoIHNwbGluZXM9Y3VydmVkIG5vdCBzdXBwb3J0ZWQgaW4gZG90IC0gdXNlIHhsYWJlbHMKAGZsYXQgZWRnZSBiZXR3ZWVuIGFkamFjZW50IG5vZGVzIG9uZSBvZiB3aGljaCBoYXMgYSByZWNvcmQgc2hhcGUgLSByZXBsYWNlIHJlY29yZHMgd2l0aCBIVE1MLWxpa2UgbGFiZWxzCgBvdXQgb2YgbWVtb3J5IHdoZW4gdHJ5aW5nIHRvIGFsbG9jYXRlICV6dSBieXRlcwoAaW50ZWdlciBvdmVyZmxvdyB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgKiAlenUgYnl0ZXMKAHVwZGF0ZTogbWlzbWF0Y2hlZCBsY2EgaW4gdHJlZXVwZGF0ZXMKAGdyYXBoICVzLCBjb29yZCAlcywgZXhwZWN0ZWQgZm91ciBkb3VibGVzCgBub2RlICVzLCBwb3NpdGlvbiAlcywgZXhwZWN0ZWQgdHdvIGRvdWJsZXMKAEZvdW5kICVkIERpRy1Db0xhIGJvdW5kYXJpZXMKAEluY2hlcwoAKCU0enUpICU3enUgbm9kZXMgJTd6dSBlZGdlcwoAY29tcG91bmRFZGdlczogY291bGQgbm90IGNvbnN0cnVjdCBvYnN0YWNsZXMgLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAdGhlIGJvdW5kaW5nIGJveGVzIG9mIHNvbWUgbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAY29tcG91bmRFZGdlczogbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAc29tZSBub2RlcyB3aXRoIG1hcmdpbiAoJS4wMmYsJS4wMmYpIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAG1lcmdlMjogZ3JhcGggJXMsIHJhbmsgJWQgaGFzIG9ubHkgJWQgPCAlZCBub2RlcwoAU2Nhbm5pbmcgZ3JhcGggJXMsICVkIG5vZGVzCgBXYXJuaW5nOiBubyBoYXJkLWNvZGVkIG1ldHJpY3MgZm9yICclcycuICBGYWxsaW5nIGJhY2sgdG8gJ1RpbWVzJyBtZXRyaWNzCgBpbiBlZGdlICVzJXMlcwoAVXNpbmcgJXM6ICVzOiVzCgBGb3JtYXQ6ICIlcyIgbm90IHJlY29nbml6ZWQuIFVzZSBvbmUgb2Y6JXMKAExheW91dCB0eXBlOiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBsYXlvdXQgJXMKAC5mdCAlcwoAYmFkIGxhYmVsIGZvcm1hdCAlcwoAaW4gcm91dGVzcGxpbmVzLCBlZGdlIGlzIGEgbG9vcCBhdCAlcwoAICAgICAgICU3ZCBub2RlcyAlN2QgZWRnZXMgJTd6dSBjb21wb25lbnRzICVzCgBpbiBsYWJlbCBvZiBlZGdlICVzICVzICVzCgAgIEVkZ2UgJXMgJXMgJXMKAG9ydGhvICVzICVzCgBwb2x5bGluZSAlcyAlcwoAc3BsaW5lICVzICVzCgByZWN0YW5nbGUgKCUuMGYsJS4wZikgKCUuMGYsJS4wZikgJXMgJXMKAGluIGNsdXN0ZXIgJXMKACVzIHdhcyBhbHJlYWR5IGluIGEgcmFua3NldCwgZGVsZXRlZCBmcm9tIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiB0YWlsIG5vdCBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBpcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgBoZWFkIGNsdXN0ZXIgJXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBub2RlICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiBoZWFkIG5vdCBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBpcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgB0YWlsIGNsdXN0ZXIgJXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBub2RlICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAFVuaGFuZGxlZCBhZGp1c3Qgb3B0aW9uICVzCgByZXBvc2l0aW9uICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIHhsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB0YWlsIGxhYmVsICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIGxhYmVsICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIGhlYWQgbGFiZWwgJXMKAC8vKioqIGJlZ2luX2dyYXBoICVzCgBNYXguIGl0ZXJhdGlvbnMgKCVkKSByZWFjaGVkIG9uIGdyYXBoICVzCgBDb3VsZCBub3QgcGFyc2UgIl9iYWNrZ3JvdW5kIiBhdHRyaWJ1dGUgaW4gZ3JhcGggJXMKAGluIGxhYmVsIG9mIGdyYXBoICVzCgBDcmVhdGluZyBlZGdlcyB1c2luZyAlcwoAQWRqdXN0aW5nICVzIHVzaW5nICVzCgAlcyB3aGlsZSBvcGVuaW5nICVzCgBkZXJpdmUgZ3JhcGggX2RnXyVkIG9mICVzCgAgXSAgJXp1IHRydWUgJXMKAF0gICVkIHRydWUgJXMKACBdICAlenUgZmFsc2UgJXMKAF0gICVkIGZhbHNlICVzCgBtYWtlUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgBtYWtlQWRkUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgB1c2luZyAlcyBmb3IgdW5rbm93biBzaGFwZSAlcwoAICBvY3RyZWUgc2NoZW1lICVzCgBjYW4ndCBvcGVuIGxpYnJhcnkgZmlsZSAlcwoAY2FuJ3QgZmluZCBsaWJyYXJ5IGZpbGUgJXMKAEJvdW5kaW5nQm94IG5vdCBmb3VuZCBpbiBlcHNmIGZpbGUgJXMKAGNvdWxkbid0IG9wZW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCByZWFkIGZyb20gZXBzZiBmaWxlICVzCgBpbiBub2RlICVzCgBzaGFwZWZpbGUgbm90IHNldCBvciBub3QgZm91bmQgZm9yIGVwc2Ygbm9kZSAlcwoAaW4gbGFiZWwgb2Ygbm9kZSAlcwoAZW5kICVzCgByYW5raW5nOiBmYWlsdXJlIHRvIGNyZWF0ZSBzdHJvbmcgY29uc3RyYWludCBlZGdlIGJldHdlZW4gbm9kZXMgJXMgYW5kICVzCgBvb3BzLCBpbnRlcm5hbCBlcnJvcjogdW5oYW5kbGVkIGNvbG9yIHR5cGU9JWQgJXMKACVkICVkICVkICVkICVkICVkICVkICVkICVkICUuMWYgJWQgJWQgJWQgJWQgJWQgJWQKICVkICVzCgByb290ID0gJXMKAC8vKioqIHRleHRzcGFuOiAlcywgZm9udHNpemUgPSAlLjNmLCBmb250bmFtZSA9ICVzCgB0cmllcyA9ICVkLCBtb2RlID0gJXMKAC8vKioqIGNvbW1lbnQ6ICVzCgBmb250bmFtZTogIiVzIiByZXNvbHZlZCB0bzogJXMKACUlJSVQYWdlT3JpZW50YXRpb246ICVzCgBkZWxhdW5heV90cmlhbmd1bGF0aW9uOiAlcwoAZGVsYXVuYXlfdHJpOiAlcwoAZ3ZwcmludGY6ICVzCgBuZXN0aW5nIG5vdCBhbGxvd2VkIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcpJyBpbiBzdHlsZTogJXMKAHVubWF0Y2hlZCAnKCcgaW4gc3R5bGU6ICVzCgAlJSUlVGl0bGU6ICVzCgAlcyBUaXRsZTogJXMKACMgVGl0bGU6ICVzCgAvLyoqKiBiZWdpbl9ub2RlOiAlcwoAcmVhbGxvYyBmYWlsZWQ6ICVzCgBsaWIvcGF0aHBsYW4vJXM6JWQ6ICVzCgBncmlkKCVkLCVkKTogJXMKAENvdWxkIG5vdCBvcGVuICIlcyIgZm9yIHdyaXRpbmcgOiAlcwoAc3RhcnQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAZW5kIHBvcnQ6ICglLjVnLCAlLjVnKSwgdGFuZ2VudCBhbmdsZTogJS41ZywgJXMKACBbJXp1XSAlcCBzZXQgJWQgKCUuMDJmLCUuMDJmKSAoJS4wMmYsJS4wMmYpICVzCgAlJSAlcwoAIyAlcwoAICBtb2RlICAgJXMKAGNvbmp1Z2F0ZV9ncmFkaWVudDogdW5leHBlY3RlZCBsZW5ndGggMCB2ZWN0b3IKACVzIHRvIGNoYW5nZSBkcmF3aW5nIHNpemUsIG11bHRpcGx5IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9uIHRoZSAuUFMgbGluZSBhYm92ZSBhbmQgdGhlIG51bWJlciBvbiB0aGUgdHdvIGxpbmVzIGJlbG93IChyb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVnZXIpIGJ5IGEgc2NhbGUgZmFjdG9yCgBhZGRfc2VnbWVudDogZXJyb3IKACUuNWcgJS41ZyAlLjVnICVzY29sb3IKADAgMCAwIGVkZ2Vjb2xvcgoAMC44IDAuOCAwLjggc2V0cmdiY29sb3IKADAgMCAxIHNldHJnYmNvbG9yCgAxIDAgMCBzZXRyZ2Jjb2xvcgoAMCAwIDAgc2V0cmdiY29sb3IKACVkICVkIHNldGxheWVyCgAvLyoqKiBlbmRfbGF5ZXIKAFVURi04IGlucHV0IHVzZXMgbm9uLUxhdGluMSBjaGFyYWN0ZXJzIHdoaWNoIGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgUG9zdFNjcmlwdCBkcml2ZXIKAExldHRlcgoALy8qKiogYmVnaW5fY2x1c3RlcgoALy8qKiogZW5kX2NsdXN0ZXIKAHJlbW92aW5nIGVtcHR5IGNsdXN0ZXIKAENlbnRlcgoAV2FybmluZzogbm8gdmFsdWUgZm9yIHdpZHRoIG9mIG5vbi1BU0NJSSBjaGFyYWN0ZXIgJXUuIEZhbGxpbmcgYmFjayB0byB3aWR0aCBvZiBzcGFjZSBjaGFyYWN0ZXIKAGJhc2UgcmVmZXJlcgoAJSVQYWdlVHJhaWxlcgoAJSVUcmFpbGVyCgAvLyoqKiBiZXppZXIKACIlcyIgd2FzIG5vdCBmb3VuZCBhcyBhIGZpbGUgb3IgYXMgYSBzaGFwZSBsaWJyYXJ5IG1lbWJlcgoAc3RvcAoAIGN1cnZldG8KAG5ld3BhdGggJS4wZiAlLjBmIG1vdmV0bwoAJS4wZiAlLjBmIGxpbmV0bwoAIGxheW91dD1uZWF0bwoAbm9kZSAlcyBpbiBncmFwaCAlcyBoYXMgbm8gcG9zaXRpb24KACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGhhdmUgbm8gbWVhbmluZyBpbiBEV0IgMi4wLCBzZXQgcGFnZSBib3VuZGFyaWVzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgYXJyb3doZWFkIGhhcyBubyBtZWFuaW5nIGluIERXQiAyLCBhcnJvd2hlYWQgPSA3IG1ha2VzIGZpbGxlZCBhcnJvd2hlYWRzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgYXJyb3doZWFkIGlzIHVuZGVmaW5lZCBpbiBEV0IgMiwgaW5pdGlhbGx5IDEgaW4gZ3BpYywgMiBpbiAxMHRoIEVkaXRpb24KAG1ham9yaXphdGlvbgoALy8qKiogcG9seWdvbgoAb3ZlcmZsb3cgd2hlbiBjb21wdXRpbmcgZWRnZSB3ZWlnaHQgc3VtCgBzZmRwIG9ubHkgc3VwcG9ydHMgc3RhcnQ9cmFuZG9tCgBub2RlIHBvc2l0aW9ucyBhcmUgaWdub3JlZCB1bmxlc3Mgc3RhcnQ9cmFuZG9tCgBjbG9zZXBhdGggZmlsbAoAIGVsbGlwc2VfcGF0aCBmaWxsCgAgICUuMGYgJS4wZiBjZWxsCgAlZiAlZiAlZiAlZiBjZWxsCgBncmFwaCAlcyBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZ3JhcGggaXMgZGlzY29ubmVjdGVkLiBIZW5jZSwgdGhlIGNpcmN1aXQgbW9kZWwKAGVkZ2VzIGluIGdyYXBoICVzIGhhdmUgbm8gbGVuIGF0dHJpYnV0ZS4gSGVuY2UsIHRoZSBtZHMgbW9kZWwKAGNpcmN1aXQgbW9kZWwgbm90IHlldCBzdXBwb3J0ZWQgaW4gR21vZGU9c2dkLCByZXZlcnRpbmcgdG8gc2hvcnRwYXRoIG1vZGVsCgBtZHMgbW9kZWwgbm90IHlldCBzdXBwb3J0ZWQgaW4gR21vZGU9c2dkLCByZXZlcnRpbmcgdG8gc2hvcnRwYXRoIG1vZGVsCgBub2RlICclcycsIGdyYXBoICclcycgc2l6ZSB0b28gc21hbGwgZm9yIGxhYmVsCgAlcyBEV0IgMiBkb2Vzbid0IHVzZSBmaWxsIGFuZCBkb2Vzbid0IGRlZmluZSBmaWxsdmFsCgBbIHtDYXRhbG9nfSA8PCAvVVJJIDw8IC9CYXNlICVzID4+ID4+Ci9QVVQgcGRmbWFyawoAWyAvQ3JvcEJveCBbJWQgJWQgJWQgJWRdIC9QQUdFUyBwZGZtYXJrCgAgIC9Cb3JkZXIgWyAwIDAgMCBdCiAgL0FjdGlvbiA8PCAvU3VidHlwZSAvVVJJIC9VUkkgJXMgPj4KICAvU3VidHlwZSAvTGluawovQU5OIHBkZm1hcmsKAHRyb3VibGUgaW4gaW5pdF9yYW5rCgBsaW5ldGhpY2sgPSAwOyBvbGRsaW5ldGhpY2sgPSBsaW5ldGhpY2sKACBzZXRsaW5ld2lkdGgKAGdzYXZlCiVkICVkICVkICVkIGJveHByaW0gY2xpcCBuZXdwYXRoCgBnc2F2ZSAlZyAlZyB0cmFuc2xhdGUgbmV3cGF0aAoALy8qKiogZW5kX2dyYXBoCgBsYXlvdXQgYXR0cmlidXRlIGlzIGludmFsaWQgZXhjZXB0IG9uIHRoZSByb290IGdyYXBoCgBpbiBjaGVja3BhdGgsIGJveGVzICV6dSBhbmQgJXp1IGRvbid0IHRvdWNoCgBtZXJnZV9vbmV3YXkgZ2xpdGNoCgAlcyBkb24ndCBjaGFuZ2UgYW55dGhpbmcgYmVsb3cgdGhpcyBsaW5lIGluIHRoaXMgZHJhd2luZwoATm9kZSBub3QgYWRqYWNlbnQgdG8gY2VsbCAtLSBBYm9ydGluZwoAaW5jb21wYXJhYmxlIHNlZ21lbnRzICEhIC0tIEFib3J0aW5nCgBBbHRlcm5hdGl2ZWx5LCBjb25zaWRlciBydW5uaW5nIG5lYXRvIHVzaW5nIC1HcGFjaz10cnVlIG9yIGRlY29tcG9zaW5nCgBsYWJlbF9zY2hlbWUgPSAlZCA+IDQgOiBpZ25vcmluZwoAZ3ZyZW5kZXJfc2V0X3N0eWxlOiB1bnN1cHBvcnRlZCBzdHlsZSAlcyAtIGlnbm9yaW5nCgBBcnJvdyB0eXBlICIlcyIgdW5rbm93biAtIGlnbm9yaW5nCgBmZHAgZG9lcyBub3Qgc3VwcG9ydCBzdGFydD1zZWxmIC0gaWdub3JpbmcKACVzIGF0dHJpYnV0ZSB2YWx1ZSBtdXN0IGJlIDEgb3IgMiAtIGlnbm9yaW5nCgBNb3JlIHRoYW4gMiBjb2xvcnMgc3BlY2lmaWVkIGZvciBhIGdyYWRpZW50IC0gaWdub3JpbmcgcmVtYWluaW5nCgBhcyByZXF1aXJlZCBieSB0aGUgLW4gZmxhZwoAYmJbJXNdICUuNWcgJS41ZyAlLjVnICUuNWcKAC9wYXRoYm94IHsKICAgIC9ZIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAvWCBleGNoICUuNWcgc3ViIGRlZgogICAgL3kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC94IGV4Y2ggJS41ZyBzdWIgZGVmCiAgICBuZXdwYXRoIHggeSBtb3ZldG8KICAgIFggeSBsaW5ldG8KICAgIFggWSBsaW5ldG8KICAgIHggWSBsaW5ldG8KICAgIGNsb3NlcGF0aCBzdHJva2UKIH0gZGVmCi9kYmdzdGFydCB7IGdzYXZlICUuNWcgJS41ZyB0cmFuc2xhdGUgfSBkZWYKL2Fycm93bGVuZ3RoIDEwIGRlZgovYXJyb3d3aWR0aCBhcnJvd2xlbmd0aCAyIGRpdiBkZWYKL2Fycm93aGVhZCB7CiAgICBnc2F2ZQogICAgcm90YXRlCiAgICBjdXJyZW50cG9pbnQKICAgIG5ld3BhdGgKICAgIG1vdmV0bwogICAgYXJyb3dsZW5ndGggYXJyb3d3aWR0aCAyIGRpdiBybGluZXRvCiAgICAwIGFycm93d2lkdGggbmVnIHJsaW5ldG8KICAgIGNsb3NlcGF0aCBmaWxsCiAgICBncmVzdG9yZQp9IGJpbmQgZGVmCi9tYWtlYXJyb3cgewogICAgY3VycmVudHBvaW50IGV4Y2ggcG9wIHN1YiBleGNoIGN1cnJlbnRwb2ludCBwb3Agc3ViIGF0YW4KICAgIGFycm93aGVhZAp9IGJpbmQgZGVmCi9wb2ludCB7ICAgIG5ld3BhdGggICAgMiAwIDM2MCBhcmMgZmlsbH0gZGVmL21ha2V2ZWMgewogICAgL1kgZXhjaCBkZWYKICAgIC9YIGV4Y2ggZGVmCiAgICAveSBleGNoIGRlZgogICAgL3ggZXhjaCBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCBZIGxpbmV0byBzdHJva2UKICAgIFggWSBtb3ZldG8KICAgIHggeSBtYWtlYXJyb3cKfSBkZWYKAC9wYXRoYm94IHsKICAgIC9YIGV4Y2ggbmVnICUuNWcgc3ViIGRlZgogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC94IGV4Y2ggbmVnICUuNWcgc3ViIGRlZgogICAgL3kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgoAJSFQUy1BZG9iZS0yLjAKL25vZGUgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICAveSBleGNoIGRlZgogIC94IGV4Y2ggZGVmCiAgbmV3cGF0aAogIHggeSBtb3ZldG8KICB4IFkgbGluZXRvCiAgWCBZIGxpbmV0bwogIFggeSBsaW5ldG8KICBjbG9zZXBhdGggZmlsbAp9IGRlZgovY2VsbCB7CiAgL1kgZXhjaCBkZWYKICAvWCBleGNoIGRlZgogIC95IGV4Y2ggZGVmCiAgL3ggZXhjaCBkZWYKICBuZXdwYXRoCiAgeCB5IG1vdmV0bwogIHggWSBsaW5ldG8KICBYIFkgbGluZXRvCiAgWCB5IGxpbmV0bwogIGNsb3NlcGF0aCBzdHJva2UKfSBkZWYKAH0gYmluZCBkZWYKAC5QUyAlLjVmICUuNWYKAG92ZXJsYXA6ICVzIHZhbHVlICVkIHNjYWxpbmcgJS4wNGYKACAgYmVhdXRpZnlfbGVhdmVzICVkIG5vZGUgd2VpZ2h0cyAlZCByb3RhdGlvbiAlLjAzZgoAICByZXB1bHNpdmUgZXhwb25lbnQ6ICUuMDNmCgAgIEsgOiAlLjAzZiBDIDogJS4wM2YKACVzICUuM2YKAAppbnRlcnNlY3Rpb24gYXQgJS4zZiAlLjNmCgAgICAgc2NhbGUgJS4zZgoAdG9ydXMgeyAlLjNmLCAlLjNmCgAgICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+LCAlLjNmCgAgaW4gJXMgLSBzZXR0aW5nIHRvICUuMDJmCgBjaXJjbGUgJXMgJS4wZiwlLjBmLCUuMGYKAHJlY3QgJXMgJS4wZiwlLjBmICUuMGYsJS4wZgoAJWQgJWQgJWQgJS4wZiAlZCAlZCAlZCAlZCAlZCAlLjNmICVkICUuNGYgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmCgAgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmICUuMGYgJS4wZgoAJSUlJVBhZ2U6IDEgMQolJSUlUGFnZUJvdW5kaW5nQm94OiAlLjBmICUuMGYgJS4wZiAlLjBmCgBwb3NbJXp1XSAlLjBmICUuMGYKAC5uciBTRiAlLjBmCnNjYWxldGhpY2tuZXNzID0gJS4wZgoAJXMgc2F2ZSBwb2ludCBzaXplIGFuZCBmb250Ci5uciAuUyBcbigucwoubnIgREYgXG4oLmYKAHNob3dwYWdlCiUlJSVUcmFpbGVyCiUlJSVCb3VuZGluZ0JveDogJS5mICUuZiAlLmYgJS5mCgBhZGRpbmcgJXp1IGl0ZW1zLCB0b3RhbCBhcmVhID0gJWYsIHcgPSAlZiwgYXJlYS93PSVmCgBnYXA9JWYsJWYKACAgYXNwZWN0ICVmCgBhICVmIGIgJWYgYyAlZiBkICVmIHIgJWYKAG1vZGVsICVkIHNtYXJ0X2luaXQgJWQgc3RyZXNzd3QgJWQgaXRlcmF0aW9ucyAlZCB0b2wgJWYKAFNvbHZpbmcgbW9kZWwgJWQgaXRlcmF0aW9ucyAlZCB0b2wgJWYKACVzIGNvb3JkICUuNWcgJS41ZyBodCAlZiB3aWR0aCAlZgoAcmVjICVmICVmICVmICVmCgAlcyA6ICVmICVmICVmICVmCgAlcyA6ICVmICVmCgBtYXhwc2h0ID0gJWYKbWF4cHN3aWQgPSAlZgoAbWRzTW9kZWw6IGRlbHRhID0gJWYKACByMSAlZiByMiAlZgoAUGFja2luZzogY29tcHV0ZSBncmlkIHNpemUKAGdzYXZlCgAlJUVuZENvbW1lbnRzCnNhdmUKAFVucmVjb2duaXplZCBjaGFyYWN0ZXIgJyVjJyAoJWQpIGluIHNpZGVzIGF0dHJpYnV0ZQoASW1hZ2VzIHVuc3VwcG9ydGVkIGluICJiYWNrZ3JvdW5kIiBhdHRyaWJ1dGUKACVzIEdOVSBwaWMgdnMuIDEwdGggRWRpdGlvbiBkXChlJ3RlbnRlCgByZXNldCAlcyBzZXQgdG8ga25vd24gc3RhdGUKACVnICVnIHNldF9zY2FsZSAlZCByb3RhdGUgJWcgJWcgdHJhbnNsYXRlCgAlZiAlZiB0cmFuc2xhdGUKACVkICVkIHRyYW5zbGF0ZQoALy8qKiogZWxsaXBzZQoAVW5yZWNvZ25pemVkIG92ZXJsYXAgdmFsdWUgIiVzIiAtIHVzaW5nIGZhbHNlCgBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgAlczogdnNucHJpbnRmIGZhaWx1cmUKAGVuZHBhZ2UKc2hvd3BhZ2UKZ3Jlc3RvcmUKAGVuZApyZXN0b3JlCgBsYXlvdXQgd2FzIG5vdCBkb25lCgBMYXlvdXQgd2FzIG5vdCBkb25lCgAvLyoqKiBwb2x5bGluZQoAdHJ5aW5nIHRvIGRlbGV0ZSBhIG5vbi1saW5lCgAjIGVuZCBvZiBGSUcgZmlsZQoAU2luZ2xlCgByZW5kZXJlciBmb3IgJXMgaXMgdW5hdmFpbGFibGUKAGR5bmFtaWMgbG9hZGluZyBub3QgYXZhaWxhYmxlCgAlLjBmICUuMGYgbGluZXRvIHN0cm9rZQoAY2xvc2VwYXRoIHN0cm9rZQoAIGVsbGlwc2VfcGF0aCBzdHJva2UKAC8vKioqIGJlZ2luX2VkZ2UKAC8vKioqIGVuZF9lZGdlCgBsb3N0ICVzICVzIGVkZ2UKAG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdmlydHVhbCB3ZWlnaHQgb2YgZWRnZQoAYWRkX3RyZWVfZWRnZTogbWlzc2luZyB0cmVlIGVkZ2UKAGluIHJvdXRlc3BsaW5lcywgY2Fubm90IGZpbmQgTk9STUFMIGVkZ2UKAHNob3dwYWdlCgAlZCAlZCAlZCBiZWdpbnBhZ2UKAC8vKioqIGJlZ2luX3BhZ2UKAC8vKioqIGVuZF9wYWdlCgBGaWxlbmFtZSAiJXMiIGlzIHVuc2FmZQoAbGFiZWw6IGFyZWEgdG9vIGxhcmdlIGZvciBydHJlZQoALy8qKiogZW5kX25vZGUKAFVzaW5nIGRlZmF1bHQgY2FsY3VsYXRpb24gZm9yIHJvb3Qgbm9kZQoAY29udGFpbl9ub2RlcyBjbHVzdCAlcyByYW5rICVkIG1pc3Npbmcgbm9kZQoAJWYgJWYgJWYgJWYgbm9kZQoAPDwgL1BhZ2VTaXplIFslZCAlZF0gPj4gc2V0cGFnZWRldmljZQoAaW4gY2hlY2twYXRoLCBib3ggJXp1IGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBpbiBjaGVja3BhdGgsIGJveCAwIGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBjbHVzdGVyIG5hbWVkICVzIG5vdCBmb3VuZAoAbWluY3Jvc3M6IHBhc3MgJWQgaXRlciAlZCB0cnlpbmcgJWQgY3VyX2Nyb3NzICVsbGQgYmVzdF9jcm9zcyAlbGxkCgBub2RlICVzLCBwb3J0ICVzIHVucmVjb2duaXplZAoAJXMlcyB1bnN1cHBvcnRlZAoAY2x1c3RlciBjeWNsZSAlcyAtLSAlcyBub3Qgc3VwcG9ydGVkCgAlcyAtPiAlczogc3BsaW5lIHNpemUgPiAxIG5vdCBzdXBwb3J0ZWQKAGxheW91dCBhYm9ydGVkCgBwYWdlZGlyPSVzIGlnbm9yZWQKAFR3byBjbHVzdGVycyBuYW1lZCAlcyAtIHRoZSBzZWNvbmQgd2lsbCBiZSBpZ25vcmVkCgBJbGxlZ2FsIGF0dHJpYnV0ZSAlcyBpbiAlcyAtIGlnbm9yZWQKAFVua25vd24gdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZWwiIGluIGdyYXBoICVzIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgYXR0cmlidXRlICJtb2RlIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAHN0YXJ0PTAgbm90IHN1cHBvcnRlZCB3aXRoIG1vZGU9c2VsZiAtIGlnbm9yZWQKAE92ZXJsYXAgdmFsdWUgIiVzIiB1bnN1cHBvcnRlZCAtIGlnbm9yZWQKAFVua25vd24gdmFsdWUgJXMgZm9yIFJPV1MgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBDT0xVTU5TIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgVkFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQUxJR04gLSBpZ25vcmVkCgBJbGxlZ2FsIHZhbHVlICVzIGZvciBGSVhFRFNJWkUgLSBpZ25vcmVkCgBJbGxlZ2FsIHZhbHVlICUuKnMgZm9yIFNUWUxFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQkFMSUdOIGluIFREIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQUxJR04gaW4gVEQgLSBpZ25vcmVkCgBST1dTUEFOIHZhbHVlIGNhbm5vdCBiZSAwIC0gaWdub3JlZAoAQ09MU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAG5vZGUgJXMsIHBvcnQgJXMsIHVucmVjb2duaXplZCBjb21wYXNzIHBvaW50ICclcycgLSBpZ25vcmVkCgBVbmtub3duICJzcGxpbmVzIiB2YWx1ZTogIiVzIiAtIGlnbm9yZWQKAGluIHJvdXRlc3BsaW5lcywgUHNob3J0ZXN0cGF0aCBmYWlsZWQKAGluIHJvdXRlc3BsaW5lcywgUHJvdXRlc3BsaW5lIGZhaWxlZAoAIyBwbHVnaW4gbG9hZGluZyBvZiBkZXBlbmRlbmN5ICIlLipzIiBmYWlsZWQKAFBhcnNpbmcgb2YgIiVzIiBmYWlsZWQKACVzOiVkOiBjbGFpbWVkIHVucmVhY2hhYmxlIGNvZGUgd2FzIHJlYWNoZWQKACMgdW5zdWNjZXNzZnVsIHBsdWdpbiBsb2FkCgAlLjVnICUuNWcgdHJhbnNsYXRlIG5ld3BhdGggdXNlcl9zaGFwZV8lZAoAbnNpemVzY2FsZT0lZixpdGVyYXRpb25zPSVkCgBjdHJsLT5vdmVybGFwPSVkCgAlcyAlZCBub2RlcyAlZCBlZGdlcyBtYXhpdGVyPSVkIGJhbGFuY2U9JWQKAC8vKioqIGJlZ2luX2xheWVyOiAlcywgJWQvJWQKAGRlZ2VuZXJhdGUgY29uY2VudHJhdGVkIHJhbmsgJXMsJWQKACAgbWF4IGxldmVscyAlZAoACSVzICVkCgAgIEJhcm5lcy1IdXR0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PgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgoAbWluY3Jvc3MgJXM6ICVsbGQgY3Jvc3NpbmdzLCAlLjJmIHNlY3MuCgAlcyBpcyBub3QgYSBrbm93biBjb2xvci4KAGlzIGluYXBwcm9wcmlhdGUuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAGlzIHVuZGVmaW5lZC4gUmV2ZXJ0aW5nIHRvIHRoZSBzaG9ydGVzdCBwYXRoIG1vZGVsLgoAVW5hYmxlIHRvIHJlY2xhaW0gYm94IHNwYWNlIGluIHNwbGluZSByb3V0aW5nIGZvciBlZGdlICIlcyIgLT4gIiVzIi4gU29tZXRoaW5nIGlzIHByb2JhYmx5IHNlcmlvdXNseSB3cm9uZy4KAEVycm9yIGR1cmluZyBjb252ZXJzaW9uIHRvICJVVEYtOCIuIFF1aXRpbmcuCgBvcmRlcmluZyAnJXMnIG5vdCByZWNvZ25pemVkLgoAZ3JhZGllbnQgcGVuIGNvbG9ycyBub3QgeWV0IHN1cHBvcnRlZC4KACAgaW5pdENNYWpWUFNDIGRvbmU6ICVkIGdsb2JhbCBjb25zdHJhaW50cyBnZW5lcmF0ZWQuCgBUaGUgY2hhcmFjdGVyICclYycgYXBwZWFycyBpbiBib3RoIHRoZSBsYXllcnNlcCBhbmQgbGF5ZXJsaXN0c2VwIGF0dHJpYnV0ZXMgLSBsYXllcmxpc3RzZXAgaWdub3JlZC4KAHRoZSBhc3BlY3QgYXR0cmlidXRlIGhhcyBiZWVuIGRpc2FibGVkIGR1ZSB0byBpbXBsZW1lbnRhdGlvbiBmbGF3cyAtIGF0dHJpYnV0ZSBpZ25vcmVkLgoAVGhlIGxheWVyc2VsZWN0IGF0dHJpYnV0ZSAiJXMiIGRvZXMgbm90IG1hdGNoIGFueSBsYXllciBzcGVjaWZlZCBieSB0aGUgbGF5ZXJzIGF0dHJpYnV0ZSAtIGlnbm9yZWQuCgAlenUgb3V0IG9mICV6dSBsYWJlbHMgcG9zaXRpb25lZC4KACV6dSBvdXQgb2YgJXp1IGV4dGVyaW9yIGxhYmVscyBwb3NpdGlvbmVkLgoAICBnZW5lcmF0ZSBlZGdlIGNvbnN0cmFpbnRzLi4uCgBHZW5lcmF0aW5nIE5vbi1vdmVybGFwIENvbnN0cmFpbnRzLi4uCgBHZW5lcmF0aW5nIEVkZ2UgQ29uc3RyYWludHMuLi4KAEdlbmVyYXRpbmcgRGlHLUNvTGEgRWRnZSBDb25zdHJhaW50cy4uLgoAUmVtb3Zpbmcgb3ZlcmxhcHMgYXMgcG9zdHByb2Nlc3MuLi4KAC4uLiAlLipzJS4qcyAuLi4KAEVkZ2UgbGVuZ3RoICVmIGxhcmdlciB0aGFuIG1heGltdW0gJWQgYWxsb3dlZC4KQ2hlY2sgZm9yIG92ZXJ3aWRlIG5vZGUocykuCgBvcmRlcmluZyAnJXMnIG5vdCByZWNvZ25pemVkIGZvciBub2RlICclcycuCgBwb2x5Z29uIHsgJXp1LAoAc3BoZXJlX3N3ZWVwIHsKICAgICVzCiAgICAlenUsCgAiZGlyZWN0ZWQiOiAlcywKACJ3aWR0aCI6ICUuMDNmLAoAInNpemUiOiAlLjAzZiwKACJ0YWlsIjogJWQsCgAiX2d2aWQiOiAlZCwKACJwdCI6IFslLjAzZiwlLjAzZl0sCgAicDEiOiBbJS4wM2YsJS4wM2ZdLAoAInAwIjogWyUuMDNmLCUuMDNmXSwKACJwMSI6IFslLjAzZiwl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WCBZIGxpbmV0bwogIFggeSBsaW5ldG8KICBjbG9zZXBhdGggc3Ryb2tlCn0gZGVmCi9ub2RlIHsKIC91IGV4Y2ggZGVmCiAvciBleGNoIGRlZgogL2QgZXhjaCBkZWYKIC9sIGV4Y2ggZGVmCiBuZXdwYXRoIGwgZCBtb3ZldG8KIHIgZCBsaW5ldG8gciB1IGxpbmV0byBsIHUgbGluZXRvCiBjbG9zZXBhdGggZmlsbAp9IGRlZgoKAAkAQYGFBQu2AwEBAQEBAQEBAgMBAQIBAQEBAQEBAQEBAQEBAQEBAQECAQQFAQEBAQEBBgEBBwgJCgoKCgoKCgoKCgEBCwEMAQ0ODxAREhMUFRYTExMTFxgZExobHB0TExMTEwEeAQETAR8gISIjEyQlJhMTExMnKCkTKissLRMTExMTAQEBAQETExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEy4TExMvExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMwExMTExMTExMTExMTExMTEwAAAAAAAAQABAAcABwAIQAhACQAIgAKAAIAFgAJACIAIgAiABUAHQABABQAFAAUABQAFAAUABQACAAEAAUAHAAbABcAHAAhACAAHwAeAAkAEwAAABUAEgAVAAMABwAVABUAFAAUABQAFAAUABQAFAAUAAgABAAFAAUABgAcABoAGAAZACEABwAVABQAFAAUABQAFAAUAAsAFAANABQADAAUABQAFAAOABQAFAAUABAAFAAPABQAEQBBwogFC5UEAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwAEAAcAAwAEAAUABQAGAAYACAAHAAcAEQAWABIAEQASAAgACAAPAA8AFwAPABgADwAZABoAGgAeABYANAAeAAUAMgAGACIAIgAzABcAGAA1ABkAGgAaACoANgAqADQANwAyAEUAOwA8ADMAOwA8AEYANQBHAEgATAA2ACIASQBKADcARQBOAFAAYgBRAFIAVABGAEcAVQBIAEwAVgBJAEoAWABaAE4ARABQAFEAUgBUADgALwAsAFUAKQBWABsAEABYAFoAXQBdAF0AXQBdAF0AXQBeAF4AXgBeAF4AXgBeAF8AXwBfAF8AXwBfAF8AYAAJAGAAYABgAGAAYABhAGEAYwACAGMAYwBjAGMAYwBkAAAAZAAAAGQAZABkAGUAAABlAGUAZQBlAGUAZgAAAAAAZgBmAGYAZgBnAAAAZwBnAGcAZwBoAAAAaABoAGgAaABoAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQeSMBQvNAa4ALgAvADMANQAwADcAqgDbANsA2wDbAAAAPQCHADcANwDbANsAAAAoADUALgAyAC8AYgAAAAAARwAAANsA2wBRAAAA2wDbANsAAADbAIQAVQDbAIIA2wAAAIEA2wAAAD4AQgBBAEgARABSAFsAAAAAAF4AXwDbAAAA2wDbANsAAAAAAHsASQBXAFIAWgBaAF0AAABfAAAAXwAAAGUAXQBfAAAAXQBuAGoAAABpAAAAbgAAANsAkwCaAKEAqACrAHAAsQC4AL8AxgDNANMAQcKOBQvPAVwAAQBdAF0AXgBeAF8AXwBcAFwAXABcAFwAYABcAFwAXABhAFwAXABiAGIAYgBiAGIAYgBiAGMAZABlAGYAXABcAFwAZwBcAFwAXABgAFwAXABhAFwAYQBcAGgAYQBcAGIAYgBiAGIAYgBiAGIAYgBjAGQAZQBlAFwAZgBcAFwAXABnAGgAYQBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAAABcAFwAXABcAFwAXABcAFwAXABcAFwAXABBoZAFCzABAQIDAQQBBQEGBwcBBgYGBgYGBgYGBgYGBgYGBgMGBgYGBgYGBgYGBgYGBgYGBgYAQeKQBQujBAoACwAMAA0ADgAKAA8AEAARABIAEwAKABQAFQAVABUAFgAXABUAGAAVABUAGQAVABUAFQAaABUAFQAKABUAFQAVABYAFwAYABUAFQAZABUAFQAVABoAFQAVABUAFQAbAAwADAAkAB4AHgAgACEAIAAhACQAJQAmAC0AMgAvAC4AKgAlACYAKAApADMAKgA0ACsANQA2ADcAPAAyAEcAPQAiAEUAIgA/AEAARgAzADQASAA1ADYANwAvAEkAKgBHAEoARQBMAFwAPABGAFwAPQBNAEgATgBPAFIASQBBAFAAUQBKAEwAUwBUADEAVQBWAFcATQBOAFgATwBSAFkAUABRAFoAWwBTAEQAVABVAFYAVwBLAEQALABYACwAWQA4ACwAWgBbAB0AHQAdAB0AHQAdAB0AHwAfAB8AHwAfAB8AHwAjACMAIwAjACMAIwAjACcAXAAnACcAJwAnACcAMAAwADkAHAA5ADkAOQA5ADkAOgBcADoAXAA6ADoAOgA7AFwAOwA7ADsAOwA7AD4AXABcAD4APgA+AD4AQgBcAEIAQgBCAEIAQwBcAEMAQwBDAEMAQwAJAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAAwAAAANAAAADgAAAA4AQZCVBQvRBRHu7hMIA+7+7u7uAe7u7gHu7gn+7hIVF+4SAe7u7u4KDe7u7u7u7u7u7gHu7hYIAQEZDhju7hsYGu7uHe7u7u4BFfvu7u7uEB7u7u4AAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYRAgICAgICAgICAgICAhIQAhMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAhQCFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICDgIPAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0AAAALAwQFDwcDDA0GDA0ODA0aFQABAAMHDgYPCAwNEhMJKhAREBYvMA0yERMuMhQSFBJBEywTQkAqQhn//ywAAAAAIgwNDiMPCRARChARzBARLUX8AQb2Dwf2JAIQES8wKDZJSiYxOzw9Nio5Oj4/L9hARDA3JUdDNUgrAAA4AAAA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AHGAi0WLdP8Aq0wAAH8P//D///8AQbkAAH8P//D///8A0aoAAH8P7uDu7v8A6JwAAH8OzcHNzf8AKZAAAH8Oi4OLi/8AT1AAACoa9fX13P8AlkcAABc6///kxP8AirgAABc6///kxP8AGqoAABc67u7Vt/8AMZwAABY6zc23nv8Aco8AABc6i4t9a/8A+DsAAAAAAAAAAP8AB1QAABkx///rzf8AvkkAAKr//wAA//8A77gAAKr//wAA//8Af6oAAKr/7gAA7v8AlpwAAKr/zQAAzf8A148AAKr/iwAAi/8ALREAAMDO4oor4v8AczEAAAC+paUqKv8Ai7cAAAC///9AQP8AN6kAAAC/7u47O/8AVpsAAAC/zc0zM/8Al44AAAC+i4sjI/8AgVMAABdj3t64h/8Ap7kAABdk///Tm/8AJqsAABdj7u7Fkf8APZ0AABdjzc2qff8AhZAAABdji4tzVf8AxEgAAIBnoF+eoP8AuLgAAINn/5j1//8ASKoAAINm7o7l7v8AX5wAAINnzXrFzf8AoI8AAINmi1OGi/8At0sAAD///3//AP8AG7kAAD///3//AP8Aq6oAAD//7nbuAP8AwpwAAD//zWbNAP8AA5AAAD//i0WLAP8AlEsAABHa0tJpHv8AELkAABHb//9/JP8AoKoAABHb7u52If8At5wAABHazc1mHf8A+I8AABHci4tFE/8A8jkAAAuv//9/UP8AGrgAAAep//9yVv8At6kAAAap7u5qUP8A1psAAAapzc1bRf8AF48AAAaoi4s+L/8A00gAAJqT7WSV7f8AozsAACEi///43P8AP7gAACEi///43P8A3KkAACIj7u7ozf8A+5sAACIizc3Isf8API8AACMii4uIeP8AwTEAAPbn3NwUPP8ACjYAAH///wD///8A/7cAAH///wD///8AnKkAAH//7gDu7v8Au5sAAH//zQDNzf8A/I4AAH//iwCLi/8AUkkAAKr/iwAAi/8A/DUAAH//iwCLi/8ATFMAAB7vuLiGC/8AmLkAAB7w//+5D/8AF6sAAB7w7u6tDv8ALp0AAB7wzc2VDP8AdpAAAB7wi4tlCP8AWAgAAAAAqampqf8AGjUAAFX/ZABkAP8AjQcAAAAAqampqf8A+TwAACduvb23a/8AF2IAANT/i4sAi/8AUTUAADqOa1VrL/8A0bcA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AJU4i2x7i/8AwgcAAJQ4kHCAkP8AQwoAAAAF///6+v8ASLcAAAAF///6+v8A8KgAAAAF7u7p6f8AIZsAAAAEzc3Jyf8AZ44AAAADi4uJif8AQDUAAGr//wD/f/8AxLcAAGr//wD/f/8AYakAAGr/7gDudv8AgJsAAGr/zQDNZv8AwY4AAGr/iwCLRf8ANEkAAJKbtEaCtP8A1LgAAJKc/2O4//8AZKoAAJKc7lys7v8Ae5wAAJKczU+Uzf8AvI8AAJObizZki/8AIzYAABhU0tK0jP8ABbgAABSw//+lT/8AoqkAABSw7u6aSf8AwZsAABSwzc2FP/8AAo8AABSwi4taK/8AfToAAH//gACAgP8AwE4AANQd2Ni/2P8AVLkAANQe///h//8A5KoAANQe7u7S7v8A+5wAANQdzc21zf8AQ5AAANQdi4t7i/8AUjAAAAa4//9jR/8Af7cAAAa4//9jR/8AK6kAAAa47u5cQv8ASpsAAAa4zc1POf8Ai44AAAa5i4s2Jv8A1g8AACoA/////gAAlkwAAHu24EDg0P8ANrkAAIH//wD1//8AxqoAAIH/7gDl7v8A3ZwAAIH/zQDFzf8AHpAAAIH/iwCGi/8APREAANRz7u6C7v8ADFcAAOPX0NAgkP8A1rkAAOvB//8+lv8AVasAAOvA7u46jP8AbJ0AAOvAzc0yeP8AtJAAAOvAi4siUv8AlwgAAAAAgICAgP8AfjUAAFX/gACAAP8AzAcAAAAAgICAgP8ACzIAAAD/gIAAAP8A604AANT/gIAAgP8A+hMAABtE9fXes/8AbrcAABtF///nuv8AGqkAABtE7u7Yrv8APpsAABtEzc26lv8AhI4AABtDi4t+Zv8AJUsAAAAA//////8AFFAAAAAA9fX19f8AnwgAAAAAvr6+vv8AzjUAAFX//wD/AP8A1AcAAAAAvr6+vv8AFTIAAO+5sLAwYP8AIE8AAMTd8KAg8P8AqgoAACr/////AP8AU7cAACr/////AP8A+6gAACr/7u7uAP8ALJsAACr/zc3NAP8Aco4AACr/i4uLAP8AujQAADjAzZrNMv8AQcCHBwsDxHgCAEHOhwcLhQigQP////////////////////////////////////////////////////////////////////////////////////8AAqoCRAMABAAEqgY5BnEBqgKqAgAEgwQAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEOQI5AoMEgwSDBI0DXgfHBVYFVgXHBeMEcwTHBccFqgIdA8cF4wQdB8cFxwVzBMcFVgVzBOMExwXHBY0HxwXHBeMEqgI5AqoCwQMABKoCjQMABI0DAASNA6oCAAQABDkCOQIABDkCOQYABAAEAAQABKoCHQM5AgAEAATHBQAEAASNA9cDmgHXA1QE////////////////////////////////////////////////////////////////////////////////////////AAKqAnEEAAQABAAIqgY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABHEHxwVWBccFxwVWBeMEOQY5Bh0DAAQ5BlYFjQfHBTkG4wQ5BscFcwRWBccFxwUACMcFxwVWBaoCOQKqAqYEAASqAgAEcwSNA3MEjQOqAgAEcwQ5AqoCcwQ5AqoGcwQABHMEcwSNAx0DqgJzBAAExwUABAAEjQMnA8MBJwMpBP///////////////////////////////////////////////////////////////////////////////////////wACqgJcAwAEAASqBjkGtgGqAqoCAARmBQACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCZgVmBWYFAARcB+ME4wRWBccF4wTjBMcFxwWqAo0DVgVzBKoGVgXHBeMExwXjBAAEcwTHBeMEqgbjBHMEcwQdAzkCHQNgAwAEqgIABAAEjQMABI0DOQIABAAEOQI5Ao0DOQLHBQAEAAQABAAEHQMdAzkCAASNA1YFjQONAx0DMwMzAjMDVAT///////////////////////////////////////////////////////////////////////////////////////8AAh0DcQQABAAEqgY5BjkCqgKqAgAEjwQAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAo8EjwSPBAAEqAZWBVYFVgXHBVYFVgXHBTkGHQMABFYF4wQdB8cFxwXjBMcFVgVzBOMExwVWBR0HVgXjBOMEqgI5AqoCjwQABKoCAAQABI0DAASNA6oCAARzBDkCOQIABDkCOQZzBAAEAAQABB0DHQM5AnMEjQNWBQAEjQMdA8kCwwHJAo8E///seAIAQd6PBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE////////////////////////////////////////////////////////////////////////////////////////OQI5AtcCcwRzBB0HVgWHAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBDkCOQKsBKwErARzBB8IVgVWBccFxwVWBeMEOQbHBTkCAARWBXMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBDkCOQI5AsEDcwSqAnMEcwQABHMEcwQ5AnMEcwTHAccBAATHAaoGcwRzBHMEcwSqAgAEOQJzBAAExwUABAAEAASsAhQCrAKsBP///////////////////////////////////////////////////////////////////////////////////////zkCqgLLA3MEcwQdB8cF5wGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwSqAqoCrASsBKwE4wTNB8cFxwXHBccFVgXjBDkGxwU5AnMExwXjBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wSqAjkCqgKsBHMEqgJzBOMEcwTjBHMEqgLjBOMEOQI5AnMEOQIdB+ME4wTjBOMEHQNzBKoC4wRzBDkGcwRzBAAEHQM9Ah0DrAT//yB5AgBB7pcHC4UIoED/////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP//SHkCAEH9nwcLhghAj0AAAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CVwPkAv8CeQL/Ap0CZwJaAtgCsQJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmQIyAmQD7AIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//wAA////////////////////////////////AgH///////////////////////////////////////////////8CAeQAiAFYAlgCogO1At0APQE9AcIBWALkAKgB5AAbAVgCWAJYAlgCWAJYAlgCWAJYAlgC5ADkAFgCWAJYArsBsgPZAqQCoQLmAkcCJALWAvkCAQFEAXECHwJYA+MC/wJ5Av8CnQJnAloC2AKwAk0EigJUAk0COwEbATsBWAL0AfQBEgJHAs8BRwIUAk0BSgI4AugA7AD0ASgBWAM4AiwCRwJHAmYB4QFeATECAwJJAw0CAgLPAWABCQFgAVgC//8AAP///////////////////////////////w8B////////////////////////////////////////////////DwH4AMABWAJYArED1gLzAGYBZgHFAVgC+ACyAfgAOQFYAlgCWAJYAlgCWAJYAlgCWAJYAvgA+ABYAlgCWALLAbYD6AKwAqgC+gJVAjIC4AIFAxoBYgGYAjICZQPrAhEDjAIRA64CdwJtAuICyQJZBKACagJdAmIBOQFiAVgC9AH0ASMCWALYAVgCHgJsAVwCSQL/AAMBGAI/AW0DSQJAAlgCWAKIAegBgAFDAg8CVQMiAg4C2gGHASABhwFYAv//UHkCAEGOqAcLhQigQP////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEtAaRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv///////////////////////////////////////////////////////////////////////////////////////4sCNQOuA7QGFwWaBz0GMwIfAx8DAAS0BosC4wKLArICFwUXBRcFFwUXBRcFFwUXBRcFFwWyArICtAa0BrQGPwQACHkFfQWWBSkGDgWaBDMGBAZcAlwCPwV1BOcG/AVMBtMETAaPBRQF4wTbBXkF6Qd7BeMEewUfA7ICHwO0BgAEAATnBBQFZgQUBewE0QIUBRIFOQI5AqIEOQLLBxIF5QQUBRQFSgMrBCMDEgW8BIsGvAS8BDMEFwWyAhcFtAb////////////////////////////////////////////////////////////////////////////////////////JAqYDKwSRBZEFBAj6BnMCqAOoAy8EtAYKA1IDCgPsApEFkQWRBZEFkQWRBZEFkQWRBZEFMwMzA7QGtAa0BqQEAAgxBhkG3wWkBncFdwWRBrIG+gL6AjMGGQX2B7IGzQbdBc0GKQbDBXUFfwYxBtMIKwbLBc0FqAPsAqgDtAYABAAEZgW6Bb4EugVtBXsDugWyBb4CvgJSBb4CVgiyBX8FugW6BfIDwwTTA7IFNwVkBykFNwWoBLIF7AKyBbQG//9YeQIAQZ6wBwuFCKBAZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT//2YE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP///////////////////////////////////////////////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT//2R5AgBBrrgHC4UIoED/////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgQyBM0EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioGuASHBMkE6ARJBDMEaQU8BToC0AObBA0ErQUbBWQFdgRoBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQT2A3UEXQT1AgQEXwRIAu8CCQRcAqQGXwRLBHUEdQQcAz0DLANfBOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8ALvArAEsAR5BaYF1gHwAvACdQOwBPAC8ALwAh8DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAEgQMqBhEFwwTlBCQFjQSrBF8FeAU6AkME8ARsBPYFVwWgBbIErAXjBBcE5QRsBfkEEgfOBOgEewQ3A9gCNwOwBLAEsARDBKcEGASlBJkE9QIEBL4EYwLvAmIEXALgBrkEhwSpBKwEawNyAywDugQ4BEUGawRFBDoEeAOwBHgDsAT///////////////////////////////////////////////////////////////////////////////////////9pAvACmQIyBNkDzQSmBUcB8ALwAvACMgTwAvAC8AIyBDIEMgQyBDIEMgQyBDIEMgQyBDIE8ALwAjIEMgQyBPACKgbjBIcEyQToBEkEMwRpBTwFOgLQA5sEDQQXBhsFZAVZBGQFqATZA6UEMAWzBNEGdASQBGcE8ALYAvACMgQyBDIENAR1BK4DdQRMBDYDBAR1BHQC7wIJBJACpAZfBEsEdQR1BFUDPQNcA3QE6wP0BQIE8gPMA/ACMgTwAjIE////////////////////////////////////////////////////////////////////////////////////////aQLwAiADsASwBNwFpgVpAvAC8AJ1A7AE8ALwAvACLQOwBLAEsASwBLAEsASwBLAEsASwBPAC8AKwBLAEsAQtAyoG6QS4BOcEDwW/BK8EaQVtBToC/QMzBToESgZIBZ4FqwQoBv0EAwR7BUsFdwVpB0EFeAXkBOID0gPiA7AEsASwBL4EvwTxA78EagRIA0gEfwSdAhoDUQSPAqQGfwSPBMoEygSTA6wDgQN1BGsEMAabBIMEQwTiA7AE4gOwBP//cHkCAEG+wAcLhQigQP/////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh4BXwFlgUqBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV4BekHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC/AQQBTICwQK8BDICyAcQBdsE/AT8BGoDKwQnAxAFvASMBrwEvAQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV+BZgFmAX6A78EpQOzBTMF1gdaBTUFxgSwBVkEsAXwBv///////////////////////////////////////////////////////////////////////////////////////9ACJgOsA4wGFgWcCNAFJgKiA6IDFgWMBukCogPpAqIDFgUWBRYFFgUWBRYFFgUWBRYFFgWiA6IDjAaMBowGXQQACHYFfAWWBSAGDwWZBDQGAwZeA6MDiwV0BL4G/AVMBtMETAaQBXgF7gTbBXYF7Ad7BewEewWiA6IDogOMBhYFFgXOBPwEKwT8BMQE0AL5BBAFMgLBArIEMgLJBxAF2wT8BPwEagMrBCcDEAW6BIwGvAS6BDQEFAWiAxQFjAb///////////////////////////////////////////////////////////////////////////////////////+8AjgDswTwBrAFLQrmBqgCWQRZBLAF8AbkAtcD5AKEBbAFsAWwBbAFsAWwBbAFsAWwBbAFOAM4A/AG8AbwBu8Etgc2BhgGygWkBncFNAV9BrMGXgRxBCsGGQWVB8YGzQbdBc0GQgavBXQFfwYcBgcJHAblBYkFWQSEBVkE8AawBbAFWAWYBbUEmAVQBWEDmAWzBbwCOQNeBbwCdwizBXwFmAWYBfoDvwSlA7MFMQXWB1oFNQXGBLAFWQSwBfAG//94eQIAQc7IBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////xQCIwI1AysFkwSWBtcFxQFeAl4CagSTBPYBkwIhAvACkwSTBJMEkwSTBJMEkwSTBJMEkwQhAiECkwSTBJMEbwMxBxAFLwUMBdUFcwQhBNMF5wU7AiMC6QQnBDkHCAY7BtEEOwbyBGQEbQTTBcMEaAeeBHsEkQSiAvACogJWBJYDngRzBOcEzwPnBH0EtgJiBOkEBgIGAjMEBgJxB+kE1QTnBOcERAPRA9MC6QQCBDkGMQQIBL4DCANoBAgDkwT///////////////////////////////////////////////////////////////////////////////////////8UAkoCxwMrBZEENQcABiECtgK2AlwEkQRSApMCSAJOA5EEkQSRBJEEkQSRBJEEkQSRBJEESAJSApEEkQSRBNEDLQeFBWAFGQXsBXsEZATLBR8GpgKmAlAFhQSLB4EGXgYGBV4GSAVoBKIEDAYzBbwHVgX+BKIEpgJOA6YCQgRKA9sE1QQQBR0EEAW6BBkDhQRCBXECcQL2BHEC2wdCBfQEEAUQBaID+gN5A0IFjQTZBqAEjQTnAycDaAQnA5EE////////////////////////////////////////////////////////////////////////////////////////FAISAhcDKwVoBFgGXAW8AUgCSAJqBGgE7AF/AgYCzQJoBGgEaARoBGgEaARoBGgEaARoBAYCBgJoBGgEaARqA8cGcQTJBK4EVAUXBMcDagVtBS8CIwJ1BMsDsgaeBcMFhwTDBY0EBAT8A2gFYgTRBicEBgQ/BEoCzQJKAiMEJwNvBIUEngSaA54E8gOBAgIEngQIAggC5wMIAvoGngR9BJ4EngQrA20DmAKeBLIDvAXTA7IDjQPLAmgEywJoBP///////////////////////////////////////////////////////////////////////////////////////xQCSgKgAysFaATZBqoFCgK2ArYCXARoBDkCkwJIAl4DaARoBGgEaARoBGgEaARoBGgEaARIAkgCaARoBGgErAPZBgYF9gTlBGoFVgQ/BIUFmgWTAqYC5wQlBAoHCgbXBaQE1wXfBD0EPwSHBbgEJwfZBIMESgSmAl4DpgI5BDMDbwTBBMME3QPBBHUE/AJUBNUEYAJgAosEYAI9B9UErgTDBMEEXgPJA0gD1QQZBE4GPwQnBKQD1wJoBNcCaAT//4B5AgBB3tAHC4UIoED/////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBAUExQSHBIACgAIlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBvQF4QT0BZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABAgEewSiA5gE3gOaAhMEqARYAlYCSQRKAgwHugRQBJIEegRHA3UDwwKaBPkD5gUKBPADjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwVvBGkFLwXwAvACoAWgBaAFYwS8BxEGDwa5BawGxQVfBXUGTgeRA8MEiQZ8BTAItwaPBpwFjwZhBjEFeQWrBhkGAwl4BtsFhAWTA8YDkwOgBaAFAATEBCoFQAROBZMEJQOdBHAF1ALFAg4FwQIgCIUFFgVDBTAFKQQaBC4DagWJBOgGtAR/BDQEAAQaAwAEoAX////////////////////////////////////////////////////////////////////////////////////////uAaYCSwMlBeEEigavBbkBAAMAA8cDJQUoAv4CKALAA+kEcAN4BGoEhQQ6BIcE+QPFBIcEEgMSAyUFJQUlBdQDbgdeBTsFIwX+BToFywTNBYUGHgMkBI4F1ARrByMG2AXhBNgFnQV9BPMEDQZVBc4HrwXsBNAEAAPAAwADJQUlBQAElQRuBKEDmgTGA6EClQSABGECVAI5BEgCCQe4BEwEoARxBLEDcwPHApoETgSUBgIEegSNA3EDAANxAyUF////////////////////////////////////////////////////////////////////////////////////////CAIDAxQEoAUgBQkHZQYnApMDkwPbA6AFoAIIA6ACxgOcBesDAwX/BDIFywQvBYgEaQUvBfAC8AKgBaAFoAVjBLwHEQYTBrkFrAbFBV8FdQZOB5sDwwSJBnwFRAijBo8GpgWPBmEGOQV5BasGGQYDCWsG2wWEBZMDxgOTA6AFoAUABEgFMQVJBE0FdQQMAzIFZwXtAusCIQXWAgQIhQUWBU0FMwVFBCMEVgN7BeYEeAerBFsFIwQABBoDAASgBf//iHkCAEHu2AcLyAqgQP/////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIXAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoERATsBOgDrQMMBfwEBAKNAigEXQPXBioFTAUiBGIFWAStA+YDIgWKBB4HJwTmA78DdAIXA3QC/AP8A1QC1QM0BGIDNAT7A3ECxAM0BNYB6gGjA9YBZAY0BDgENAQ0BMoCIQOuAjQEnQO4BXcDnwMpA4QCrwOEAvwD//8AAP///////////////////////////////wAA////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCcAMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BDwECwXnA6wDGQUMBSICpgJgBGID/gZFBWkFQgR9BYEEyAP2AzkFuwRAB2gEKATTA5kCcAOZAvwD/ANnAvMDSwRZA0sEBwSIAssDSwT3AQsC1wP3AYIGSwRNBEsESwTYAjEDxgJLBMkD9gWtA8oDLgPAAs0DwAL8A////////////////////////////////////////////////////////////////////////////////////////88BmwI1A/wDDgS4BXUFxAFtAm0C/AP8A/8BcwIFAhoDDgQOBA4EDgQOBA4EDgQOBA4EDgQkAiQC/AP8A/wDtQMnB6EEWgQuBOwE6AOtAwwF/AQEAo0CKARdA9cGKAU8BSIEUAVYBJ4D5gMiBYoEHwcnBOYDvwN0AhMDdAL8A/wDVAIdBB0EVAMdBNIDcQIdBB0E1gHqAaMD1gFUBh0EGwQdBB0EvgIdA64CHQSRA7gFdwOUAykDhAKvA4QC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCggP8Aw4E1QWjBd4BfgJ+AvwD/AMQAnMCIwJ5Aw4EDgQOBA4EDgQOBA4EDgQOBA4ENQI1AvwD/AP8A7UDMAfZBHwEJgQLBecDrAMZBQwFIgKmAmAEYgP+BkAFWQVCBGsFgQS5A/YDOQW7BEEHaAQoBNMDmQJmA5kC/AP8A2cCOQQ5BEsDOQTuA4gCOQQ4BPcBCwLXA/cBbgY4BDgEOQQ5BNECJwPGAjgEwQP2Ba0DwwMuA8ACzQPAAvwD//8MAAAABAAAAAYAAAACAAAAAwAAAAEAAAAJAAAACAAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAAAbUwAAAAAAAAEAAAB8PAAAAQAAAAAAAABuPQAAAQAAAAEAAABATQBB0OMHCwWWBAAAMQBB4OMHCyUuMQAAEAAAAFkfAACAAAAA0joAAEAAAADyUgAA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ACNTAAAPIgAAGi4AAB0iAACePAAAyAMAAEYOAAAiAAAAJBwAANIhAADhXAAAGiIAAP5CAAAqIwAANTAAALsAAAALHAAAkiEAAMI4AAAJIwAADzAAAB0gAACCOgAAHCEAALRDAACuAAAAtxwAAAsjAAC6MAAAwQMAAL03AAAPIAAAJzAAADogAAADMAAAGSAAACEwAAAaIAAA/TEAAGEBAADDDgAAxSIAAAETAACnAAAARAcAAK0AAAC9YgAAwwMAACBFAADCAwAAwTcAADwiAAArGgAAYCYAAH5hAACCIgAA5FIAAIYiAABdNwAAESIAALItAACDIgAAdbcAALkAAAAhqQAAsgAAAEWbAACzAAAA7UwAAIciAABFQwAA3wAAAPMLAADEAwAAMJAAADQiAABBYgAAuAMAAEw3AADRAwAAwC0AAAkgAAC2MQAA/gAAAPRRAADcAgAAAhkAANcAAAABUgAAIiEAAB8cAADRIQAAG0oAAPoAAAAFHAAAkSEAAMRaAAD7AAAARkcAAPkAAABQOAAAqAAAAPw+AADSAwAAWDIAAMUDAAAdOAAA/AAAANstAAAYIQAAmzwAAL4DAAAUSgAA/QAAACw0AAClAAAAGDgAAP8AAAA8YgAAtgMAAIE8AAANIAAAhTwAAAwgAADVQAEACAAAAAMAAACRQQAAL88AAAsAAAAGAAAA6RYAAEVpAAACAAAAAQAAAEAuAACIdAAABAAAAAIAAADFRAAAAAQAAAMAAAAEAAAAuEMAADvPAAAFAAAABQAAABxFAAAEBAAABAAAAAcAAAC/FgAAEjgAAAUAAAAJAAAAFDgAAPpsAAAEAAAACgAAANhEAADA+wEABAAAAAwAAAAmMQAAAAABAAAB0NHS09TV1tfY2QBB5vcHCwnwvwAAAAAAAAEAQfj3BwsNaW52aXMAAGZpbGxlZABBkPgHCxqpGwAA8lIAAD03AACaCwAA13gAAAzGAAA4jgBB0PgHC3n//////////////////////////////////////////wAAAAAAAAAE/v//h/7//wcAAAAAAAAAAP//f////3//////////83/+/f//////f///////////D+D/////Mfz///8AAAAAAAAA//////////////8BAPgDAEHg+QcLQUDX///7/////39/VP3/DwD+3////////////t//////AwD///////+fGf///88/AwAAAAAAAP7///9/Av7///9/AEGq+gcLswH///8HBwAAAAAA/v//B/4HAAAAAP7//////////3z/fy8AYAAAAOD///////8jAAAA/wMAAADgn/n///3FAwAAALADAAMA4If5///9bQMAAABeAAAcAOCv+////e0jAAAAAAEAAADgn/n///3NIwAAALADAAAA4Mc91hjHvwMAAAAAAAAAAODf/f///e8DAAAAAAMAAADg3/3///3vAwAAAEADAAAA4N/9///9/wMAAAAAAwBB8PsHCxn+/////38NAD8AAAAAAAAAliXw/q5sDSAfAEGY/AcLBv/+////AwBBxPwHC3L/////PwD/////fwDt2gcAAAAAUAFQMYKrYiwAAAAAQADJgPUHAAAAAAgBAv////////////////////////8P//////////////8D//8/P/////8/P/+q////P////////99f3B/PD/8f3B8AAAAAQEwAQcD9BwsBBwBB0P0HCyaAAAAA/gMAAP7///////////8fAP7/////////////B+D/////HwBBkP4HCxX//////////////////////////z8AQbD+BwsV//////////////////////////8PAEHV/gcLyQJg/wf+//+H/v//BwAAAAAAAIAA//9/////f/////8AAAAAAAAA//////////////8BAPgDAAMAAAAAAP//////////PwAAAAMAAADA1///+/////9/f1T9/w8A/t////////////7f/////3sA////////nxn////PPwMAAAAAAAD+////fwL+////fwD+//v//7sWAP///wcHAAAAAAD+//8H//8HAP8D////////////fP9/7///Pf8D7v////////P/Px7/z/8AAO6f+f///cXTnzmAsM//AwDkh/n///1t04c5AF7A/x8A7q/7///97fO/OwAAwf8AAO6f+f///c3zjznAsMP/AADsxz3WGMe/w8c9gACA/wAA7t/9///978PfPWAAw/8AAOzf/f///e/D3z1gQMP/AADs3/3///3/w889gADD/wBBsIEICzj+/////3//B/9//wMAAAAAliXw/q5s/ztfP/8DAAAAAAAAAAP/A6DC//7///8D/v/fD7/+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rv+u/wBBgboIC8EGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKAAAAAAAAAAAAgICAgICEAxZAQAfUAgDBxITFFcWFwgLaQwfCgUMDikRKw8tEC8wIDIGNDUbHB0eCwwhIiMkJSYnKAwYGRcEChscGiAqCiEiIyQlJicoDAoOUwosWDFYWFhYWFgMGxwPLlgzISIjJCUmJygbHP9T//8hIiMkJSYnKAz//wX///8JFP//////DBsc/xAVFiEiIyQlJicoGxz/////ISIjJCUmJygM/xITFBEWF////////wwbHP///xIhIiMkJSYnKBsc/////yEiIyQlJicoDP///////xP///////8MGxz/////ISIjJCUmJygbHP////8hIiMkJSYnKBITFBUWFxgZ////////////IyQlJicbEhMUFhciNmgBHzhWISACGxsbXhsbNzlwNtLCTwQ8IkciPyJEIiJYImUiIgUGX2A5BAcICQoLDA0OBGZnXWptBQZvWDtxBwgJCgsMDQ4Ecjxbcz5hRhsSExQWFwQFBj9BYkkHCAkKCwwNDgUGAFwAAAcICQoLDA0OBAAATwAAAFNCAAAAAAAEBQYARFRVBwgJCgsMDQ4FBgAAAAAHCAkKCwwNDgQAKiwuRzEzAAAAAAAABAUGAAAASgcICQoLDA0OBQYAAAAABwgJCgsMDQ4EAAAAAAAATAAAAAAAAAQFBgAAAAAHCAkKCwwNDgUGAAAAAAcICQoLDA0OKSstLzAyNDUAQcvACAsuKSstMDIABC8AJCMAEhQWGhweIBgABQcvLy8ALy8AAAkIKAAAASICBgAAAAAACABB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cyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNlAAAAAAClAlsA8AG1BYwFJQGDBh0DlAT/AMcDMQMLBrwBjwF/A8oEKwDaBq8AQgNOA9wBDgQVAKEGDQGUAgsCOAZkArwC/wJdA+cECwfPAssF7wXbBeECHgZFAoUAggJsA28E8QDzAxgF2QDaA0wGVAJ7AZ0DvQQAAFEAFQK7ALMDbQD/AYUELwX5BDgAZQFGAZ8AtwaoAXMCUwEAQZiHCQsMIQQAAAAAAAAAAC8CAEG4hwkLBjUERwRWBABBzocJCwKgBABB4ocJCyJGBWAFbgVhBgAAzwEAAAAAAAAAAMkG6Qb5Bh4HOQdJB14HAEGQiAkLkQHRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAABkACwAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQAKChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAEGxiQkLIQ4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgBB64kJCwEMAEH3iQkLFRMAAAAAEwAAAAAJDAAAAAAADAAADABBpYoJCwEQAEGxigkLFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABB34oJCwESAEHrigkLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBBoosJCw4aAAAAGhoaAAAAAAAACQBB04sJCwEUAEHfiwkLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABBjYwJCwEWAEGZjAkLJxUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgBB5IwJCwICAgBBjI0JCwj//////////wBB0I0JC/UI/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAlEkCAAQCAAAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAABAAAAAAAAADQSQIAEgIAABMCAAD8/////P///9BJAgAUAgAAFQIA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"),t=new Uint8Array(e.length);for(let A=0;Anew Ip(e))}var ut=class{static getBaseUrlWithoutPath(){let t=window.location.href;return new URL(t).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl}static getWSServerUrl(){let t=this.getApiServerBaseUrl();return!t||t==""?window.location.host:t.startsWith("http://")?t.slice(7):t.startsWith("https://")?t.slice(8):t}};var qn=class e{constructor(t,A){this.http=t;this.zone=A}apiServerDomain=ut.getApiServerBaseUrl();_currentApp=new PA("");currentApp=this._currentApp.asObservable();isLoading=new PA(!1);getApp(){return this.currentApp}setApp(t){this._currentApp.next(t)}getLoadingState(){return this.isLoading}run(t){let i={headers:{"Content-type":"application/json"}},o=this.apiServerDomain+"/run";return this.http.post(o,t,i)}runSse(t){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new EA(i=>{let o=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(t)}).then(n=>{let g=n.body?.getReader(),r=new TextDecoder("utf-8"),s=null,a=()=>{g?.read().then(({done:c,value:h})=>{if(this.isLoading.next(!0),c)return this.isLoading.next(!1),i.complete();r.decode(h,{stream:!0}).split(/\r?\n/).filter(w=>w.startsWith("data:")).forEach(w=>{let R=w.replace(/^data:\s*/,"");o.zone.run(()=>i.next(R))}),a()}).catch(c=>{o.zone.run(()=>i.error(c))})};a()}).catch(n=>{o.zone.run(()=>i.error(n))})})}listApps(){if(this.apiServerDomain!=null){let t=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(t)}return new EA}static \u0275fac=function(A){return new(A||e)(eA(ht),eA(AA))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};function JO(e,t){}var Vn=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var Bp=(()=>{class e extends Pn{_elementRef=C(z);_focusTrapFactory=C(xQ);_config;_interactivityChecker=C(vI);_ngZone=C(AA);_overlayRef=C(ys);_focusMonitor=C(at);_renderer=C(ie);_platform=C(JA);_document=C(uA,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=C(DA);_injector=C(RA);_isDestroyed=!1;constructor(){super(),this._config=C(Vn,{optional:!0})||new Vn,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let o=()=>{n(),g(),A.removeAttribute("tabindex")},n=this._renderer.listen(A,"blur",o),g=this._renderer.listen(A,"mousedown",o)})),A.focus(i)}_focusByCssSelector(A,i){let o=this._elementRef.nativeElement.querySelector(A);o&&this._forceFocus(o,i)}_trapFocus(){this._isDestroyed||Le(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let o=Qs(),n=this._elementRef.nativeElement;(!o||o===this._document.body||o===n||n.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=Qs();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Qs()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(i&1&&IA(jt,7),i&2){let n;V(n=W())&&(o._portalOutlet=n.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){i&2&&sA("id",o._config.id||null)("role",o._config.role)("aria-modal",o._config.ariaModal)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null)},features:[lA],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){i&1&&L(0,JO,0,0,"ng-template",0)},dependencies:[jt],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return e})(),YI=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new J;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(t,A){this.overlayRef=t,this.config=A,this.disableClose=A.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!Te(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=t.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(t,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",A=""){return this.overlayRef.updateSize({width:t,height:A}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}},HO=new b("DialogScrollStrategy",{providedIn:"root",factory:()=>{let e=C(ot);return()=>e.scrollStrategies.block()}}),TO=new b("DialogData"),OO=new b("DefaultDialogConfig");var cp=(()=>{class e{_overlay=C(ot);_injector=C(RA);_defaultOptions=C(OO,{optional:!0});_parentDialog=C(e,{optional:!0,skipSelf:!0});_overlayContainer=C(WQ);_idGenerator=C(oe);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new J;_afterOpenedAtThisLevel=new J;_ariaHiddenElements=new Map;_scrollStrategy=C(HO);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=io(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(be(void 0)));constructor(){}open(A,i){let o=this._defaultOptions||new Vn;i=v(v({},o),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let n=this._getOverlayConfig(i),g=this._overlay.create(n),r=new YI(g,i),s=this._attachContainer(g,r,i);return r.containerInstance=s,this._attachDialogContent(A,r,s,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(r),r.closed.subscribe(()=>this._removeOpenDialog(r,!0)),this.afterOpened.next(r),r}closeAll(){Cp(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){Cp(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),Cp(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new Zn({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,o){let n=o.injector||o.viewContainerRef?.injector,g=[{provide:Vn,useValue:o},{provide:YI,useValue:i},{provide:ys,useValue:A}],r;o.container?typeof o.container=="function"?r=o.container:(r=o.container.type,g.push(...o.container.providers(o))):r=Bp;let s=new ji(r,o.viewContainerRef,RA.create({parent:n||this._injector,providers:g}));return A.attach(s).instance}_attachDialogContent(A,i,o,n){if(A instanceof ae){let g=this._createInjector(n,i,o,void 0),r={$implicit:n.data,dialogRef:i};n.templateContext&&(r=v(v({},r),typeof n.templateContext=="function"?n.templateContext():n.templateContext)),o.attachTemplatePortal(new zt(A,null,r,g))}else{let g=this._createInjector(n,i,o,this._injector),r=o.attachComponentPortal(new ji(A,n.viewContainerRef,g));i.componentRef=r,i.componentInstance=r.instance}}_createInjector(A,i,o,n){let g=A.injector||A.viewContainerRef?.injector,r=[{provide:TO,useValue:A.data},{provide:YI,useValue:i}];return A.providers&&(typeof A.providers=="function"?r.push(...A.providers(i,A,o)):r.push(...A.providers)),A.direction&&(!g||!g.get(Se,null,{optional:!0}))&&r.push({provide:Se,useValue:{value:A.direction,change:gA()}}),RA.create({parent:g||n,providers:r})}_removeOpenDialog(A,i){let o=this.openDialogs.indexOf(A);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((n,g)=>{n?g.setAttribute("aria-hidden",n):g.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let o=i.length-1;o>-1;o--){let n=i[o];n!==A&&n.nodeName!=="SCRIPT"&&n.nodeName!=="STYLE"&&!n.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(n,n.getAttribute("aria-hidden")),n.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Cp(e,t){let A=e.length;for(;A--;)t(e[A])}var Hk=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[cp],imports:[sn,Mo,YQ,Mo]})}return e})();function PO(e,t){}var oE=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},Qp="mdc-dialog--open",Tk="mdc-dialog--opening",Ok="mdc-dialog--closing",ZO=150,qO=75,VO=(()=>{class e extends Bp{_animationMode=C(jA,{optional:!0});_animationStateChanged=new Z;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?Zk(this._config.enterAnimationDuration)??ZO:0;_exitAnimationDuration=this._animationsEnabled?Zk(this._config.exitAnimationDuration)??qO:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(Pk,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(Tk,Qp)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(Qp),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(Qp),this._animationsEnabled?(this._hostElement.style.setProperty(Pk,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(Ok)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(Tk,Ok)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,o){i&2&&(bt("id",o._config.id),sA("aria-modal",o._config.ariaModal)("role",o._config.role)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null),tA("_mat-animation-noopable",!o._animationsEnabled)("mat-mdc-dialog-container-with-actions",o._actionSectionCount>0))},features:[lA],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){i&1&&(E(0,"div",0)(1,"div",1),L(2,PO,0,0,"ng-template",2),d()())},dependencies:[jt],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return e})(),Pk="--mat-dialog-transition-duration";function Zk(e){return e==null?null:typeof e=="number"?e:e.endsWith("ms")?Rt(e.substring(0,e.length-2)):e.endsWith("s")?Rt(e.substring(0,e.length-1))*1e3:e==="0"?0:null}var iE=function(e){return e[e.OPEN=0]="OPEN",e[e.CLOSING=1]="CLOSING",e[e.CLOSED=2]="CLOSED",e}(iE||{}),nt=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new J;_beforeClosed=new J;_result;_closeFallbackTimeout;_state=iE.OPEN;_closeInteractionType;constructor(t,A,i){this._ref=t,this._containerInstance=i,this.disableClose=A.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(MA(o=>o.state==="opened"),he(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(MA(o=>o.state==="closed"),he(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Me(this.backdropClick(),this.keydownEvents().pipe(MA(o=>o.keyCode===27&&!this.disableClose&&!Te(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),qk(this,o.type==="keydown"?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(MA(A=>A.state==="closing"),he(1)).subscribe(A=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=iE.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let A=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?A.left(t.left):A.right(t.right):A.centerHorizontally(),t&&(t.top||t.bottom)?t.top?A.top(t.top):A.bottom(t.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",A=""){return this._ref.updateSize(t,A),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=iE.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function qk(e,t,A){return e._closeInteractionType=t,e.close(A)}var St=new b("MatMdcDialogData"),WO=new b("mat-mdc-dialog-default-options"),zO=new b("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let e=C(ot);return()=>e.scrollStrategies.block()}});var Ft=(()=>{class e{_overlay=C(ot);_defaultOptions=C(WO,{optional:!0});_scrollStrategy=C(zO);_parentDialog=C(e,{optional:!0,skipSelf:!0});_idGenerator=C(oe);_dialog=C(cp);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new J;_afterOpenedAtThisLevel=new J;dialogConfigClass=oE;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=io(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(be(void 0)));constructor(){this._dialogRefConstructor=nt,this._dialogContainerType=VO,this._dialogDataToken=St}open(A,i){let o;i=v(v({},this._defaultOptions||new oE),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let n=this._dialog.open(A,fA(v({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:Vn,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(g,r,s)=>(o=new this._dialogRefConstructor(g,i,s),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:s},{provide:this._dialogDataToken,useValue:r.data},{provide:this._dialogRefConstructor,useValue:o}])}));return o.componentRef=n.componentRef,o.componentInstance=n.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{let g=this.openDialogs.indexOf(o);g>-1&&(this.openDialogs.splice(g,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Wn=(()=>{class e{dialogRef=C(nt,{optional:!0});_elementRef=C(z);_dialog=C(Ft);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=Wk(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){qk(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){i&1&&S("click",function(g){return o._onButtonClick(g)}),i&2&&sA("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[LA]})}return e})(),Vk=(()=>{class e{_dialogRef=C(nt,{optional:!0});_elementRef=C(z);_dialog=C(Ft);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=Wk(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e})}return e})(),$t=(()=>{class e extends Vk{id=C(oe).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){i&2&&bt("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[lA]})}return e})(),Si=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[K0([gn])]})}return e})(),Fi=(()=>{class e extends Vk{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,o){i&2&&tA("mat-mdc-dialog-actions-align-start",o.align==="start")("mat-mdc-dialog-actions-align-center",o.align==="center")("mat-mdc-dialog-actions-align-end",o.align==="end")},inputs:{align:"align"},features:[lA]})}return e})();function Wk(e,t){let A=e.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?t.find(i=>i.id===A.id):null}var zk=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[Ft],imports:[Hk,sn,Mo,QA,QA]})}return e})();function jO(e,t){if(e&1&&Y(0,"img",5),e&2){let A=f(2);N("src",A.displayContent,ri)}}function XO(e,t){e&1&&(E(0,"div",6),M(1," No image data provided. "),d())}function $O(e,t){if(e&1&&(E(0,"div",3),L(1,jO,1,1,"img",5)(2,XO,2,0,"div",6),d()),e&2){let A=f();u(),_(A.displayContent?1:-1),u(),_(A.displayContent?-1:2)}}function A8(e,t){if(e&1&&Y(0,"div",4),e&2){let A=f();N("innerHTML",A.displayContent,yg)}}var In=class e{constructor(t,A,i){this.dialogRef=t;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let t=this.data.imageData;if(!t){this.displayContent=null,this.isSvgContent=!1;return}if(t.trim().includes("t}))}return nE}function JI(e){return t8()?.createHTML(e)||e}function Xk(e){return Error(`Unable to find icon with the name "${e}"`)}function i8(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function $k(e){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${e}".`)}function Av(e){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${e}".`)}var Cn=class{url;svgText;options;svgElement;constructor(t,A,i){this.url=t,this.svgText=A,this.options=i}},o8=(()=>{class e{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,o,n){this._httpClient=A,this._sanitizer=i,this._errorHandler=n,this._document=o}addSvgIcon(A,i,o){return this.addSvgIconInNamespace("",A,i,o)}addSvgIconLiteral(A,i,o){return this.addSvgIconLiteralInNamespace("",A,i,o)}addSvgIconInNamespace(A,i,o,n){return this._addSvgIconConfig(A,i,new Cn(o,null,n))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,o,n){let g=this._sanitizer.sanitize(st.HTML,o);if(!g)throw Av(o);let r=JI(g);return this._addSvgIconConfig(A,i,new Cn("",r,n))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,o){return this._addSvgIconSetConfig(A,new Cn(i,null,o))}addSvgIconSetLiteralInNamespace(A,i,o){let n=this._sanitizer.sanitize(st.HTML,i);if(!n)throw Av(i);let g=JI(n);return this._addSvgIconSetConfig(A,new Cn("",g,o))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(st.RESOURCE_URL,A);if(!i)throw $k(A);let o=this._cachedIconsByUrl.get(i);return o?gA(gE(o)):this._loadSvgIconFromConfig(new Cn(A,null)).pipe(me(n=>this._cachedIconsByUrl.set(i,n)),CA(n=>gE(n)))}getNamedSvgIcon(A,i=""){let o=ev(i,A),n=this._svgIconConfigs.get(o);if(n)return this._getSvgFromConfig(n);if(n=this._getIconConfigFromResolvers(i,A),n)return this._svgIconConfigs.set(o,n),this._getSvgFromConfig(n);let g=this._iconSetConfigs.get(i);return g?this._getSvgFromIconSetConfigs(A,g):ln(Xk(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?gA(gE(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(CA(i=>gE(i)))}_getSvgFromIconSetConfigs(A,i){let o=this._extractIconWithNameFromAnySet(A,i);if(o)return gA(o);let n=i.filter(g=>!g.svgText).map(g=>this._loadSvgIconSetFromConfig(g).pipe($e(r=>{let a=`Loading icon set URL: ${this._sanitizer.sanitize(st.RESOURCE_URL,g.url)} failed: ${r.message}`;return this._errorHandler.handleError(new Error(a)),gA(null)})));return ia(n).pipe(CA(()=>{let g=this._extractIconWithNameFromAnySet(A,i);if(!g)throw Xk(A);return g}))}_extractIconWithNameFromAnySet(A,i){for(let o=i.length-1;o>=0;o--){let n=i[o];if(n.svgText&&n.svgText.toString().indexOf(A)>-1){let g=this._svgElementFromConfig(n),r=this._extractSvgIconFromSet(g,A,n.options);if(r)return r}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(me(i=>A.svgText=i),CA(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?gA(null):this._fetchIcon(A).pipe(me(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,o){let n=A.querySelector(`[id="${i}"]`);if(!n)return null;let g=n.cloneNode(!0);if(g.removeAttribute("id"),g.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(g,o);if(g.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(g),o);let r=this._svgElementFromString(JI(""));return r.appendChild(g),this._setSvgAttributes(r,o)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(A){let i=this._svgElementFromString(JI("")),o=A.attributes;for(let n=0;nJI(a)),no(()=>this._inProgressUrlFetches.delete(g)),na());return this._inProgressUrlFetches.set(g,s),s}_addSvgIconConfig(A,i,o){return this._svgIconConfigs.set(ev(A,i),o),this}_addSvgIconSetConfig(A,i){let o=this._iconSetConfigs.get(A);return o?o.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let o=0;ot?t.pathname+t.search:""}}var tv=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],a8=tv.map(e=>`[${e}]`).join(", "),I8=/^url\(['"]?#(.*?)['"]?\)$/,jn=(()=>{class e{_elementRef=C(z);_iconRegistry=C(o8);_location=C(r8);_errorHandler=C(Ut);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=FA.EMPTY;constructor(){let A=C(new Ve("aria-hidden"),{optional:!0}),i=C(g8,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let o=A.childNodes[i];(o.nodeType!==1||o.nodeName.toLowerCase()==="svg")&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>A.classList.remove(o)),i.forEach(o=>A.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((o,n)=>{o.forEach(g=>{n.setAttribute(g.name,`url('${A}#${g.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(a8),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let n=0;n{let r=i[n],s=r.getAttribute(g),a=s?s.match(I8):null;if(a){let c=o.get(r);c||(c=[],o.set(r,c)),c.push({name:g,value:a[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,o]=this._splitIconName(A);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(he(1)).subscribe(n=>this._setSvgElement(n),n=>{let g=`Error retrieving icon ${i}:${o}! ${n.message}`;this._errorHandler.handleError(new Error(g))})}}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,o){i&2&&(sA("data-mat-icon-type",o._usingFontIcon()?"font":"svg")("data-mat-icon-name",o._svgName||o.fontIcon)("data-mat-icon-namespace",o._svgNamespace||o.fontSet)("fontIcon",o._usingFontIcon()?o.fontIcon:null),Ke(o.color?"mat-"+o.color:""),tA("mat-icon-inline",o.inline)("mat-icon-no-color",o.color!=="primary"&&o.color!=="accent"&&o.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",j],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:e8,decls:1,vars:0,template:function(i,o){i&1&&(KA(),rA(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return e})(),iv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,QA]})}return e})();var C8=["audioPlayer"],qg=class e{base64data="";audioPlayerRef;audioSrc="";constructor(){}ngOnChanges(t){t.base64data&&this.base64data&&this.setAudioSource(this.base64data)}setAudioSource(t){t.startsWith("data:")?this.audioSrc=t:this.audioSrc=`data:audio/mpeg;base64,${t}`,this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.load()}play(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.play()}pause(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.pause()}stop(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&(this.audioPlayerRef.nativeElement.pause(),this.audioPlayerRef.nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||e)};static \u0275cmp=H({type:e,selectors:[["app-audio-player"]],viewQuery:function(A,i){if(A&1&&IA(C8,5),A&2){let o;V(o=W())&&(i.audioPlayerRef=o.first)}},inputs:{base64data:"base64data"},standalone:!1,features:[LA],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(E(0,"div"),Y(1,"audio",1,0),d()),A&2&&(u(),N("src",i.audioSrc,ri))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:#f0f0f0;border-radius:8px;box-shadow:0 2px 5px #0000001a;margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:#007bff;color:#fff;cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#0056b3}"]})};function B8(e,t){e&1&&Y(0,"hr",2)}function c8(e,t){if(e&1&&(E(0,"mat-option",7),M(1),d()),e&2){let A=t.$implicit;N("value",A),u(),SA(A.versionId)}}function Q8(e,t){if(e&1){let A=oA();E(0,"div")(1,"img",9),S("click",function(){K(A);let o=f().$index,n=f();return x(n.openViewImageDialog(n.selectedArtifacts[o].data))}),d()()}if(e&2){let A,i=f().$index,o=f();u(),N("src",(A=o.selectedArtifacts[i].data)!==null&&A!==void 0?A:"",ri)}}function E8(e,t){if(e&1&&(E(0,"div"),Y(1,"app-audio-player",10),d()),e&2){let A=f().$index,i=f();u(),N("base64data",i.selectedArtifacts[A].data)}}function l8(e,t){if(e&1){let A=oA();E(0,"div",1),L(1,B8,1,0,"hr",2),E(2,"div",3)(3,"button",4),S("click",function(){let o=K(A).$index,n=f();return x(n.openArtifact(n.selectedArtifacts[o].data,n.selectedArtifacts[o].mimeType))}),M(4),d()(),E(5,"div",3)(6,"span"),M(7," Version: "),d(),E(8,"div",5)(9,"mat-select",6),Tt("ngModelChange",function(o){let n=K(A).$index,g=f();return ai(g.selectedArtifacts[n],o)||(g.selectedArtifacts[n]=o),x(o)}),S("selectionChange",function(o){let n=K(A).$index,g=f();return x(g.onArtifactVersionChange(o,n))}),ne(10,c8,2,2,"mat-option",7,le),d()(),E(12,"button",8),S("click",function(){let o=K(A).$index,n=f();return x(n.downloadArtifact(n.selectedArtifacts[o]))}),E(13,"mat-icon"),M(14,"file_download"),d(),M(15," Download "),d()(),E(16,"div"),L(17,Q8,2,1,"div")(18,E8,2,1,"div"),d()()}if(e&2){let A,i=t.$implicit,o=t.$index,n=f();u(),_(o>0?1:-1),u(3),hA(" ",n.getArtifactName(i)," "),u(5),Ht("ngModel",n.selectedArtifacts[o]),u(),ge(n.getSortedArtifactsFromId(i)),u(7),_((A=n.selectedArtifacts[o].mediaType)===n.MediaType.IMAGE?17:A===n.MediaType.AUDIO?18:-1)}}var d8="default_artifact_name",TI=(o=>(o.IMAGE="image",o.AUDIO="audio",o.TEXT="text",o.UNSPECIFIED="unspecified",o))(TI||{});function sE(e){let t=e.toLowerCase();for(let A of Object.values(TI))if(A!=="unspecified"&&t.startsWith(A+"/"))return A;return"unspecified"}function h8(e){return e?e.startsWith("image/"):!1}function u8(e){return e?e.startsWith("audio/"):!1}function Ep(e,t){try{if(!e)return;let A=e;if(e.startsWith("data:")&&e.includes(";base64,")&&(A=A.substring(A.indexOf(";base64,")+8)),!t||!A)return;let i=atob(A),o=new Array(i.length);for(let a=0;at.id))]}getSortedArtifactsFromId(t){return this.artifacts.filter(A=>A.id===t).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(t,A){this.selectedArtifacts[A]=t.value}openViewImageDialog(t){if(!t||!t.startsWith("data:")||t.indexOf(";base64,")===-1)return;let A=this.dialog.open(In,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:t}})}openArtifact(t,A){if(this.isArtifactImage(A)){this.openViewImageDialog(t);return}this.openBase64InNewTab(t,A)}static \u0275fac=function(A){return new(A||e)(O(zn),O(Ft))};static \u0275cmp=H({type:e,selectors:[["app-artifact-tab"]],inputs:{artifacts:"artifacts"},standalone:!1,features:[LA],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(E(0,"div",0),ne(1,l8,19,4,"div",1,le),d()),A&2&&(u(),ge(i.getDistinctArtifactIds()))},dependencies:[Zt,Qi,jn,It,bs,Hn,qg],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:#8ab4f8!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid white;margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:#212123;width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:#007bff!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:#0056b3;text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted #007bff}.link-style-button[_ngcontent-%COMP%]:active{color:#004085}.link-style-button[_ngcontent-%COMP%]:disabled{color:#6c757d;text-decoration:none;cursor:not-allowed}"]})};var D8=["input"],f8=["label"],w8=["*"],y8=new b("mat-checkbox-default-options",{providedIn:"root",factory:gv});function gv(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var mt=function(e){return e[e.Init=0]="Init",e[e.Checked=1]="Checked",e[e.Unchecked=2]="Unchecked",e[e.Indeterminate=3]="Indeterminate",e}(mt||{}),M8={provide:Mi,useExisting:Je(()=>vs),multi:!0},lp=class{source;checked},nv=gv(),vs=(()=>{class e{_elementRef=C(z);_changeDetectorRef=C(DA);_ngZone=C(AA);_animationMode=C(jA,{optional:!0});_options=C(y8,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new lp;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new Z;indeterminateChange=new Z;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=mt.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){C(Be).load(ze);let A=C(new Ve("tabindex"),{optional:!0});this._options=this._options||nv,this.color=this._options.color||nv.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=C(oe).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(mt.Indeterminate):this._transitionCheckState(this.checked?mt.Checked:mt.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(!(i===A||!o)&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);let n=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(n)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?mt.Checked:mt.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case mt.Init:if(i===mt.Checked)return this._animationClasses.uncheckedToChecked;if(i==mt.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case mt.Unchecked:return i===mt.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case mt.Checked:return i===mt.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case mt.Indeterminate:return i===mt.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-checkbox"]],viewQuery:function(i,o){if(i&1&&(IA(D8,5),IA(f8,5)),i&2){let n;V(n=W())&&(o._inputElement=n.first),V(n=W())&&(o._labelElement=n.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,o){i&2&&(bt("id",o.id),sA("tabindex",null)("aria-label",null)("aria-labelledby",null),Ke(o.color?"mat-"+o.color:"mat-accent"),tA("_mat-animation-noopable",o._animationMode==="NoopAnimations")("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked)("mat-mdc-checkbox-disabled-interactive",o.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",j],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",j],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",j],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:Ae(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",j],checked:[2,"checked","checked",j],disabled:[2,"disabled","disabled",j],indeterminate:[2,"indeterminate","indeterminate",j]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[pA([M8,{provide:en,useExisting:e,multi:!0}]),LA],ngContentSelectors:w8,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,o){if(i&1){let n=oA();KA(),E(0,"div",3),S("click",function(r){return K(n),x(o._preventBubblingFromLabel(r))}),E(1,"div",4,0)(3,"div",5),S("click",function(){return K(n),x(o._onTouchTargetClick())}),d(),E(4,"input",6,1),S("blur",function(){return K(n),x(o._onBlur())})("click",function(){return K(n),x(o._onInputClick())})("change",function(r){return K(n),x(o._onInteractionEvent(r))}),d(),Y(6,"div",7),E(7,"div",8),We(),E(8,"svg",9),Y(9,"path",10),d(),wg(),Y(10,"div",11),d(),Y(11,"div",12),d(),E(12,"label",13,2),rA(14),d()()}if(i&2){let n=He(2);N("labelPosition",o.labelPosition),u(4),tA("mdc-checkbox--selected",o.checked),N("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled&&!o.disabledInteractive)("id",o.inputId)("required",o.required)("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex),sA("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("aria-controls",o.ariaControls)("aria-disabled",o.disabled&&o.disabledInteractive?!0:null)("aria-expanded",o.ariaExpanded)("aria-owns",o.ariaOwns)("name",o.name)("value",o.value),u(7),N("matRippleTrigger",n)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),u(),N("for",o.inputId)}},dependencies:[vt,ms],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return e})();var rv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[vs,QA,QA]})}return e})();var k8=[[["caption"]],[["colgroup"],["col"]],"*"],v8=["caption","colgroup, col","*"];function S8(e,t){e&1&&rA(0,2)}function F8(e,t){e&1&&(E(0,"thead",0),tt(1,1),d(),E(2,"tbody",0),tt(3,2)(4,3),d(),E(5,"tfoot",0),tt(6,4),d())}function N8(e,t){e&1&&tt(0,1)(1,2)(2,3)(3,4)}var Xi=new b("CDK_TABLE");var QE=(()=>{class e{template=C(ae);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkCellDef",""]]})}return e})(),EE=(()=>{class e{template=C(ae);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkHeaderCellDef",""]]})}return e})(),Iv=(()=>{class e{template=C(ae);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkFooterCellDef",""]]})}return e})(),Ss=(()=>{class e{_table=C(Xi,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,o,n){if(i&1&&(qA(n,QE,5),qA(n,EE,5),qA(n,Iv,5)),i&2){let g;V(g=W())&&(o.cell=g.first),V(g=W())&&(o.headerCell=g.first),V(g=W())&&(o.footerCell=g.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",j],stickyEnd:[2,"stickyEnd","stickyEnd",j]},features:[pA([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:e}])]})}return e})(),IE=class{constructor(t,A){A.nativeElement.classList.add(...t._columnCssClassName)}},Cv=(()=>{class e extends IE{constructor(){super(C(Ss),C(z))}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[lA]})}return e})();var Bv=(()=>{class e extends IE{constructor(){let A=C(Ss),i=C(z);super(A,i);let o=A._table?._getCellRole();o&&i.nativeElement.setAttribute("role",o)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[lA]})}return e})(),CE=class{tasks=[];endTasks=[]},BE=new b("_COALESCED_STYLE_SCHEDULER"),hp=(()=>{class e{_currentSchedule=null;_ngZone=C(AA);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new CE,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new CE;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();var up=(()=>{class e{template=C(ae);_differs=C(lo);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof OI?A.headerCell.template:this instanceof mp?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,features:[LA]})}return e})(),OI=(()=>{class e extends up{_table=C(Xi,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(C(ae),C(lo))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",j]},features:[lA,LA]})}return e})(),mp=(()=>{class e extends up{_table=C(Xi,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(C(ae),C(lo))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",j]},features:[lA,LA]})}return e})(),lE=(()=>{class e extends up{_table=C(Xi,{optional:!0});when;constructor(){super(C(ae),C(lo))}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[lA]})}return e})(),Vg=(()=>{class e{_viewContainer=C(Ee);cells;context;static mostRecentCellOutlet=null;constructor(){e.mostRecentCellOutlet=this}ngOnDestroy(){e.mostRecentCellOutlet===this&&(e.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","cdkCellOutlet",""]]})}return e})(),pp=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){i&1&&tt(0,0)},dependencies:[Vg],encapsulation:2})}return e})();var Dp=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){i&1&&tt(0,0)},dependencies:[Vg],encapsulation:2})}return e})(),cv=(()=>{class e{templateRef=C(ae);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["ng-template","cdkNoDataRow",""]]})}return e})(),sv=["top","bottom","left","right"],dp=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(t=>this._updateCachedSizes(t)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(t,A,i,o,n=!0,g=!0,r,s){this._isNativeHtmlTable=t,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=o,this._isBrowser=n,this._needsPositionStickyOnElement=g,this._positionListener=r,this._tableInjector=s,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(t,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(t);let i=[];for(let o of t)o.nodeType===o.ELEMENT_NODE&&i.push(o,...Array.from(o.children));this._afterNextRender({write:()=>{for(let o of i)this._removeStickyStyle(o,A)}})}updateStickyColumns(t,A,i,o=!0,n=!0){if(!t.length||!this._isBrowser||!(A.some(q=>q)||i.some(q=>q))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let g=t[0],r=g.children.length,s=this.direction==="rtl",a=s?"right":"left",c=s?"left":"right",h=A.lastIndexOf(!0),p=i.indexOf(!0),D,w,R;n&&this._updateStickyColumnReplayQueue({rows:[...t],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{D=this._getCellWidths(g,o),w=this._getStickyStartColumnPositions(D,A),R=this._getStickyEndColumnPositions(D,i)},write:()=>{for(let q of t)for(let iA=0;iA!!q)&&(this._positionListener.stickyColumnsUpdated({sizes:h===-1?[]:D.slice(0,h+1).map((q,iA)=>A[iA]?q:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:p===-1?[]:D.slice(p).map((q,iA)=>i[iA+p]?q:null).reverse()}))}})}stickRows(t,A,i){if(!this._isBrowser)return;let o=i==="bottom"?t.slice().reverse():t,n=i==="bottom"?A.slice().reverse():A,g=[],r=[],s=[];this._afterNextRender({earlyRead:()=>{for(let a=0,c=0;a{let a=n.lastIndexOf(!0);for(let c=0;c{let i=t.querySelector("tfoot");i&&(A.some(o=>!o)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(t,A){for(let o of A)t.style[o]="",t.classList.remove(this._borderCellCss[o]);sv.some(o=>A.indexOf(o)===-1&&t.style[o])?t.style.zIndex=this._getCalculatedZIndex(t):(t.style.zIndex="",this._needsPositionStickyOnElement&&(t.style.position=""),t.classList.remove(this._stickCellCss))}_addStickyStyle(t,A,i,o){t.classList.add(this._stickCellCss),o&&t.classList.add(this._borderCellCss[A]),t.style[A]=`${i}px`,t.style.zIndex=this._getCalculatedZIndex(t),this._needsPositionStickyOnElement&&(t.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(t){let A={top:100,bottom:10,left:1,right:1},i=0;for(let o of sv)t.style[o]&&(i+=A[o]);return i?`${i}`:""}_getCellWidths(t,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],o=t.children;for(let n=0;n0;n--)A[n]&&(i[n]=o,o+=t[n]);return i}_retrieveElementSize(t){let A=this._elemSizeCache.get(t);if(A)return A;let i=t.getBoundingClientRect(),o={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(t,o),this._resizeObserver.observe(t,{box:"border-box"})),o}_updateStickyColumnReplayQueue(t){this._removeFromStickyColumnReplayQueue(t.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(t)}_removeFromStickyColumnReplayQueue(t){let A=new Set(t);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(o=>!A.has(o));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(t){let A=!1;for(let i of t){let o=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};o.width!==this._elemSizeCache.get(i.target)?.width&&G8(i.target)&&(A=!0),this._elemSizeCache.set(i.target,o)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(t){this._tableInjector?Le(t,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{t.earlyRead?.(),t.write()})}};function G8(e){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(t=>e.classList.contains(t))}var cE=new b("CDK_SPL");var fp=(()=>{class e{viewContainer=C(Ee);elementRef=C(z);constructor(){let A=C(Xi);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","rowOutlet",""]]})}return e})(),wp=(()=>{class e{viewContainer=C(Ee);elementRef=C(z);constructor(){let A=C(Xi);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","headerRowOutlet",""]]})}return e})(),yp=(()=>{class e{viewContainer=C(Ee);elementRef=C(z);constructor(){let A=C(Xi);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","footerRowOutlet",""]]})}return e})(),Mp=(()=>{class e{viewContainer=C(Ee);elementRef=C(z);constructor(){let A=C(Xi);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","noDataRowOutlet",""]]})}return e})();var bp=(()=>{class e{_differs=C(lo);_changeDetectorRef=C(DA);_elementRef=C(z);_dir=C(Se,{optional:!0});_platform=C(JA);_viewRepeater=C(SI);_coalescedStyleScheduler=C(BE);_viewportRuler=C(Ri);_stickyPositioningListener=C(cE,{optional:!0,skipSelf:!0});_document=C(uA);_data;_onDestroy=new J;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new Z;viewChange=new PA({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=C(RA);constructor(){C(new Ve("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(bA(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),ZQ(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(o,n,g)=>this._getEmbeddedViewArgs(o.item,g),o=>o.item.data,o=>{o.operation===Ds.INSERTED&&o.context&&this._renderCellTemplateForItem(o.record.item.rowDef,o.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(o=>{let n=i.get(o.currentIndex);n.context.$implicit=o.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let o=av(this._headerRowOutlet,"thead");o&&(o.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(o=>o.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(o=>o.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let o=av(this._footerRowOutlet,"tfoot");o&&(o.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(o=>o.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(o=>o.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),o=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...o],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((n,g)=>{this._addStickyColumnStyles([n],this._headerRowDefs[g])}),this._rowDefs.forEach(n=>{let g=[];for(let r=0;r{this._addStickyColumnStyles([n],this._footerRowDefs[g])}),Array.from(this._columnDefsByName.values()).forEach(n=>n.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let o=0;o{let r=o&&o.has(g)?o.get(g):[];if(r.length){let s=r.shift();return s.dataIndex=i,s}else return{data:A,rowDef:g,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),aE(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=aE(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=aE(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=aE(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(g,r)=>{let s=!!r.getColumnsDiff();return g||s},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let o=this._headerRowDefs.reduce(A,!1);o&&this._forceRenderHeaderRows();let n=this._footerRowDefs.reduce(A,!1);return n&&this._forceRenderFooterRows(),i||o||n}_switchDataSource(A){this._data=[],ZQ(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;ZQ(this.dataSource)?A=this.dataSource.connect(this):dn(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=gA(this.dataSource)),this._renderChangeSubscription=A.pipe(bA(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let o=Array.from(i?.columns||[]).map(r=>{let s=this._columnDefsByName.get(r);return s}),n=o.map(r=>r.sticky),g=o.map(r=>r.stickyEnd);this._stickyStyler.updateStickyColumns(A,n,g,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let o=0;o!n.when||n.when(i,A));else{let n=this._rowDefs.find(g=>g.when&&g.when(i,A))||this._defaultRowDef;n&&o.push(n)}return o.length,o}_getEmbeddedViewArgs(A,i){let o=A.rowDef,n={$implicit:A.data};return{templateRef:o.template,context:n,index:i}}_renderRow(A,i,o,n={}){let g=A.viewContainer.createEmbeddedView(i.template,n,o);return this._renderCellTemplateForItem(i,n),g}_renderCellTemplateForItem(A,i){for(let o of this._getCellTemplates(A))Vg.mostRecentCellOutlet&&Vg.mostRecentCellOutlet._viewContainer.createEmbeddedView(o,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,o=A.length;i{let o=this._columnDefsByName.get(i);return A.extractCellTemplate(o)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,o)=>i||o.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new dp(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:gA()).pipe(bA(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let o=this._noDataRowOutlet.viewContainer;if(i){let n=o.createEmbeddedView(A.templateRef),g=n.rootNodes[0];n.rootNodes.length===1&&g?.nodeType===this._document.ELEMENT_NODE&&(g.setAttribute("role","row"),g.classList.add(A._contentClassName))}else o.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,o,n){if(i&1&&(qA(n,cv,5),qA(n,Ss,5),qA(n,lE,5),qA(n,OI,5),qA(n,mp,5)),i&2){let g;V(g=W())&&(o._noDataRow=g.first),V(g=W())&&(o._contentColumnDefs=g),V(g=W())&&(o._contentRowDefs=g),V(g=W())&&(o._contentHeaderRowDefs=g),V(g=W())&&(o._contentFooterRowDefs=g)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,o){i&2&&tA("cdk-table-fixed-layout",o.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",j],fixedLayout:[2,"fixedLayout","fixedLayout",j]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[pA([{provide:Xi,useExisting:e},{provide:SI,useClass:fs},{provide:BE,useClass:hp},{provide:cE,useValue:null}])],ngContentSelectors:v8,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){i&1&&(KA(k8),rA(0),rA(1,1),L(2,S8,1,0)(3,F8,7,0)(4,N8,4,0)),i&2&&(u(2),_(o._isServer?2:-1),u(),_(o._isNativeHtmlTable?3:4))},dependencies:[wp,fp,Mp,yp],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return e})();function aE(e,t){return e.concat(Array.from(t))}function av(e,t){let A=t.toUpperCase(),i=e.viewContainer.element.nativeElement;for(;i;){let o=i.nodeType===1?i.nodeName:null;if(o===A)return i;if(o==="TABLE")break;i=i.parentNode}return null}var Qv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[FI]})}return e})();var _8=[[["caption"]],[["colgroup"],["col"]],"*"],L8=["caption","colgroup, col","*"];function K8(e,t){e&1&&rA(0,2)}function x8(e,t){e&1&&(E(0,"thead",0),tt(1,1),d(),E(2,"tbody",2),tt(3,3)(4,4),d(),E(5,"tfoot",0),tt(6,5),d())}function U8(e,t){e&1&&tt(0,1)(1,3)(2,4)(3,5)}var Ev=(()=>{class e extends bp{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mdc-table-fixed-layout",o.fixedLayout)},exportAs:["matTable"],features:[pA([{provide:bp,useExisting:e},{provide:Xi,useExisting:e},{provide:BE,useClass:hp},{provide:SI,useClass:fs},{provide:cE,useValue:null}]),lA],ngContentSelectors:L8,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){i&1&&(KA(_8),rA(0),rA(1,1),L(2,K8,1,0)(3,x8,7,0)(4,U8,4,0)),i&2&&(u(2),_(o._isServer?2:-1),u(),_(o._isNativeHtmlTable?3:4))},dependencies:[wp,fp,Mp,yp],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return e})(),lv=(()=>{class e extends QE{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matCellDef",""]],features:[pA([{provide:QE,useExisting:e}]),lA]})}return e})(),dv=(()=>{class e extends EE{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matHeaderCellDef",""]],features:[pA([{provide:EE,useExisting:e}]),lA]})}return e})();var hv=(()=>{class e extends Ss{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[pA([{provide:Ss,useExisting:e},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:e}]),lA]})}return e})(),uv=(()=>{class e extends Cv{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[lA]})}return e})();var mv=(()=>{class e extends Bv{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[lA]})}return e})();var pv=(()=>{class e extends OI{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",j]},features:[pA([{provide:OI,useExisting:e}]),lA]})}return e})();var Dv=(()=>{class e extends lE{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[pA([{provide:lE,useExisting:e}]),lA]})}return e})(),fv=(()=>{class e extends pp{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[pA([{provide:pp,useExisting:e}]),lA],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){i&1&&tt(0,0)},dependencies:[Vg],encapsulation:2})}return e})();var wv=(()=>{class e extends Dp{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[pA([{provide:Dp,useExisting:e}]),lA],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){i&1&&tt(0,0)},dependencies:[Vg],encapsulation:2})}return e})();var yv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,Qv,QA]})}return e})(),Y8=9007199254740991,PI=class extends PQ{_data;_renderData=new PA([]);_filter=new PA("");_internalPageChanges=new J;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(t){t=Array.isArray(t)?t:[],this._data.next(t),this._renderChangesSubscription||this._filterData(t)}get filter(){return this._filter.value}set filter(t){this._filter.next(t),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(t){this._sort=t,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(t){this._paginator=t,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(t,A)=>{let i=t[A];if(wm(i)){let o=Number(i);return o{let i=A.active,o=A.direction;return!i||o==""?t:t.sort((n,g)=>{let r=this.sortingDataAccessor(n,i),s=this.sortingDataAccessor(g,i),a=typeof r,c=typeof s;a!==c&&(a==="number"&&(r+=""),c==="number"&&(s+=""));let h=0;return r!=null&&s!=null?r>s?h=1:r{let i=A.trim().toLowerCase();return Object.values(t).some(o=>`${o}`.toLowerCase().includes(i))};constructor(t=[]){super(),this._data=new PA(t),this._updateChangeSubscription()}_updateChangeSubscription(){let t=this._sort?Me(this._sort.sortChange,this._sort.initialized):gA(null),A=this._paginator?Me(this._paginator.page,this._internalPageChanges,this._paginator.initialized):gA(null),i=this._data,o=yt([i,this._filter]).pipe(CA(([r])=>this._filterData(r))),n=yt([o,t]).pipe(CA(([r])=>this._orderData(r))),g=yt([n,A]).pipe(CA(([r])=>this._pageData(r)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=g.subscribe(r=>this._renderData.next(r))}_filterData(t){return this.filteredData=this.filter==null||this.filter===""?t:t.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(t){return this.sort?this.sortData(t.slice(),this.sort):t}_pageData(t){if(!this.paginator)return t;let A=this.paginator.pageIndex*this.paginator.pageSize;return t.slice(A,A+this.paginator.pageSize)}_updatePaginator(t){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=t,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,o=Math.min(A.pageIndex,i);o!==A.pageIndex&&(A.pageIndex=o,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var H8="import_session",dE=class e{route=C(Vt);constructor(){}isViewEvalCaseEnabled(){return!0}isSetEvalConfigEnabled(){return!0}isImportSessionEnabled(){return this.route.snapshot.queryParams[H8]==="true"}static \u0275fac=function(A){return new(A||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var Qt=[];for(let e=0;e<256;++e)Qt.push((e+256).toString(16).slice(1));function Mv(e,t=0){return(Qt[e[t+0]]+Qt[e[t+1]]+Qt[e[t+2]]+Qt[e[t+3]]+"-"+Qt[e[t+4]]+Qt[e[t+5]]+"-"+Qt[e[t+6]]+Qt[e[t+7]]+"-"+Qt[e[t+8]]+Qt[e[t+9]]+"-"+Qt[e[t+10]]+Qt[e[t+11]]+Qt[e[t+12]]+Qt[e[t+13]]+Qt[e[t+14]]+Qt[e[t+15]]).toLowerCase()}var Rp,T8=new Uint8Array(16);function kp(){if(!Rp){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Rp=crypto.getRandomValues.bind(crypto)}return Rp(T8)}var O8=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),vp={randomUUID:O8};function P8(e,t,A){if(vp.randomUUID&&!t&&!e)return vp.randomUUID();e=e||{};let i=e.random??e.rng?.()??kp();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(A=A||0,A<0||A+16>t.length)throw new RangeError(`UUID byte range ${A}:${A+15} is out of buffer bounds`);for(let o=0;o<16;++o)t[A+o]=i[o];return t}return Mv(i)}var ZI=P8;var Ni=class e{constructor(t){this.http=t}apiServerDomain=ut.getApiServerBaseUrl();getEvalSets(t){if(this.apiServerDomain!=null){let A=this.apiServerDomain+`/apps/${t}/eval_sets`;return this.http.get(A)}return new EA}createNewEvalSet(t,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${t}/eval_sets/${A}`;return this.http.post(i,{})}return new EA}listEvalCases(t,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${t}/eval_sets/${A}/evals`;return this.http.get(i,{})}return new EA}addCurrentSession(t,A,i,o,n){let g=this.apiServerDomain+`/apps/${t}/eval_sets/${A}/add_session`;return this.http.post(g,{evalId:i,sessionId:o,userId:n})}runEval(t,A,i,o){let n=this.apiServerDomain+`/apps/${t}/eval_sets/${A}/run_eval`;return this.http.post(n,{evalIds:i,evalMetrics:o})}listEvalResults(t){if(this.apiServerDomain!=null){let A=this.apiServerDomain+`/apps/${t}/eval_results`;return this.http.get(A,{})}return new EA}getEvalResult(t,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${t}/eval_results/${A}`;return this.http.get(i,{})}return new EA}getEvalCase(t,A,i){if(this.apiServerDomain!=null){let o=this.apiServerDomain+`/apps/${t}/eval_sets/${A}/evals/${i}`;return this.http.get(o,{})}return new EA}updateEvalCase(t,A,i,o){let n=this.apiServerDomain+`/apps/${t}/eval_sets/${A}/evals/${i}`;return this.http.put(n,{evalId:i,conversation:o.conversation,sessionInput:o.sessionInput,creationTimestamp:o.creationTimestamp})}deleteEvalCase(t,A,i){let o=this.apiServerDomain+`/apps/${t}/eval_sets/${A}/evals/${i}`;return this.http.delete(o,{})}static \u0275fac=function(A){return new(A||e)(eA(ht))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var Rv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return e})(),bv=yo({passive:!0}),kv=(()=>{class e{_platform=C(JA);_ngZone=C(AA);_styleLoader=C(Be);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return Ye;this._styleLoader.load(Rv);let i=Wt(A),o=this._monitoredElements.get(i);if(o)return o.subject;let n=new J,g="cdk-text-field-autofilled",r=s=>{s.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(g)?(i.classList.add(g),this._ngZone.run(()=>n.next({target:s.target,isAutofilled:!0}))):s.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(g)&&(i.classList.remove(g),this._ngZone.run(()=>n.next({target:s.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",r,bv),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:n,unlisten:()=>{i.removeEventListener("animationstart",r,bv)}}),n}stopMonitoring(A){let i=Wt(A),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var vv=(()=>{class e{_elementRef=C(z);_platform=C(JA);_ngZone=C(AA);_renderer=C(ie);_resizeEvents=new J;_previousValue;_initialHeight;_destroyed=new J;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=Rt(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=Rt(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=C(uA,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){C(Be).load(Rv),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(lr(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",o=this._platform.FIREFOX,n=o&&this._hasFocus,g=o?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";n&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(g);let r=A.scrollHeight-4;return A.classList.remove(g),n&&(A.style.marginBottom=i),r}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,o=i.value;if(!A&&this._minRows===this._previousMinRows&&o===this._previousValue)return;let n=this._measureScrollHeight(),g=Math.max(n,this._cachedPlaceholderHeight||0);i.style.height=`${g}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=o,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:o}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,o)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,o){i&1&&S("input",function(){return o._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",j],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return e})(),Sv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();var q8=new b("MAT_INPUT_VALUE_ACCESSOR"),V8=["button","checkbox","file","hidden","image","radio","range","reset","submit"],W8=new b("MAT_INPUT_CONFIG"),Xn=(()=>{class e{_elementRef=C(z);_platform=C(JA);ngControl=C(ci,{optional:!0,self:!0});_autofillMonitor=C(kv);_ngZone=C(AA);_formField=C(LI,{optional:!0});_renderer=C(ie);_uid=C(oe).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=C(W8,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new J;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ge(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Bi.required)??!1}set required(A){this._required=Ge(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&pm().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Ge(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>pm().has(A));constructor(){let A=C(gI,{optional:!0}),i=C(Sg,{optional:!0}),o=C(us),n=C(q8,{optional:!0,self:!0}),g=this._elementRef.nativeElement,r=g.nodeName.toLowerCase();n?bn(n.value)?this._signalBasedValueAccessor=n:this._inputValueAccessor=n:this._inputValueAccessor=g,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(g,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new Hg(o,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=r==="select",this._isTextarea=r==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=g.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Ga(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){V8.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,o=i.getAttribute("aria-describedby"),n;if(o){let g=this._formFieldDescribedBy||A;n=A.concat(o.split(" ").filter(r=>r&&!g.includes(r)))}else n=A;this._formFieldDescribedBy=A,n.length?i.setAttribute("aria-describedby",n.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,o){i&1&&S("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),i&2&&(bt("id",o.id)("disabled",o.disabled&&!o.disabledInteractive)("required",o.required),sA("name",o.name||null)("readonly",o._getReadonlyAttribute())("aria-disabled",o.disabled&&o.disabledInteractive?"true":null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),tA("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mat-mdc-input-disabled-interactive",o.disabledInteractive)("mdc-text-field__input",o._isInFormField)("mat-mdc-native-select-inline",o._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",j]},exportAs:["matInput"],features:[pA([{provide:_I,useExisting:e}]),LA]})}return e})(),uE=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,an,an,Sv,QA]})}return e})();var qI=class e{constructor(t,A,i){this.evalService=t;this.data=A;this.dialogRef=i}newCaseId="case"+ZI().slice(0,6);createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(t=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||e)(O(Ni),O(St),O(nt))};static \u0275cmp=H({type:e,selectors:[["app-add-eval-session-dialog"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(E(0,"h2",0),M(1,"Add Current Session To Eval Set"),d(),E(2,"mat-dialog-content"),M(3,` Please enter the eval case name -`),d(),E(4,"mat-form-field",1)(5,"input",2),Tt("ngModelChange",function(n){return ai(i.newCaseId,n)||(i.newCaseId=n),n}),S("keydown.enter",function(){return i.createNewEvalCase()}),d()(),E(6,"mat-dialog-actions",3)(7,"button",4),M(8,"Cancel"),d(),E(9,"button",5),S("click",function(){return i.createNewEvalCase()}),M(10,"Create"),d()()),A&2&&(u(5),Ht("ngModel",i.newCaseId))},dependencies:[bi,Zt,Qi,ko,Xn,It,$t,Si,Fi,Wn],encapsulation:2})};var VI=class e{constructor(t,A,i){this.evalService=t;this.data=A;this.dialogRef=i}newSetId="evalset"+ZI().slice(0,6);createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(t=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||e)(O(Ni),O(St),O(nt))};static \u0275cmp=H({type:e,selectors:[["app-new-eval-set-dialog-component"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(E(0,"h2",0),M(1,"Create New Eval Set"),d(),E(2,"mat-dialog-content"),M(3,` Please enter the eval set name -`),d(),E(4,"mat-form-field",1)(5,"input",2),Tt("ngModelChange",function(n){return ai(i.newSetId,n)||(i.newSetId=n),n}),S("keydown.enter",function(){return i.createNewEvalSet()}),d()(),E(6,"mat-dialog-actions",3)(7,"button",4),M(8,"Cancel"),d(),E(9,"button",5),S("click",function(){return i.createNewEvalSet()}),M(10,"Create"),d()()),A&2&&(u(5),Ht("ngModel",i.newSetId))},dependencies:[bi,Zt,Qi,ko,Xn,It,$t,Si,Fi,Wn],encapsulation:2})};var z8=["knob"],j8=["valueIndicatorContainer"];function X8(e,t){if(e&1&&(E(0,"div",2,1)(2,"div",5)(3,"span",6),M(4),d()()()),e&2){let A=f();u(4),SA(A.valueIndicatorText)}}var $8=["trackActive"],AP=["*"];function eP(e,t){if(e&1&&Y(0,"div"),e&2){let A=t.$implicit,i=t.$index,o=f(3);Ke(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),De("transform",o._calcTickMarkTransform(i))}}function tP(e,t){if(e&1&&ne(0,eP,1,4,"div",8,Tr),e&2){let A=f(2);ge(A._tickMarks)}}function iP(e,t){if(e&1&&(E(0,"div",6,1),L(2,tP,2,0),d()),e&2){let A=f();u(2),_(A._cachedWidth?2:-1)}}function oP(e,t){if(e&1&&Y(0,"mat-slider-visual-thumb",7),e&2){let A=f();N("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var TA=function(e){return e[e.START=1]="START",e[e.END=2]="END",e}(TA||{}),Fs=function(e){return e[e.ACTIVE=0]="ACTIVE",e[e.INACTIVE=1]="INACTIVE",e}(Fs||{}),Sp=new b("_MatSlider"),Fv=new b("_MatSliderThumb"),nP=new b("_MatSliderRangeThumb"),Nv=new b("_MatSliderVisualThumb");var gP=(()=>{class e{_cdr=C(DA);_ngZone=C(AA);_slider=C(Sp);_renderer=C(ie);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=C(z).nativeElement;_platform=C(JA);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,o=this._renderer;this._listenerCleanups=[o.listen(i,"pointermove",this._onPointerMove),o.listen(i,"pointerdown",this._onDragStart),o.listen(i,"pointerup",this._onDragEnd),o.listen(i,"pointerleave",this._onMouseLeave),o.listen(i,"focus",this._onFocus),o.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),o=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=o,o?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===kt.FADING_IN||A?.state===kt.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===TA.START?TA.END:TA.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===TA.START?TA.END:TA.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,o){if(i&1&&(IA(vt,5),IA(z8,5),IA(j8,5)),i&2){let n;V(n=W())&&(o._ripple=n.first),V(n=W())&&(o._knob=n.first),V(n=W())&&(o._valueIndicatorContainer=n.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[pA([{provide:Nv,useExisting:e}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,o){i&1&&(L(0,X8,5,1,"div",2),Y(1,"div",3,0)(3,"div",4)),i&2&&(_(o.discrete?0:-1),u(3),N("matRippleDisabled",!0))},dependencies:[vt],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return e})(),Gv=(()=>{class e{_ngZone=C(AA);_cdr=C(DA);_elementRef=C(z);_dir=C(Se,{optional:!0});_globalRippleOptions=C(Jn,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput(TA.END),o=this._getInput(TA.START);i&&(i.disabled=this._disabled),o&&(o.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput(TA.END),o=this._getInput(TA.START),n=i.value,g=o.value;o.min=A.new,i.min=Math.max(A.new,o.value),o.max=Math.min(i.max,i.value),o._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(o,i):this._onTranslateXChangeBySideEffect(i,o),n!==i.value&&this._onValueChange(i),g!==o.value&&this._onValueChange(o)}_updateMaxNonRange(A){let i=this._getInput(TA.END);if(i){let o=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),o!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput(TA.END),i=this._getInput(TA.START),o=A.value,n=i.value,g=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=C(JA);constructor(){C(Be).load(ze);let A=C(jA,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput(TA.END),i=this._getInput(TA.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let o=this._getThumb(TA.END);this._rippleRadius=o._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput(TA.END),i=this._getInput(TA.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(TA.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(TA.START)._isActive||this._getThumb(TA.END)._isActive}_getValue(A=TA.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(TA.START)?._skipUIUpdate||this._getInput(TA.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput(TA.END),i=this._getInput(TA.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput(TA.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput(TA.START),i=this._getInput(TA.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),o=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),o._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===TA.END?TA.END:TA.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===TA.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let o=this._getThumb(A.thumbPosition);i.length<3?o._hostElement.classList.add("mdc-slider__thumb--short-value"):o._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput(TA.END),i=this._getInput(TA.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,o=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*o}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let o=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${o})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${o})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),o=Math.max(Math.round((i-this.min)/A),0)+1,n=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?o++:n++,this._tickMarks=Array(o).fill(Fs.ACTIVE).concat(Array(n).fill(Fs.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),o=this._getValue(TA.START),n=Math.max(Math.round((o-this.min)/A),0),g=Math.max(Math.round((i-o)/A)+1,0),r=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(n).fill(Fs.INACTIVE).concat(Array(g).fill(Fs.ACTIVE),Array(r).fill(Fs.INACTIVE))}_getInput(A){if(A===TA.END&&this._input)return this._input;if(this._inputs?.length)return A===TA.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===TA.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let o=i.width/2,n=i.x+o,g=i.y+o,r=A.clientX-n,s=A.clientY-g;return Math.pow(r,2)+Math.pow(s,2)Fp),multi:!0};var Fp=(()=>{class e{_ngZone=C(AA);_elementRef=C(z);_cdr=C(DA);_slider=C(Sp);_platform=C(JA);_listenerCleanups;get value(){return Ae(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new Z;dragStart=new Z;dragEnd=new Z;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=TA.END;get min(){return Ae(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return Ae(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return Ae(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return j(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Ne("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new J;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=C(ie);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,o=this._slider._cachedWidth,n=this._slider.step===0?1:this._slider.step,g=Math.floor((this._slider.max-this._slider.min)/n),r=this._slider._isRtl?1-i/o:i/o,a=Math.round(r*g)/g*(this._slider.max-this._slider.min)+this._slider.min,c=Math.round(a/n)*n,h=this.value;if(c===h){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=c,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,o=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,o),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,o){i&1&&S("change",function(){return o._onChange()})("input",function(){return o._onInput()})("blur",function(){return o._onBlur()})("focus",function(){return o._onFocus()}),i&2&&sA("aria-valuetext",o._valuetext())},inputs:{value:[2,"value","value",Ae]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[pA([rP,{provide:Fv,useExisting:e}])]})}return e})();var _v=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,ui]})}return e})();var WI=class e{constructor(t,A,i){this.dialogRef=t;this.fb=A;this.data=i;this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[Bi.required,Bi.min(0),Bi.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[Bi.required,Bi.min(0),Bi.max(1)]]})}evalForm;metrics=["Tool trajectory avg score","Response match score"];getEvalMetricThresholdFromData(t){return this.data.evalMetrics.find(A=>A.metricName===t)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:t,response_match_score_threshold:A}=this.evalForm.value,i=[{metricName:"tool_trajectory_avg_score",threshold:t},{metricName:"response_match_score",threshold:A}];this.dialogRef.close(i)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||e)(O(nt),O(Rb),O(St))};static \u0275cmp=H({type:e,selectors:[["app-run-eval-config-dialog"]],standalone:!1,decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"h2",1),M(2,"EVALUATION METRIC"),d(),E(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),M(7,"Tool trajectory avg score: "),d(),E(8,"div",5)(9,"mat-slider",6),Y(10,"input",7),d(),E(11,"span",8),M(12),d()()(),E(13,"div",3)(14,"div",4),M(15,"Response match score: "),d(),E(16,"div",5)(17,"mat-slider",6),Y(18,"input",9),d(),E(19,"span",8),M(20),d()()()()(),E(21,"mat-dialog-actions",10)(22,"button",11),S("click",function(){return i.onCancel()}),M(23,"Cancel"),d(),E(24,"button",12),S("click",function(){return i.onStart()}),M(25,"Start"),d()()()),A&2&&(u(4),N("formGroup",i.evalForm),u(8),hA(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),u(8),hA(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[Mb,bi,Zt,ub,It,$t,Si,Fi,Gv,Fp,Sg,Tu],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px #0006}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: #4285f4;--mdc-slider-inactive-track-color: #616161;--mdc-slider-handle-color: #4285f4;--mdc-slider-ripple-color: #4285f4;width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, black);border:none!important;box-shadow:none!important}"]})};var vo=class e{constructor(t){this.http=t}apiServerDomain=ut.getApiServerBaseUrl();createSession(t,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${t}/sessions`;return this.http.post(i,null)}return new EA}listSessions(t,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${t}/sessions`;return this.http.get(i)}return new EA}deleteSession(t,A,i){let o=this.apiServerDomain+`/apps/${A}/users/${t}/sessions/${i}`;return this.http.delete(o)}getSession(t,A,i){let o=this.apiServerDomain+`/apps/${A}/users/${t}/sessions/${i}`;return this.http.get(o)}static \u0275fac=function(A){return new(A||e)(eA(ht))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var aP=["determinateSpinner"];function IP(e,t){if(e&1&&(We(),E(0,"svg",11),Y(1,"circle",12),d()),e&2){let A=f();sA("viewBox",A._viewBox()),u(),De("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),sA("r",A._circleRadius())}}var CP=new b("mat-progress-spinner-default-options",{providedIn:"root",factory:BP});function BP(){return{diameter:Lv}}var Lv=100,cP=10,Kv=(()=>{class e{_elementRef=C(z);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=C(jA,{optional:!0}),i=C(CP);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=Lv;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-cP)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(i&1&&IA(aP,5),i&2){let n;V(n=W())&&(o._determinateCircle=n.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,o){i&2&&(sA("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",o.mode==="determinate"?o.value:null)("mode",o.mode),Ke("mat-"+o.color),De("width",o.diameter,"px")("height",o.diameter,"px")("--mdc-circular-progress-size",o.diameter+"px")("--mdc-circular-progress-active-indicator-width",o.diameter+"px"),tA("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate",o.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",Ae],diameter:[2,"diameter","diameter",Ae],strokeWidth:[2,"strokeWidth","strokeWidth",Ae]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,o){if(i&1&&(L(0,IP,2,8,"ng-template",null,0,Na),E(2,"div",2,1),We(),E(4,"svg",3),Y(5,"circle",4),d()(),wg(),E(6,"div",5)(7,"div",6)(8,"div",7),tt(9,8),d(),E(10,"div",9),tt(11,8),d(),E(12,"div",10),tt(13,8),d()()()),i&2){let n=He(1);u(4),sA("viewBox",o._viewBox()),u(),De("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),sA("r",o._circleRadius()),u(4),N("ngTemplateOutlet",n),u(2),N("ngTemplateOutlet",n),u(2),N("ngTemplateOutlet",n)}},dependencies:[Ua],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return e})();var xv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA]})}return e})();function EP(e,t){if(e&1){let A=oA();E(0,"div",1)(1,"div"),M(2,"All eval sets"),d(),E(3,"mat-icon",2),S("click",function(){K(A);let o=f();return x(o.openNewEvalSetDialog())}),M(4,"add"),d()()}}function lP(e,t){if(e&1){let A=oA();E(0,"div")(1,"div",3)(2,"div",4),M(3," Create New Evaluation Set "),d(),E(4,"div",5),M(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),d(),E(6,"div",6),S("click",function(){K(A);let o=f();return x(o.openNewEvalSetDialog())}),M(7," Create Evaluation Set "),d()()()}}function dP(e,t){if(e&1){let A=oA();E(0,"div",8),S("click",function(){let o=K(A).$implicit,n=f(2);return x(n.selectEvalSet(o))}),E(1,"div",9)(2,"span",10),M(3,"folder"),d(),E(4,"div",11),M(5),d()(),E(6,"div")(7,"mat-icon",12),M(8,"chevron_right"),d()()()}if(e&2){let A=t.$implicit;u(5),SA(A)}}function hP(e,t){if(e&1&&(E(0,"div"),ne(1,dP,9,1,"div",7,le),d()),e&2){let A=f();u(),ge(A.evalsets)}}function uP(e,t){if(e&1){let A=oA();E(0,"th",30)(1,"mat-checkbox",31),S("change",function(o){K(A);let n=f(4);return x(o?n.toggleAllRows():null)}),d()()}if(e&2){let A=f(4);u(),N("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function mP(e,t){if(e&1){let A=oA();E(0,"td",26)(1,"mat-checkbox",32),S("click",function(o){return K(A),x(o.stopPropagation())})("change",function(o){let n=K(A).$implicit,g=f(4);return x(o?g.selection.toggle(n):null)}),d()()}if(e&2){let A=t.$implicit,i=f(4);u(),N("checked",i.selection.isSelected(A))}}function pP(e,t){e&1&&(E(0,"th",30),M(1," Case ID "),d())}function DP(e,t){if(e&1){let A=oA();E(0,"td",34),S("click",function(){let o=K(A).$implicit,n=f(5);return x(n.getEvalCase(o))}),M(1),d()}if(e&2){let A,i=t.$implicit,o=f(5);tA("selected-eval-case",i===((A=o.selectedEvalCase())==null?null:A.evalId)),u(),hA(" ",i," ")}}function fP(e,t){e&1&&L(0,DP,2,3,"td",33)}function wP(e,t){if(e&1&&(E(0,"td",26),M(1),d()),e&2){let A=t.$implicit;u(),hA(" ",A," ")}}function yP(e,t){e&1&&L(0,wP,2,1,"td",23)}function MP(e,t){e&1&&(E(0,"th",30),M(1," Result "),d())}function bP(e,t){if(e&1){let A=oA();E(0,"button",36),S("click",function(){K(A);let o=f().$implicit,n=f(4);return x(n.getSession(o))}),E(1,"span",37),M(2),d(),E(3,"div",38),M(4),d()()}if(e&2){let A=f().$implicit,i=f(4);N("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),u(2),hA(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),u(2),hA("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function RP(e,t){if(e&1&&(E(0,"td",26),L(1,bP,5,3,"button",35),d()),e&2){let A=t.$implicit,i=f(4);u(),_(i.getEvalResultForCase(A)?1:-1)}}function kP(e,t){e&1&&Y(0,"tr",39)}function vP(e,t){e&1&&Y(0,"tr",40)}function SP(e,t){if(e&1){let A=oA();E(0,"div")(1,"div",16)(2,"button",17),S("click",function(){K(A);let o=f(3);return x(o.isSetEvalConfigEnabled?o.openEvalConfigDialog():o.runEval())}),M(3,"Run Evaluation"),d(),E(4,"mat-icon",18),S("click",function(){K(A);let o=f(3);return x(o.toggleEvalHistoryButton())}),M(5,"history"),d()(),E(6,"div",19)(7,"table",20),vn(8,21),L(9,uP,2,2,"th",22)(10,mP,2,1,"td",23),Sn(),vn(11,24),L(12,pP,2,0,"th",22)(13,fP,1,0,"td",25)(14,yP,1,0,"td",26),Sn(),vn(15,27),L(16,MP,2,0,"th",22)(17,RP,2,1,"td",23),Sn(),L(18,kP,1,0,"tr",28)(19,vP,1,0,"tr",29),d()()()}if(e&2){let A=f(3);u(7),N("dataSource",A.dataSource),u(6),_(A.isViewEvalCaseEnabled?13:14),u(5),N("matHeaderRowDef",A.displayedColumns),u(),N("matRowDefColumns",A.displayedColumns)}}function FP(e,t){if(e&1&&(E(0,"div")(1,"span",51),M(2,"|"),d(),E(3,"span",52),M(4),d()()),e&2){let A=f().$implicit,i=f(4);u(4),hA("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function NP(e,t){if(e&1&&(E(0,"span",53),M(1),d()),e&2){let A=t.$implicit;u(),ru(" ",A.metricName,": ",A.threshold," ")}}function GP(e,t){if(e&1&&(E(0,"div",47),ne(1,NP,2,2,"span",53,le),d()),e&2){let A=f().$implicit,i=f(4);u(),ge(i.getEvalMetrics(A))}}function _P(e,t){if(e&1){let A=oA();E(0,"div")(1,"div",54)(2,"span"),M(3),d(),E(4,"button",55),S("click",function(){let o=K(A).$implicit,n=f(6);return x(n.getHistorySession(o))}),E(5,"span",37),M(6),d(),E(7,"div",38),M(8),d()()()()}if(e&2){let A=t.$implicit;u(3),hA(" ",A.evalId," "),u(),N("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),u(2),hA(" ",A.finalEvalStatus==1?"check":"close"," "),u(2),hA("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function LP(e,t){if(e&1&&(E(0,"div",50),ne(1,_P,9,4,"div",null,le),d()),e&2){let A=f().$implicit,i=f(4);u(),ge(i.generateHistoryEvaluationDatasource(A.timestamp))}}function KP(e,t){if(e&1){let A=oA();E(0,"div")(1,"div",41)(2,"div",42)(3,"div",43)(4,"div",44),M(5),d(),E(6,"div",45)(7,"span",46),M(8),d(),L(9,FP,5,1,"div"),d(),L(10,GP,3,0,"div",47),d(),E(11,"div",48)(12,"mat-icon",49),S("click",function(){let o=K(A).$implicit,n=f(4);return x(n.toggleHistoryStatusCard(o.timestamp))}),M(13),d()()(),L(14,LP,3,0,"div",50),d()()}if(e&2){let A=t.$implicit,i=f(4);u(5),SA(i.formatTimestamp(A.timestamp)),u(3),hA("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),u(),_(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),u(),_(i.getEvalMetrics(A)?10:-1),u(3),SA(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),u(),_(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function xP(e,t){if(e&1&&(E(0,"div"),ne(1,KP,15,6,"div",null,le),d()),e&2){let A=f(3);u(),ge(A.getEvalHistoryOfCurrentSetSorted())}}function UP(e,t){if(e&1&&(E(0,"div"),L(1,SP,20,4,"div")(2,xP,3,0,"div"),d()),e&2){let A=f(2);u(),_(A.showEvalHistory()?-1:1),u(),_(A.showEvalHistory()?2:-1)}}function YP(e,t){if(e&1){let A=oA();E(0,"button",56),S("click",function(){K(A);let o=f(2);return x(o.openNewEvalCaseDialog())}),E(1,"div",57)(2,"mat-icon"),M(3,"add"),d(),E(4,"div",58),M(5),d()()()}if(e&2){let A=f(2);u(5),hA(" Add current session to ",A.selectedEvalSet," ")}}function JP(e,t){e&1&&(E(0,"div"),Y(1,"mat-spinner",59),d()),e&2&&(u(),N("diameter",28)("strokeWidth",3))}function HP(e,t){if(e&1){let A=oA();E(0,"div")(1,"div",9)(2,"mat-icon",13),S("click",function(){K(A);let o=f();return x(o.clearSelectedEvalSet())}),M(3,"chevron_left"),d(),E(4,"div",14),S("click",function(){K(A);let o=f();return x(o.clearSelectedEvalSet())}),M(5),d()(),L(6,UP,3,2,"div")(7,YP,6,1,"button",15)(8,JP,2,2,"div"),d()}if(e&2){let A=f();u(5),hA(" ",A.selectedEvalSet," "),u(),_(A.evalCases.length>0&&!A.evalRunning()?6:-1),u(),_(!A.evalRunning()&&!A.showEvalHistory()?7:-1),u(),_(A.evalRunning()?8:-1)}}var Wg=class e{constructor(t,A){this.evalService=t;this.sessionService=A;this.evalCasesSubject.subscribe(i=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&i.length>0?(this.selectNewEvalCase(i),this.deletedEvalCaseIndex=-1):i.length===0&&this.shouldReturnToSession.emit(!0)})}checkboxes;appName="";userId="";sessionId="";sessionSelected=new Z;shouldShowTab=new Z;evalNotInstalledMsg=new Z;evalCaseSelected=new Z;evalSetIdSelected=new Z;shouldReturnToSession=new Z;evalCasesSubject=new PA([]);changeDetectorRef=C(DA);flagService=C(dE);isViewEvalCaseEnabled=this.flagService.isViewEvalCaseEnabled();isSetEvalConfigEnabled=this.flagService.isSetEvalConfigEnabled();displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Ne(null);deletedEvalCaseIndex=-1;dataSource=new PI(this.evalCases);selection=new Tn(!0,[]);showEvalHistory=Ne(!1);evalRunning=Ne(!1);evalMetrics=this.isSetEvalConfigEnabled?[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}]:[{metricName:"tool_trajectory_avg_score",threshold:1}];evalResult=[];dialog=C(Ft);appEvaluationResults={};ngOnChanges(t){t.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(t){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===t.length&&(A=0),this.getEvalCase(t[A])}getEvalSet(){this.appName!=""&&this.evalService.getEvalSets(this.appName).pipe($e(t=>t.status===404&&t.statusText==="Not Found"?(this.shouldShowTab.emit(!1),gA(null)):gA([]))).subscribe(t=>{t!==null&&(this.shouldShowTab.emit(!0),this.evalsets=t)})}openNewEvalSetDialog(){this.dialog.open(VI,{width:"600px",data:{appName:this.appName}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(qI,{width:"600px",data:{appName:this.appName,userId:this.userId,sessionId:this.sessionId,evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName,this.selectedEvalSet).subscribe(t=>{this.evalCases=t,this.dataSource=new PI(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName,this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe($e(t=>(t.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(t.error.detail),gA([])))).subscribe(t=>{this.evalRunning.set(!1),this.evalResult=t,this.getEvaluationResult()})}selectEvalSet(t){this.selectedEvalSet=t,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let t=this.selection.selected.length,A=this.dataSource.data.length;return t===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(t){let A=this.evalResult.filter(i=>i.evalId==t);if(A.length!=0)return A[0].finalEvalStatus}formatToolUses(t){let A=[];for(let i of t)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(t,A){let i=A.evalMetricResultPerInvocation,o=-1;if(i)for(let n=0;no.evalId==t)[0],i=A.sessionId;this.sessionService.getSession(this.userId,this.appName,i).subscribe(o=>{this.addEvalCaseResultToEvents(o,A);let n=this.fromApiResultToSession(o);this.sessionSelected.emit(n)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let t=this.getEvalHistoryOfCurrentSet();return Object.keys(t).sort((o,n)=>n.localeCompare(o)).map(o=>({timestamp:o,evaluationResults:t[o]}))}getPassCountForCurrentResult(t){return t.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(t){return t.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(t){let A=Number(t);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let o={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",o).format(i)}getEvaluationStatusCardActionButtonIcon(t){return this.getEvalHistoryOfCurrentSet()[t].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(t){this.getEvalHistoryOfCurrentSet()[t].isToggled=!this.getEvalHistoryOfCurrentSet()[t].isToggled}isEvaluationStatusCardToggled(t){return this.getEvalHistoryOfCurrentSet()[t].isToggled}generateHistoryEvaluationDatasource(t){return this.getEvalHistoryOfCurrentSet()[t].evaluationResults}getHistorySession(t){this.addEvalCaseResultToEvents(t.sessionDetails,t);let A=this.fromApiResultToSession(t.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(t){this.evalService.getEvalCase(this.appName,this.selectedEvalSet,t).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.evalResult=[]}deleteEvalCase(t){this.evalService.deleteEvalCase(this.appName,this.selectedEvalSet,t).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(t),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName).pipe($e(t=>t.status===404&&t.statusText==="Not Found"?(this.shouldShowTab.emit(!1),gA(null)):gA([]))).subscribe(t=>{for(let A of t)this.evalService.getEvalResult(this.appName,A).subscribe(i=>{this.appEvaluationResults[this.appName]||(this.appEvaluationResults[this.appName]={}),this.appEvaluationResults[this.appName][i.evalSetId]||(this.appEvaluationResults[this.appName][i.evalSetId]={});let o=i.creationTimestamp;this.appEvaluationResults[this.appName][i.evalSetId][o]||(this.appEvaluationResults[this.appName][i.evalSetId][o]={isToggled:!1,evaluationResults:[]});let n={isToggled:!1,evaluationResults:i.evalCaseResults.map(g=>({setId:g.id,evalId:g.evalId,finalEvalStatus:g.finalEvalStatus,evalMetricResults:g.evalMetricResults,evalMetricResultPerInvocation:g.evalMetricResultPerInvocation,sessionId:g.sessionId,sessionDetails:g.sessionDetails,overallEvalMetricResults:g.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName][i.evalSetId][o]=n})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(WI,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(t){if(!t||!t.evaluationResults||!t.evaluationResults.evaluationResults)return this.evalMetrics;let A=t.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(o=>({metricName:o.metricName,threshold:o.threshold}))}static \u0275fac=function(A){return new(A||e)(O(Ni),O(vo))};static \u0275cmp=H({type:e,selectors:[["app-eval-tab"]],viewQuery:function(A,i){if(A&1&&IA(vs,5),A&2){let o;V(o=W())&&(i.checkboxes=o)}},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},standalone:!1,features:[LA],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","",1,"eval-case-id",3,"selected-eval-case"],["mat-cell",""],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],[3,"click","change","checked"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(E(0,"div",0),L(1,EP,5,0,"div",1)(2,lP,8,0,"div")(3,hP,3,0,"div")(4,HP,9,4,"div"),d()),A&2&&(u(),_(i.selectedEvalSet==""?1:-1),u(),_(i.evalsets.length==0?2:-1),u(),_(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),u(),_(i.selectedEvalSet!=""?4:-1))},dependencies:[Ci,jn,vs,Ev,dv,pv,hv,lv,Dv,uv,mv,fv,wv,Rs,Kv],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:#9aa0a6;font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:#202124;border-radius:8px;box-shadow:0 2px 6px 2px #00000026,0 1px 2px #0000004d}.info-title[_ngcontent-%COMP%]{color:#e8eaed;font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:#e8eaed;font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--Blue-300, #8ab4f8);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:#8ab4f8}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,#8ab4f83d 0% 100%),#202124;border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--Blue-100, #d2e3fc);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--Grey-700, #5f6368);background-color:transparent;padding:8px 24px;margin-top:16px;color:#8ab4f8;cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:#202124}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--Grey-700, #5f6368);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:#202124}.result-btn.pass[_ngcontent-%COMP%]{color:#44c265}.result-btn.fail[_ngcontent-%COMP%]{color:#ff8983}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:#2d2d2d;padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:#e0e0e0;margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:#bbb}.status-card__failed[_ngcontent-%COMP%]{color:#ff6b6b}.status-card__separator[_ngcontent-%COMP%]{color:#666;margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:#63e6be}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#bdbdbd;cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:#bdbdbd;font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function OP(e,t){e&1&&Y(0,"div",6)}function PP(e,t){if(e&1&&(E(0,"div",3)(1,"div",5),ne(2,OP,1,0,"div",6,Tr),d(),E(4,"span",7),M(5),d(),E(6,"div",8),M(7),E(8,"span",9),M(9),d()(),E(10,"div",10)(11,"div",11),M(12),d()()()),e&2){let A=t.$implicit,i=f();u(2),ge(i.getArray(A.level)),u(3),hA(" ",i.getSpanIcon(A.span.name)," "),u(),De("width",400-A.level*20,"px"),u(),hA(" ",A.span.name," "),u(2),hA(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),u(2),De("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),u(),hA(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var zI=class e{constructor(t,A){this.dialogRef=t;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let t=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=t.start,this.totalDurationMs=t.duration}buildSpanTree(t){let A=t.map(n=>v({},n)),i=new Map,o=[];return A.forEach(n=>i.set(n.span_id,n)),A.forEach(n=>{if(n.parent_span_id&&i.has(n.parent_span_id)){let g=i.get(n.parent_span_id);g.children=g.children||[],g.children.push(n)}else o.push(n)}),o}getGlobalTimes(t){let A=Math.min(...t.map(o=>this.toMs(o.start_time))),i=Math.max(...t.map(o=>this.toMs(o.end_time)));return{start:A,duration:i-A}}toMs(t){return t/1e6}getRelativeStart(t){return(this.toMs(t.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(t){return(this.toMs(t.end_time)-this.toMs(t.start_time))/this.totalDurationMs*100}flattenTree(t,A=0){return t.flatMap(o=>[{span:o,level:A},...o.children?this.flattenTree(o.children,A+1):[]])}getSpanIcon(t){for(let[A,i]of this.traceLabelIconMap.entries())if(t.startsWith(A))return i;return"start"}getArray(t){return Array.from({length:t})}static \u0275fac=function(A){return new(A||e)(O(nt),O(St))};static \u0275cmp=H({type:e,selectors:[["app-trace-chart"]],standalone:!1,decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(E(0,"h2",0),M(1),d(),E(2,"mat-dialog-content",1)(3,"div",2),ne(4,PP,13,10,"div",3,le),d()(),E(6,"mat-dialog-actions")(7,"button",4),M(8,"Close"),d()()),A&2&&(u(),hA("Invocation ",i.data.invocId,""),u(3),ge(i.flatTree))},dependencies:[It,$t,Si,Fi,Wn],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;text-overflow:ellipsis;font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}"]})};var Uv=(()=>{class e{get vertical(){return this._vertical}set vertical(A){this._vertical=Ge(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Ge(A)}_inset=!1;static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,o){i&2&&(sA("aria-orientation",o.vertical?"vertical":"horizontal"),tA("mat-divider-vertical",o.vertical)("mat-divider-horizontal",!o.vertical)("mat-divider-inset",o.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,o){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return e})(),Yv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,QA]})}return e})();var qP=["*"],VP='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',WP=["unscopedContent"],zP=["text"],jP=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],XP=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var $P=new b("ListOption"),A1=(()=>{class e{_elementRef=C(z);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return e})(),e1=(()=>{class e{_elementRef=C(z);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return e})(),t1=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return e})(),Jv=(()=>{class e{_listOption=C($P,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,hostVars:4,hostBindings:function(i,o){i&2&&tA("mdc-list-item__start",o._isAlignedAtStart())("mdc-list-item__end",!o._isAlignedAtStart())}})}return e})(),i1=(()=>{class e extends Jv{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[lA]})}return e})(),o1=(()=>{class e extends Jv{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[lA]})}return e})(),n1=new b("MAT_LIST_CONFIG"),Gp=(()=>{class e{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Ge(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ge(A)}_disabled=!1;_defaultOptions=C(n1,{optional:!0});static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,hostVars:1,hostBindings:function(i,o){i&2&&sA("aria-disabled",o.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return e})(),g1=(()=>{class e{_elementRef=C(z);_ngZone=C(AA);_listBase=C(Gp,{optional:!0});_platform=C(JA);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=Rt(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Ge(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Ge(A)}_disabled=!1;_subscriptions=new FA;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){C(Be).load(ze);let A=C(Jn,{optional:!0}),i=C(jA,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new hs(this,this._ngZone,this._hostElement,this._platform,C(RA)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Me(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),o=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let n=this._titles.length===0&&i===1;o.classList.toggle("mdc-list-item__primary-text",n),o.classList.toggle("mdc-list-item__secondary-text",!n)}else o.classList.remove("mdc-list-item__primary-text"),o.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,contentQueries:function(i,o,n){if(i&1&&(qA(n,i1,4),qA(n,o1,4)),i&2){let g;V(g=W())&&(o._avatars=g),V(g=W())&&(o._icons=g)}},hostVars:4,hostBindings:function(i,o){i&2&&(sA("aria-disabled",o.disabled)("disabled",o._isButtonElement&&o.disabled||null),tA("mdc-list-item--disabled",o.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return e})();var Hv=(()=>{class e extends Gp{static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[pA([{provide:Gp,useExisting:e}]),lA],ngContentSelectors:qP,decls:1,vars:0,template:function(i,o){i&1&&(KA(),rA(0))},styles:[VP],encapsulation:2,changeDetection:0})}return e})(),Tv=(()=>{class e extends g1{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Ge(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,o,n){if(i&1&&(qA(n,e1,5),qA(n,A1,5),qA(n,t1,5)),i&2){let g;V(g=W())&&(o._lines=g),V(g=W())&&(o._titles=g),V(g=W())&&(o._meta=g)}},viewQuery:function(i,o){if(i&1&&(IA(WP,5),IA(zP,5)),i&2){let n;V(n=W())&&(o._unscopedContent=n.first),V(n=W())&&(o._itemText=n.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,o){i&2&&(sA("aria-current",o._getAriaCurrent()),tA("mdc-list-item--activated",o.activated)("mdc-list-item--with-leading-avatar",o._avatars.length!==0)("mdc-list-item--with-leading-icon",o._icons.length!==0)("mdc-list-item--with-trailing-meta",o._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",o._hasBothLeadingAndTrailing())("_mat-animation-noopable",o._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[lA],ngContentSelectors:XP,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,o){if(i&1){let n=oA();KA(jP),rA(0),E(1,"span",1),rA(2,1),rA(3,2),E(4,"span",2,0),S("cdkObserveContent",function(){return K(n),x(o._updateItemLines(!0))}),rA(6,3),d()(),rA(7,4),rA(8,5),Y(9,"div",3)}},dependencies:[bQ],encapsulation:2,changeDetection:0})}return e})();var Ov=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[ls,QA,ui,Hm,Yv]})}return e})();var s1=["button"],a1=["*"];function I1(e,t){if(e&1&&(E(0,"div",2),Y(1,"mat-pseudo-checkbox",6),d()),e&2){let A=f();u(),N("disabled",A.disabled)}}var Pv=new b("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:C1});function C1(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var Zv=new b("MatButtonToggleGroup"),B1={provide:Mi,useExisting:Je(()=>_p),multi:!0},pE=class{source;value;constructor(t,A){this.source=t,this.value=A}},_p=(()=>{class e{_changeDetector=C(DA);_dir=C(Se,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=C(oe).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new Z;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new Z;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=C(Pv,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new Tn(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let o=A.target.id,n=this._buttonToggles.toArray().findIndex(r=>r.buttonId===o),g=null;switch(A.keyCode){case 32:case 13:g=this._buttonToggles.get(n)||null;break;case 38:g=this._getNextButton(n,-1);break;case 37:g=this._getNextButton(n,this.dir==="ltr"?-1:1);break;case 40:g=this._getNextButton(n,1);break;case 39:g=this._getNextButton(n,this.dir==="ltr"?1:-1);break;default:return}g&&(A.preventDefault(),g._onButtonClick(),g.focus())}_emitChangeEvent(A){let i=new pE(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,o=!1,n=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):n=!0,n?Promise.resolve().then(()=>this._updateModelValue(A,o)):this._updateModelValue(A,o)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(o,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(o=>o.tabIndex===-1)){for(let o of i)if(!o.disabled){o.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let o of i)if(o.value===A){o.checked=!0,this._selectionModel.select(o),this.multiple||(o.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,o,n){if(i&1&&qA(n,DE,5),i&2){let g;V(g=W())&&(o._buttonToggles=g)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,o){i&1&&S("keydown",function(g){return o._keydown(g)}),i&2&&(sA("role",o.multiple?"group":"radiogroup")("aria-disabled",o.disabled),tA("mat-button-toggle-vertical",o.vertical)("mat-button-toggle-group-appearance-standard",o.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",j],value:"value",multiple:[2,"multiple","multiple",j],disabled:[2,"disabled","disabled",j],disabledInteractive:[2,"disabledInteractive","disabledInteractive",j],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",j],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",j]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[pA([B1,{provide:Zv,useExisting:e}])]})}return e})(),DE=(()=>{class e{_changeDetectorRef=C(DA);_elementRef=C(z);_focusMonitor=C(at);_idGenerator=C(oe);_animationMode=C(jA,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new Z;constructor(){C(Be).load(ze);let A=C(Zv,{optional:!0}),i=C(new Ve("tabindex"),{optional:!0})||"",o=C(Pv,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=o&&o.appearance?o.appearance:"standard",this.disabledInteractive=o?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(o=>o.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new pE(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-button-toggle"]],viewQuery:function(i,o){if(i&1&&IA(s1,5),i&2){let n;V(n=W())&&(o._buttonElement=n.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,o){i&1&&S("focus",function(){return o.focus()}),i&2&&(sA("aria-label",null)("aria-labelledby",null)("id",o.id)("name",null),tA("mat-button-toggle-standalone",!o.buttonToggleGroup)("mat-button-toggle-checked",o.checked)("mat-button-toggle-disabled",o.disabled)("mat-button-toggle-disabled-interactive",o.disabledInteractive)("mat-button-toggle-appearance-standard",o.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",j],appearance:"appearance",checked:[2,"checked","checked",j],disabled:[2,"disabled","disabled",j],disabledInteractive:[2,"disabledInteractive","disabledInteractive",j]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:a1,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,o){if(i&1){let n=oA();KA(),E(0,"button",1,0),S("click",function(){return K(n),x(o._onButtonClick())}),L(2,I1,2,1,"div",2),E(3,"span",3),rA(4),d()(),Y(5,"span",4)(6,"span",5)}if(i&2){let n=He(1);N("id",o.buttonId)("disabled",o.disabled&&!o.disabledInteractive||null),sA("role",o.isSingleSelector()?"radio":"button")("tabindex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex)("aria-pressed",o.isSingleSelector()?null:o.checked)("aria-checked",o.isSingleSelector()?o.checked:null)("name",o._getButtonName())("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby)("aria-disabled",o.disabled&&o.disabledInteractive?"true":null),u(2),_(o.buttonToggleGroup&&(!o.buttonToggleGroup.multiple&&!o.buttonToggleGroup.hideSingleSelectionIndicator||o.buttonToggleGroup.multiple&&!o.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),u(4),N("matRippleTrigger",n)("matRippleDisabled",o.disableRipple||o.disabled)}},dependencies:[vt,Jm],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return e})(),qv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,ui,DE,QA]})}return e})();function Q1(e,t){e&1&&(E(0,"p"),M(1,"Conversations"),d())}function E1(e,t){e&1&&(E(0,"p"),M(1,"Trace"),d())}function l1(e,t){if(e&1){let A=oA();E(0,"mat-button-toggle-group",5),Tt("ngModelChange",function(o){K(A);let n=f(2);return ai(n.view,o)||(n.view=o),x(o)}),E(1,"mat-button-toggle",6),M(2,"Events"),d(),E(3,"mat-button-toggle",7),M(4,"Trace"),d()()}if(e&2){let A=f(2);Ht("ngModel",A.view)}}function d1(e,t){if(e&1){let A=oA();E(0,"mat-list-item",8),S("click",function(){let o=K(A).$implicit,n=f(3);return x(n.selectEvent(o.key))}),E(1,"span",9),M(2),d(),E(3,"span"),M(4),d()()}if(e&2){let A=t.$implicit,i=t.$index;u(2),SA(i),u(2),SA(A.value.title)}}function h1(e,t){if(e&1&&(E(0,"mat-list",4),ne(1,d1,5,2,"mat-list-item",null,le),Pi(3,"keyvalue"),d()),e&2){let A=f(2);u(),ge(Fa(3,0,A.eventsMap,A.mapOrderPreservingSort))}}function u1(e,t){if(e&1){let A=oA();E(0,"mat-list-item",8),S("click",function(){let o=K(A).$implicit,n=f(3);return x(n.openDialog(o.key))}),E(1,"span",9),M(2),d(),E(3,"span"),M(4),d()()}if(e&2){let A=t.$implicit,i=t.$index,o=f(3);u(2),SA(i),u(2),hA("Invocation ",o.findInvocIdFromTraceId(A.key),"")}}function m1(e,t){if(e&1&&(E(0,"mat-list",4),ne(1,u1,5,2,"mat-list-item",null,le),Pi(3,"keyvalue"),d()),e&2){let A=f(2);u(),ge(Fa(3,0,A.invocTraces,A.mapOrderPreservingSort))}}function p1(e,t){if(e&1&&(E(0,"div",1)(1,"div",2),L(2,Q1,2,0,"p")(3,E1,2,0,"p")(4,l1,5,1,"mat-button-toggle-group",3),d(),L(5,h1,4,3,"mat-list",4)(6,m1,4,3,"mat-list",4),d()),e&2){let A=f();u(2),_(A.isTraceView()?-1:2),u(),_(A.isTraceView()?3:-1),u(),_(A.traceData?4:-1),u(),_(A.isTraceView()?-1:5),u(),_(A.isTraceView()?6:-1)}}function D1(e,t){e&1&&(E(0,"div")(1,"p"),M(2,"No conversations"),d()())}var zg=class e{constructor(t){this.dialog=t}eventsMap=new Map;selectedEvent=new Z;traceData=[];llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";isDetailsPanelOpen=!1;view="events";invocTraces=new Map;ngOnChanges(t){"traceData"in t&&this.prcessTraceDataToInvocTrace()}showJson=Array(this.eventsMap.size).fill(!1);toggleJson(t){this.showJson[t]=!this.showJson[t]}selectEvent(t){this.selectedEvent.emit(t)}isTraceView(){return this.view=="trace"}mapOrderPreservingSort=(t,A)=>0;prcessTraceDataToInvocTrace(){!this.traceData||this.traceData.length==0||(this.invocTraces=this.traceData.reduce((t,A)=>{let i=A.trace_id,o=t.get(i);return o?(o.push(A),o.sort((n,g)=>n.start_time-g.start_time)):t.set(i,[A]),t},new Map))}findInvocIdFromTraceId(t){return this.invocTraces.get(t)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}openDialog(t){let A=this.dialog.open(zI,{width:"auto",maxWidth:"90vw",data:{spans:this.invocTraces.get(t),invocId:this.findInvocIdFromTraceId(t)}})}static \u0275fac=function(A){return new(A||e)(O(Ft))};static \u0275cmp=H({type:e,selectors:[["app-event-tab"]],inputs:{eventsMap:"eventsMap",traceData:"traceData"},outputs:{selectedEvent:"selectedEvent"},standalone:!1,features:[LA],decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"]],template:function(A,i){A&1&&(E(0,"div",0),L(1,p1,7,5,"div",1)(2,D1,3,0,"div"),d()),A&2&&(u(),_(i.eventsMap.size>0?1:-1),u(),_(i.eventsMap.size==0?2:-1))},dependencies:[Zt,Qi,Hv,Tv,_p,DE,Ja],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:#9aa0a6;font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:#80868b;font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: orange}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: #2b2b2f}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid #5f6368;cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:#1c1b1c}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function w1(e,t){e&1&&(E(0,"h2",0),M(1,"Events List"),d())}function y1(e,t){e&1&&(E(0,"h2",0),M(1,"Send Response To Pending Event"),d())}function M1(e,t){e&1&&(E(0,"h2",4),M(1,"Events List"),d())}function b1(e,t){e&1&&(E(0,"h2",4),M(1,"Send Response To Pending Event"),d())}function R1(e,t){if(e&1){let A=oA();E(0,"div")(1,"p"),M(2,"Name"),d(),E(3,"p"),M(4),d(),E(5,"p"),M(6,"Args"),d(),E(7,"p"),M(8),d(),E(9,"mat-form-field",5)(10,"mat-label"),M(11,"Response"),d(),E(12,"textarea",6),Tt("ngModelChange",function(o){K(A);let n=f();return ai(n.selectedEvent.response,o)||(n.selectedEvent.response=o),x(o)}),d()()()}if(e&2){let A=f();u(4),SA(A.selectedEvent.name),u(4),SA(A.argsToJson(A.selectedEvent.args)),u(4),Ht("ngModel",A.selectedEvent.response)}}function k1(e,t){if(e&1){let A=oA();E(0,"button",7),S("click",function(){K(A);let o=f();return x(o.sendResponse())}),M(1),d()}if(e&2){let A=f();N("disabled",A.sending),u(),hA(" ",A.sending?"Sending...":"Send"," ")}}var jI=class e{constructor(t,A,i){this.dialogRef=t;this.data=A;this.agentService=i;this.selectedEvent=A.event,this.appName=A.appName,this.userId=A.userId,this.sessionId=A.sessionId,this.functionCallEventId=A.functionCallEventId}selectedEvent=null;appName;userId;sessionId;functionCallEventId;sending=!1;argsToJson(t){return JSON.stringify(t)}sendResponse(){this.sending=!0;let t={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};this.selectedEvent.response&&(t.functionCallEventId=this.functionCallEventId,t.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.run(t).subscribe(A=>{this.sending=!1,this.dialogRef.close({response:A,events:[this.selectedEvent]})})}static \u0275fac=function(A){return new(A||e)(O(nt),O(St),O(qn))};static \u0275cmp=H({type:e,selectors:[["app-pending-event-dialog"]],standalone:!1,decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(L(0,w1,2,0,"h2",0)(1,y1,2,0,"h2",0)(2,M1,2,0,"h2",1)(3,b1,2,0,"h2",1),E(4,"mat-dialog-content"),L(5,R1,13,3,"div"),d(),E(6,"mat-dialog-actions"),L(7,k1,2,2,"button",2),E(8,"button",3),M(9,"Close"),d()()),A&2&&(_(i.selectedEvent?-1:0),u(),_(i.selectedEvent?1:-1),u(),N("ngIf",!i.selectedEvent),u(),N("ngIf",i.selectedEvent),u(2),_(i.selectedEvent?5:-1),u(2),_(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[Ka,bi,Zt,Qi,ko,XQ,Xn,It,$t,Si,Fi,Wn],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var Ns=class e{constructor(t,A){this.dialogRef=t;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||e)(O(nt),O(St))};static \u0275cmp=H({type:e,selectors:[["app-delete-session-dialog"]],standalone:!1,decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"h2",1),M(2),d(),E(3,"mat-dialog-content")(4,"p"),M(5),d()(),E(6,"mat-dialog-actions",2)(7,"button",3),S("click",function(){return i.onCancel()}),M(8),d(),E(9,"button",4),S("click",function(){return i.onConfirm()}),M(10),d()()()),A&2&&(u(2),SA(i.data.title),u(3),SA(i.data.message),u(3),SA(i.data.cancelButtonText),u(2),SA(i.data.confirmButtonText))},dependencies:[It,$t,Si,Fi],encapsulation:2})};function v1(e,t){if(e&1){let A=oA();E(0,"div",3),S("click",function(){let o=K(A).$implicit,n=f();return x(n.getSession(o.id))}),E(1,"div",4)(2,"div",5),M(3),d(),E(4,"div",6),M(5),d()()()}if(e&2){let A=t.$implicit,i=f();N("ngClass",A.id===i.sessionId?"session-item current":"session-item"),u(3),hA(" ",A.id," "),u(2),hA(" ",i.getDate(A)," ")}}var jg=class e{constructor(t,A){this.sessionService=t;this.dialog=A;this.refreshSessionsSubject.pipe(ue(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(i=>{i=i.sort((o,n)=>Number(n.lastUpdateTime)-Number(o.lastUpdateTime)),this.sessionList=i})}userId="";appName="";sessionId="";sessionSelected=new Z;sessionReloaded=new Z;sessionList=[];refreshSessionsSubject=new J;ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(t){this.sessionService.getSession(this.userId,this.appName,t).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(t){let A=t.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(t){return{id:t?.id??"",appName:t?.appName??"",userId:t?.userId??"",state:t?.state??[],events:t?.events??[]}}reloadSession(t){this.sessionService.getSession(this.userId,this.appName,t).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(t){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==t);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||e)(O(vo),O(Ft))};static \u0275cmp=H({type:e,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},standalone:!1,decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"div",1),ne(2,v1,6,3,"div",2,le),d()()),A&2&&(u(2),ge(i.sessionList))},dependencies:[Ci],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:#9aa0a6;font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:#303030;border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:#141414}.session-item.current[_ngcontent-%COMP%]{background-color:#004a77}.session-id[_ngcontent-%COMP%]{color:#e8eaed;font-family:monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var Gs=class e{constructor(t){this.http=t}apiServerDomain=ut.getApiServerBaseUrl();getLatestArtifact(t,A,i,o){let n=this.apiServerDomain+`/apps/${A}/users/${t}/sessions/${i}/artifacts/${o}`;return this.http.get(n)}getArtifactVersion(t,A,i,o,n){let g=this.apiServerDomain+`/apps/${A}/users/${t}/sessions/${i}/artifacts/${o}/versions/${n}`;return this.http.get(g)}static \u0275fac=function(A){return new(A||e)(eA(ht))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var N1={url:"",deserializer:e=>JSON.parse(e.data),serializer:e=>JSON.stringify(e)},G1="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",XI=class e extends Br{constructor(t,A){if(super(),this._socket=null,t instanceof EA)this.destination=A,this.source=t;else{let i=this._config=Object.assign({},N1);if(this._output=new J,typeof t=="string")i.url=t;else for(let o in t)t.hasOwnProperty(o)&&(i[o]=t[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new Ki}}lift(t){let A=new e(this._config,this.destination);return A.operator=t,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new Ki),this._output=new J}multiplex(t,A,i){let o=this;return new EA(n=>{try{o.next(t())}catch(r){n.error(r)}let g=o.subscribe({next:r=>{try{i(r)&&n.next(r)}catch(s){n.error(s)}},error:r=>n.error(r),complete:()=>n.complete()});return()=>{try{o.next(A())}catch(r){n.error(r)}g.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:t,protocol:A,url:i,binaryType:o}=this._config,n=this._output,g=null;try{g=A?new t(i,A):new t(i),this._socket=g,o&&(this._socket.binaryType=o)}catch(s){n.error(s);return}let r=new FA(()=>{this._socket=null,g&&g.readyState===1&&g.close()});g.onopen=s=>{let{_socket:a}=this;if(!a){g.close(),this._resetState();return}let{openObserver:c}=this._config;c&&c.next(s);let h=this.destination;this.destination=Ko.create(p=>{if(g.readyState===1)try{let{serializer:D}=this._config;g.send(D(p))}catch(D){this.destination.error(D)}},p=>{let{closingObserver:D}=this._config;D&&D.next(void 0),p&&p.code?g.close(p.code,p.reason):n.error(new TypeError(G1)),this._resetState()},()=>{let{closingObserver:p}=this._config;p&&p.next(void 0),g.close(),this._resetState()}),h&&h instanceof Ki&&r.add(h.subscribe(this.destination))},g.onerror=s=>{this._resetState(),n.error(s)},g.onclose=s=>{g===this._socket&&this._resetState();let{closeObserver:a}=this._config;a&&a.next(s),s.wasClean?n.complete():n.error(s)},g.onmessage=s=>{try{let{deserializer:a}=this._config;n.next(a(s))}catch(a){n.error(a)}}}_subscribe(t){let{source:A}=this;return A?A.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),t)}unsubscribe(){let{_socket:t}=this;t&&(t.readyState===1||t.readyState===0)&&t.close(),this._resetState(),super.unsubscribe()}};var So=class e{socket$;messages$=new PA("");audioContext=new AudioContext({sampleRate:22e3});audioBuffer=[];audioIntervalId=null;lastAudioTime=0;closeReasonSubject=new J;constructor(){}connect(t){this.socket$=new XI({url:t,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.processBufferedAudio(),250)}sendMessage(t){if(t.blob.data=this.arrayBufferToBase64(t.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(t)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(t){let A="",i=new Uint8Array(t),o=i.byteLength;for(let n=0;no+n.length,0),A=new Uint8Array(t),i=0;for(let o of this.audioBuffer)A.set(o,i),i+=o.length;this.playPCM(A),this.audioBuffer=[]}base64ToUint8Array(t){let A=atob(this.urlSafeBase64ToBase64(t)),i=A.length,o=new Uint8Array(i);for(let n=0;n=32768&&(s-=65536),A[r]=s/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let o=this.audioContext.createBufferSource();o.buffer=i,o.connect(this.audioContext.destination);let n=this.audioContext.currentTime,g=Math.max(this.lastAudioTime,n);o.start(g),this.lastAudioTime=g+i.duration}urlSafeBase64ToBase64(t){let A=t.replace(/_/g,"/").replace(/-/g,"+");for(;A.length%4!==0;)A+="=";return A}emitWsCloseReason(t){this.closeReasonSubject.next(t)}onCloseReason(){return this.closeReasonSubject.asObservable()}static \u0275fac=function(A){return new(A||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var _s=class e{constructor(t){this.wsService=t}mediaRecorder;stream;audioContext;source;processor;audioBuffer=[];audioIntervalId=null;startRecording(){return Ze(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule("./assets/audio-processor.js"),this.source=this.audioContext.createMediaStreamSource(this.stream);let t=new AudioWorkletNode(this.audioContext,"audio-processor");t.port.onmessage=A=>{let i=A.data,o=this.float32ToPCM(i);this.audioBuffer.push(o)},this.source.connect(t),t.connect(this.audioContext.destination),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(t){console.error("Error accessing microphone:",t)}})}sendBufferedAudio(){if(this.audioBuffer.length===0)return;let t=this.audioBuffer.reduce((n,g)=>n+g.length,0),A=new Uint8Array(t),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;let o={blob:{mime_type:"audio/pcm",data:A}};this.wsService.sendMessage(o),this.audioBuffer=[]}stopRecording(){this.processor&&this.processor.disconnect(),this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(t=>t.stop()),this.audioIntervalId&&(clearInterval(this.audioIntervalId),this.audioIntervalId=null)}float32ToPCM(t){let A=new ArrayBuffer(t.length*2),i=new DataView(A);for(let o=0;othis.captureAndSendFrame(),1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}captureAndSendFrame(){return Ze(this,null,function*(){try{let t=yield this.captureFrame(),i={blob:{mime_type:"image/jpeg",data:yield this.blobToUint8Array(t)}};this.wsService.sendMessage(i)}catch(t){console.error("Error capturing frame:",t)}})}blobToUint8Array(t){return Ze(this,null,function*(){let A=yield t.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return Ze(this,null,function*(){return new Promise((t,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let o=i.getContext("2d");if(!o){A(new Error("Canvas context not supported"));return}o.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(n=>{n?t(n):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}sendBufferedVideo(){if(this.videoBuffer.length===0)return;let t=this.videoBuffer.reduce((n,g)=>n+g.length,0),A=new Uint8Array(t),i=0;for(let n of this.videoBuffer)A.set(n,i),i+=n.length;let o={blob:{mime_type:"image/jpeg",data:A}};this.wsService.sendMessage(o),this.videoBuffer=[]}stopRecording(t){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),clearInterval(this.videoIntervalId),this.clearVideoElement(t)}clearVideoElement(t){let A=t.nativeElement.querySelector("video");A&&this.renderer.removeChild(t.nativeElement,A)}static \u0275fac=function(A){return new(A||e)(eA(So),eA(dt))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var $n=class e{constructor(t){this.http=t}apiServerDomain=ut.getApiServerBaseUrl();getEventTrace(t){let A=this.apiServerDomain+`/debug/trace/${t}`;return this.http.get(A)}getTrace(t){let A=this.apiServerDomain+`/debug/trace/session/${t}`;return this.http.get(A)}getEvent(t,A,i,o){let n=this.apiServerDomain+`/apps/${A}/users/${t}/sessions/${i}/events/${o}/graph`;return this.http.get(n)}static \u0275fac=function(A){return new(A||e)(eA(ht))};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var Fo=class e{selectedTraceRowSource=new PA(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new PA(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndiciesSource=new PA([]);hoveredMessageIndicies$=this.hoveredMessageIndiciesSource.asObservable();messagesSource=new PA([]);messages$=this.messagesSource.asObservable();selectedRow(t){this.selectedTraceRowSource.next(t)}setEventData(t){this.eventDataSource.next(t)}setMessages(t){this.messagesSource.next(t)}setHoveredMessages(t,A){if(!t){this.hoveredMessageIndiciesSource.next([]);return}let i=t.attributes,o=i&&i["gcp.vertex.agent.event_id"],n=0,g=[];for(let r of this.messagesSource.value){if(r.role=="user"){n++;continue}if(this.eventDataSource.value?.get(r.eventId).invocationId!=A){n++;continue}if(o)if(i["gcp.vertex.agent.event_id"]==r.eventId){g.push(n),n++;continue}else{n++;continue}else{g.push(n),n++;continue}}this.hoveredMessageIndiciesSource.next(g)}static \u0275fac=function(A){return new(A||e)};static \u0275prov=G({token:e,factory:e.\u0275fac,providedIn:"root"})};var K1=["*"];var x1=new b("MAT_CARD_CONFIG"),Wv=(()=>{class e{appearance;constructor(){let A=C(x1,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,o){i&2&&tA("mat-mdc-card-outlined",o.appearance==="outlined")("mdc-card--outlined",o.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:K1,decls:1,vars:0,template:function(i,o){i&1&&(KA(),rA(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return e})();var zv=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,QA]})}return e})();var Y1=e=>["segment",e],J1=(e,t)=>({"segment-main":!0,expandable:e,expanded:t});function H1(e,t){e&1&&Y(0,"div",9)}function T1(e,t){if(e&1&&(E(0,"span",10),M(1),d()),e&2){let A=f().$implicit;u(),SA(A.description)}}function O1(e,t){if(e&1&&(E(0,"section",11),Y(1,"ngx-json-viewer",12),d()),e&2){let A=f().$implicit,i=f();u(),N("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function P1(e,t){if(e&1){let A=oA();E(0,"section",2)(1,"section",3),S("click",function(){let o=K(A).$implicit,n=f();return x(n.toggle(o))}),L(2,H1,1,0,"div",4),E(3,"span",5),M(4),d(),E(5,"span",6),M(6,": "),d(),L(7,T1,2,1,"span",7),d(),L(8,O1,2,4,"section",8),d()}if(e&2){let A=t.$implicit,i=f();N("ngClass",Ot(6,Y1,"segment-type-"+A.type)),u(),N("ngClass",Fn(8,J1,i.isExpandable(A),A.expanded)),u(),N("ngIf",i.isExpandable(A)),u(2),SA(A.key),u(3),N("ngIf",!A.expanded||!i.isExpandable(A)),u(),N("ngIf",A.expanded&&i.isExpandable(A))}}var Ks=(()=>{class e{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let o={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof o.value){case"number":{o.type="number";break}case"boolean":{o.type="boolean";break}case"function":{o.type="function";break}case"string":{o.type="string",o.description='"'+o.value+'"';break}case"undefined":{o.type="undefined",o.description="undefined";break}case"object":{o.value===null?(o.type="null",o.description="null"):Array.isArray(o.value)?(o.type="array",o.description="Array["+o.value.length+"] "+JSON.stringify(o.value)):o.value instanceof Date?o.type="date":(o.type="object",o.description="Object "+JSON.stringify(o.value));break}}return o}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function o(n,g){let r,s;return typeof n=="object"&&n!==null&&!(n instanceof Boolean)&&!(n instanceof Date)&&!(n instanceof Number)&&!(n instanceof RegExp)&&!(n instanceof String)?(r=i.get(n),r!==void 0?{$ref:r}:(i.set(n,g),Array.isArray(n)?(s=[],n.forEach(function(a,c){s[c]=o(a,g+"["+c+"]")})):(s={},Object.keys(n).forEach(function(a){s[a]=o(n[a],g+"["+JSON.stringify(a)+"]")})),s)):n}(A,"$")}}return e.\u0275fac=function(A){return new(A||e)},e.\u0275cmp=H({type:e,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[LA],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(E(0,"section",0),L(1,P1,9,11,"section",1),d()),A&2&&(u(),N("ngForOf",i.segments))},dependencies:[Ci,pc,Ka,e],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),e})(),jv=(()=>{class e{}return e.\u0275fac=function(A){return new(A||e)},e.\u0275mod=$({type:e}),e.\u0275inj=X({imports:[Xo]}),e})();var Xv=["*"],Z1=["content"],q1=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],V1=["mat-drawer","mat-drawer-content","*"];function W1(e,t){if(e&1){let A=oA();E(0,"div",1),S("click",function(){K(A);let o=f();return x(o._onBackdropClicked())}),d()}if(e&2){let A=f();tA("mat-drawer-shown",A._isShowingBackdrop())}}function z1(e,t){e&1&&(E(0,"mat-drawer-content"),rA(1,2),d())}var j1=new b("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:X1}),$v=new b("MAT_DRAWER_CONTAINER");function X1(){return!1}var Up=(()=>{class e extends gn{_platform=C(JA);_changeDetectorRef=C(DA);_container=C(Jp);constructor(){let A=C(z),i=C(On),o=C(AA);super(A,i,o)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,o){i&2&&(De("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px"),tA("mat-drawer-content-hidden",o._shouldBeHidden()))},features:[pA([{provide:gn,useExisting:e}]),lA],ngContentSelectors:Xv,decls:1,vars:0,template:function(i,o){i&1&&(KA(),rA(0))},encapsulation:2,changeDetection:0})}return e})(),Yp=(()=>{class e{_elementRef=C(z);_focusTrapFactory=C(xQ);_focusMonitor=C(at);_platform=C(JA);_ngZone=C(AA);_renderer=C(ie);_interactivityChecker=C(vI);_doc=C(uA,{optional:!0});_container=C($v,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Ge(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Ge(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Ge(A))}_opened=!1;_openedVia;_animationStarted=new J;_animationEnd=new J;openedChange=new Z(!0);_openedStream=this.openedChange.pipe(MA(A=>A),CA(()=>{}));openedStart=this._animationStarted.pipe(MA(()=>this.opened),dr(void 0));_closedStream=this.openedChange.pipe(MA(A=>!A),CA(()=>{}));closedStart=this._animationStarted.pipe(MA(()=>!this.opened),dr(void 0));_destroyed=new J;onPositionChanged=new Z;_content;_modeChanged=new J;_injector=C(RA);_changeDetectorRef=C(DA);constructor(){this.openedChange.pipe(bA(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;oa(A,"keydown").pipe(MA(i=>i.keyCode===27&&!this.disableClose&&!Te(i)),bA(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let o=()=>{n(),g(),A.removeAttribute("tabindex")},n=this._renderer.listen(A,"blur",o),g=this._renderer.listen(A,"mousedown",o)})),A.focus(i)}_focusByCssSelector(A,i){let o=this._elementRef.nativeElement.querySelector(A);o&&this._forceFocus(o,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Le(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let o=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),o}_setOpen(A,i,o){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(o),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(n=>{this.openedChange.pipe(he(1)).subscribe(g=>n(g?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,o=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),o.insertBefore(this._anchor,i)),o.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-drawer"]],viewQuery:function(i,o){if(i&1&&IA(Z1,5),i&2){let n;V(n=W())&&(o._content=n.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,o){i&2&&(sA("align",null),De("visibility",!o._container&&!o.opened?"hidden":null),tA("mat-drawer-end",o.position==="end")("mat-drawer-over",o.mode==="over")("mat-drawer-push",o.mode==="push")("mat-drawer-side",o.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:Xv,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,o){i&1&&(KA(),E(0,"div",1,0),rA(2),d())},dependencies:[gn],encapsulation:2,changeDetection:0})}return e})(),Jp=(()=>{class e{_dir=C(Se,{optional:!0});_element=C(z);_ngZone=C(AA);_changeDetectorRef=C(DA);_animationMode=C(jA,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new yi;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Ge(A)}_autosize=C(j1);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Ge(A)}_backdropOverride;backdropClick=new Z;_start;_end;_left;_right;_destroyed=new J;_doCheckSubject=new J;_contentMargins={left:null,right:null};_contentMarginChanges=new J;get scrollable(){return this._userContent||this._content}_injector=C(RA);constructor(){let A=C(JA),i=C(Ri);this._dir?.change.pipe(bA(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(bA(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(be(this._allDrawers),bA(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(be(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(xi(10),bA(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let o=this._left._getWidth();A+=o,i-=o}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let o=this._right._getWidth();i+=o,A-=o}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(bA(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(bA(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(bA(this._drawers.changes)).subscribe(()=>{Le({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(bA(Me(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,o="mat-drawer-container-has-open";A?i.add(o):i.remove(o)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-drawer-container"]],contentQueries:function(i,o,n){if(i&1&&(qA(n,Up,5),qA(n,Yp,5)),i&2){let g;V(g=W())&&(o._content=g.first),V(g=W())&&(o._allDrawers=g)}},viewQuery:function(i,o){if(i&1&&IA(Up,5),i&2){let n;V(n=W())&&(o._userContent=n.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,o){i&2&&tA("mat-drawer-container-explicit-backdrop",o._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[pA([{provide:$v,useExisting:e}])],ngContentSelectors:V1,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){i&1&&(KA(q1),L(0,W1,1,2,"div",0),rA(1),rA(2,1),L(3,z1,2,0,"mat-drawer-content")),i&2&&(_(o.hasBackdrop?0:-1),u(3),_(o._content?-1:3))},dependencies:[Up],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return e})();var AS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,nn,nn,QA]})}return e})();var Pp=["*"];function AZ(e,t){e&1&&rA(0)}var eZ=["tabListContainer"],tZ=["tabList"],iZ=["tabListInner"],oZ=["nextPaginator"],nZ=["previousPaginator"],gZ=e=>({animationDuration:e}),rZ=(e,t)=>({value:e,params:t});function sZ(e,t){}var aZ=["tabBodyWrapper"],IZ=["tabHeader"];function CZ(e,t){}function BZ(e,t){if(e&1&&L(0,CZ,0,0,"ng-template",12),e&2){let A=f().$implicit;N("cdkPortalOutlet",A.templateLabel)}}function cZ(e,t){if(e&1&&M(0),e&2){let A=f().$implicit;SA(A.textLabel)}}function QZ(e,t){if(e&1){let A=oA();E(0,"div",7,2),S("click",function(){let o=K(A),n=o.$implicit,g=o.$index,r=f(),s=He(1);return x(r._handleClick(n,s,g))})("cdkFocusChange",function(o){let n=K(A).$index,g=f();return x(g._tabFocusChanged(o,n))}),Y(2,"span",8)(3,"div",9),E(4,"span",10)(5,"span",11),L(6,BZ,1,1,null,12)(7,cZ,1,1),d()()()}if(e&2){let A=t.$implicit,i=t.$index,o=He(1),n=f();Ke(A.labelClass),tA("mdc-tab--active",n.selectedIndex===i),N("id",n._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",n.fitInkBarToContent),sA("tabIndex",n._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",n._tabs.length)("aria-controls",n._getTabContentId(i))("aria-selected",n.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),u(3),N("matRippleTrigger",o)("matRippleDisabled",A.disabled||n.disableRipple),u(3),_(A.templateLabel?6:7)}}function EZ(e,t){e&1&&rA(0)}function lZ(e,t){if(e&1){let A=oA();E(0,"mat-tab-body",13),S("_onCentered",function(){K(A);let o=f();return x(o._removeTabBodyWrapperHeight())})("_onCentering",function(o){K(A);let n=f();return x(n._setTabBodyWrapperHeight(o))}),d()}if(e&2){let A=t.$implicit,i=t.$index,o=f();Ke(A.bodyClass),tA("mat-mdc-tab-body-active",o.selectedIndex===i),N("id",o._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),sA("tabindex",o.contentTabIndex!=null&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))("aria-hidden",o.selectedIndex!==i)}}var dZ=new b("MatTabContent"),hZ=(()=>{class e{template=C(ae);constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matTabContent",""]],features:[pA([{provide:dZ,useExisting:e}])]})}return e})(),uZ=new b("MatTabLabel"),iS=new b("MAT_TAB"),Zp=(()=>{class e extends ok{_closestTab=C(iS,{optional:!0});static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[pA([{provide:uZ,useExisting:e}]),lA]})}return e})(),oS=new b("MAT_TAB_GROUP"),$I=(()=>{class e{_viewContainerRef=C(Ee);_closestTabGroup=C(oS,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new J;position=null;origin=null;isActive=!1;constructor(){C(Be).load(ze)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new zt(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-tab"]],contentQueries:function(i,o,n){if(i&1&&(qA(n,Zp,5),qA(n,hZ,7,ae)),i&2){let g;V(g=W())&&(o.templateLabel=g.first),V(g=W())&&(o._explicitContent=g.first)}},viewQuery:function(i,o){if(i&1&&IA(ae,7),i&2){let n;V(n=W())&&(o._implicitContent=n.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",j],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[pA([{provide:iS,useExisting:e}]),LA],ngContentSelectors:Pp,decls:1,vars:0,template:function(i,o){i&1&&(KA(),L(0,AZ,1,0,"ng-template"))},encapsulation:2})}return e})(),Hp="mdc-tab-indicator--active",eS="mdc-tab-indicator--no-transition",Tp=class{_items;_currentItem;constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar()),this._currentItem=void 0}alignToElement(t){let A=this._items.find(o=>o.elementRef.nativeElement===t),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let o=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(o),this._currentItem=A}}},mZ=(()=>{class e{_elementRef=C(z);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(Hp);return}let o=i.getBoundingClientRect(),n=A.width/o.width,g=A.left-o.left;i.classList.add(eS),this._inkBarContentElement.style.setProperty("transform",`translateX(${g}px) scaleX(${n})`),i.getBoundingClientRect(),i.classList.remove(eS),i.classList.add(Hp),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Hp)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),o=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",o.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",j]}})}return e})();var nS=(()=>{class e extends mZ{elementRef=C(z);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275dir=T({type:e,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){i&2&&(sA("aria-disabled",!!o.disabled),tA("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:[2,"disabled","disabled",j]},features:[lA]})}return e})(),tS={passive:!0},pZ=650,DZ=100,fZ=(()=>{class e{_elementRef=C(z);_changeDetectorRef=C(DA);_viewportRuler=C(Ri);_dir=C(Se,{optional:!0});_ngZone=C(AA);_platform=C(JA);_sharedResizeObserver=C(zQ);_injector=C(RA);_renderer=C(ie);_animationMode=C(jA,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new J;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new J;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new Z;indexFocused=new Z;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(fm(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),tS),fm(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),tS))}ngAfterContentInit(){let A=this._dir?this._dir.change:gA("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(xi(32),bA(this._destroyed)),o=this._viewportRuler.change(150).pipe(bA(this._destroyed)),n=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new bI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Le(n,{injector:this._injector}),Me(A,o,i,this._items.changes,this._itemsResized()).pipe(bA(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),n()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(g=>{this.indexFocused.emit(g),this._setTabFocus(g)})}_itemsResized(){return typeof ResizeObserver!="function"?Ye:this._items.changes.pipe(be(this._items),ue(A=>new EA(i=>this._ngZone.runOutsideAngular(()=>{let o=new ResizeObserver(n=>i.next(n));return A.forEach(n=>o.observe(n.elementRef.nativeElement)),()=>{o.disconnect()}}))),rg(1),MA(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!Te(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,o=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+o)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:n,offsetWidth:g}=i.elementRef.nativeElement,r,s;this._getLayoutDirection()=="ltr"?(r=n,s=r+g):(s=this._tabListInner.nativeElement.offsetWidth-n,r=s-g);let a=this.scrollDistance,c=this.scrollDistance+o;rc&&(this.scrollDistance+=Math.min(s-c,r-a))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,o=A-i>=5;o||(this.scrollDistance=0),o!==this._showPaginationControls&&(this._showPaginationControls=o,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),gg(pZ,DZ).pipe(bA(Me(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:o,distance:n}=this._scrollHeader(A);(n===0||n>=o)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,inputs:{disablePagination:[2,"disablePagination","disablePagination",j],selectedIndex:[2,"selectedIndex","selectedIndex",Ae]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return e})(),wZ=(()=>{class e extends fZ{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new Tp(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(o){return(A||(A=$A(e)))(o||e)}})();static \u0275cmp=H({type:e,selectors:[["mat-tab-header"]],contentQueries:function(i,o,n){if(i&1&&qA(n,nS,4),i&2){let g;V(g=W())&&(o._items=g)}},viewQuery:function(i,o){if(i&1&&(IA(eZ,7),IA(tZ,7),IA(iZ,7),IA(oZ,5),IA(nZ,5)),i&2){let n;V(n=W())&&(o._tabListContainer=n.first),V(n=W())&&(o._tabList=n.first),V(n=W())&&(o._tabListInner=n.first),V(n=W())&&(o._nextPaginator=n.first),V(n=W())&&(o._previousPaginator=n.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){i&2&&tA("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl",o._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",j]},features:[lA],ngContentSelectors:Pp,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,o){if(i&1){let n=oA();KA(),E(0,"div",5,0),S("click",function(){return K(n),x(o._handlePaginatorClick("before"))})("mousedown",function(r){return K(n),x(o._handlePaginatorPress("before",r))})("touchend",function(){return K(n),x(o._stopInterval())}),Y(2,"div",6),d(),E(3,"div",7,1),S("keydown",function(r){return K(n),x(o._handleKeydown(r))}),E(5,"div",8,2),S("cdkObserveContent",function(){return K(n),x(o._onContentChanges())}),E(7,"div",9,3),rA(9),d()()(),E(10,"div",10,4),S("mousedown",function(r){return K(n),x(o._handlePaginatorPress("after",r))})("click",function(){return K(n),x(o._handlePaginatorClick("after"))})("touchend",function(){return K(n),x(o._stopInterval())}),Y(12,"div",6),d()}i&2&&(tA("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),N("matRippleDisabled",o._disableScrollBefore||o.disableRipple),u(3),tA("_mat-animation-noopable",o._animationMode==="NoopAnimations"),u(2),sA("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby||null),u(5),tA("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),N("matRippleDisabled",o._disableScrollAfter||o.disableRipple))},dependencies:[vt,bQ],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return e})(),yZ=new b("MAT_TABS_CONFIG"),MZ={translateTab:Ro("translateTab",[vi("center, void, left-origin-center, right-origin-center",Pe({transform:"none",visibility:"visible"})),vi("left",Pe({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),vi("right",Pe({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Xt("* => left, * => right, left => center, right => center",mi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Xt("void => left-origin-center",[Pe({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),mi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Xt("void => right-origin-center",[Pe({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),mi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},bZ=(()=>{class e extends jt{_host=C(gS);_centeringSub=FA.EMPTY;_leavingSub=FA.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(be(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["","matTabBodyHost",""]],features:[lA]})}return e})(),gS=(()=>{class e{_elementRef=C(z);_dir=C(Se,{optional:!0});_positionIndex;_dirChangeSubscription=FA.EMPTY;_position;_translateTabComplete=new J;_onCentering=new Z;_beforeCentering=new Z;_afterLeavingCenter=new Z;_onCentered=new Z(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=C(DA);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(i&1&&IA(jt,5),i&2){let n;V(n=W())&&(o._portalHost=n.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,o){if(i&1){let n=oA();E(0,"div",1,0),S("@translateTab.start",function(r){return K(n),x(o._onTranslateTabStarted(r))})("@translateTab.done",function(r){return K(n),x(o._translateTabComplete.next(r))}),L(2,sZ,0,0,"ng-template",2),d()}i&2&&N("@translateTab",Fn(3,rZ,o._position,Ot(1,gZ,o.animationDuration)))},dependencies:[bZ,gn],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[MZ.translateTab]}})}return e})(),RZ=!0,fE=(()=>{class e{_elementRef=C(z);_changeDetectorRef=C(DA);_animationMode=C(jA,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new yi;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=FA.EMPTY;_tabLabelSubscription=FA.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!RZ)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new Z;focusChange=new Z;animationDone=new Z;selectedTabChange=new Z(!0);_groupId;_isServer=!C(JA).isBrowser;constructor(){let A=C(yZ,{optional:!0});this._groupId=C(oe).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,n)=>o.isActive=n===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),o;for(let n=0;n{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(be(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new Op;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Me(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,o){i.focusIndex=o,A.disabled||(this.selectedIndex=o)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-tab-group"]],contentQueries:function(i,o,n){if(i&1&&qA(n,$I,5),i&2){let g;V(g=W())&&(o._allTabs=g)}},viewQuery:function(i,o){if(i&1&&(IA(aZ,5),IA(IZ,5)),i&2){let n;V(n=W())&&(o._tabBodyWrapper=n.first),V(n=W())&&(o._tabHeader=n.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,o){i&2&&(sA("mat-align-tabs",o.alignTabs),Ke("mat-"+(o.color||"primary")),De("--mat-tab-animation-duration",o.animationDuration),tA("mat-mdc-tab-group-dynamic-height",o.dynamicHeight)("mat-mdc-tab-group-inverted-header",o.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",o.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",j],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",j],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",j],selectedIndex:[2,"selectedIndex","selectedIndex",Ae],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",Ae],disablePagination:[2,"disablePagination","disablePagination",j],disableRipple:[2,"disableRipple","disableRipple",j],preserveContent:[2,"preserveContent","preserveContent",j],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[pA([{provide:oS,useExisting:e}])],ngContentSelectors:Pp,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,o){if(i&1){let n=oA();KA(),E(0,"mat-tab-header",3,0),S("indexFocused",function(r){return K(n),x(o._focusChanged(r))})("selectFocusedIndex",function(r){return K(n),x(o.selectedIndex=r)}),ne(2,QZ,8,17,"div",4,le),d(),L(4,EZ,1,0),E(5,"div",5,1),ne(7,lZ,1,13,"mat-tab-body",6,le),d()}i&2&&(N("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination)("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby),u(2),ge(o._tabs),u(2),_(o._isServer?4:-1),u(),tA("_mat-animation-noopable",o._animationMode==="NoopAnimations"),u(2),ge(o._tabs))},dependencies:[wZ,nS,TR,vt,jt,gS],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return e})(),Op=class{index;tab};var rS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,QA]})}return e})();function kZ(e,t){e&1&&Y(0,"div",2)}var vZ=new b("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var IS=(()=>{class e{_elementRef=C(z);_ngZone=C(AA);_changeDetectorRef=C(DA);_renderer=C(ie);_cleanupTransitionEnd;_animationMode=C(jA,{optional:!0});constructor(){let A=C(vZ,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=aS(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=aS(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new Z;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,o){i&2&&(sA("aria-valuenow",o._isIndeterminate()?null:o.value)("mode",o.mode),Ke("mat-"+o.color),tA("_mat-animation-noopable",o._isNoopAnimation)("mdc-linear-progress--animation-ready",!o._isNoopAnimation)("mdc-linear-progress--indeterminate",o._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",Ae],bufferValue:[2,"bufferValue","bufferValue",Ae],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,o){i&1&&(E(0,"div",0),Y(1,"div",1),L(2,kZ,1,0,"div",2),d(),E(3,"div",3),Y(4,"span",4),d(),E(5,"div",5),Y(6,"span",4),d()),i&2&&(u(),De("flex-basis",o._getBufferBarFlexBasis()),u(),_(o.mode==="buffer"?2:-1),u(),De("transform",o._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return e})();function aS(e,t=0,A=100){return Math.max(t,Math.min(A,e))}var CS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA]})}return e})();function zp(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var $g=zp();function dS(e){$g=e}var tC={exec:()=>null};function ce(e,t=""){let A=typeof e=="string"?e:e.source,i={replace:(o,n)=>{let g=typeof n=="string"?n:n.source;return g=g.replace(Nt.caret,"$1"),A=A.replace(o,g),i},getRegex:()=>new RegExp(A,t)};return i}var Nt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},FZ=/^(?:[ \t]*(?:\n|$))+/,NZ=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,GZ=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,iC=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,_Z=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,jp=/(?:[*+-]|\d{1,9}[.)])/,hS=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,uS=ce(hS).replace(/bull/g,jp).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),LZ=ce(hS).replace(/bull/g,jp).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Xp=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,KZ=/^[^\n]+/,$p=/(?!\s*\])(?:\\.|[^\[\]\\])+/,xZ=ce(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",$p).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),UZ=ce(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,jp).getRegex(),RE="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",AD=/|$))/,YZ=ce("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",AD).replace("tag",RE).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),mS=ce(Xp).replace("hr",iC).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",RE).getRegex(),JZ=ce(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",mS).getRegex(),eD={blockquote:JZ,code:NZ,def:xZ,fences:GZ,heading:_Z,hr:iC,html:YZ,lheading:uS,list:UZ,newline:FZ,paragraph:mS,table:tC,text:KZ},BS=ce("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",iC).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",RE).getRegex(),HZ=fA(v({},eD),{lheading:LZ,table:BS,paragraph:ce(Xp).replace("hr",iC).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",BS).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",RE).getRegex()}),TZ=fA(v({},eD),{html:ce(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",AD).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:tC,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ce(Xp).replace("hr",iC).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",uS).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),OZ=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,PZ=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,pS=/^( {2,}|\\)\n(?!\s*$)/,ZZ=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,wS=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,jZ=ce(wS,"u").replace(/punct/g,kE).getRegex(),XZ=ce(wS,"u").replace(/punct/g,fS).getRegex(),yS="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",$Z=ce(yS,"gu").replace(/notPunctSpace/g,DS).replace(/punctSpace/g,tD).replace(/punct/g,kE).getRegex(),Aq=ce(yS,"gu").replace(/notPunctSpace/g,WZ).replace(/punctSpace/g,VZ).replace(/punct/g,fS).getRegex(),eq=ce("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,DS).replace(/punctSpace/g,tD).replace(/punct/g,kE).getRegex(),tq=ce(/\\(punct)/,"gu").replace(/punct/g,kE).getRegex(),iq=ce(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),oq=ce(AD).replace("(?:-->|$)","-->").getRegex(),nq=ce("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",oq).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ME=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,gq=ce(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",ME).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),MS=ce(/^!?\[(label)\]\[(ref)\]/).replace("label",ME).replace("ref",$p).getRegex(),bS=ce(/^!?\[(ref)\](?:\[\])?/).replace("ref",$p).getRegex(),rq=ce("reflink|nolink(?!\\()","g").replace("reflink",MS).replace("nolink",bS).getRegex(),iD={_backpedal:tC,anyPunctuation:tq,autolink:iq,blockSkip:zZ,br:pS,code:PZ,del:tC,emStrongLDelim:jZ,emStrongRDelimAst:$Z,emStrongRDelimUnd:eq,escape:OZ,link:gq,nolink:bS,punctuation:qZ,reflink:MS,reflinkSearch:rq,tag:nq,text:ZZ,url:tC},sq=fA(v({},iD),{link:ce(/^!?\[(label)\]\((.*?)\)/).replace("label",ME).getRegex(),reflink:ce(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ME).getRegex()}),qp=fA(v({},iD),{emStrongRDelimAst:Aq,emStrongLDelim:XZ,url:ce(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},cS=e=>Iq[e];function No(e,t){if(t){if(Nt.escapeTest.test(e))return e.replace(Nt.escapeReplace,cS)}else if(Nt.escapeTestNoEncode.test(e))return e.replace(Nt.escapeReplaceNoEncode,cS);return e}function QS(e){try{e=encodeURI(e).replace(Nt.percentDecode,"%")}catch{return null}return e}function ES(e,t){let A=e.replace(Nt.findPipe,(n,g,r)=>{let s=!1,a=g;for(;--a>=0&&r[a]==="\\";)s=!s;return s?"|":" |"}),i=A.split(Nt.splitPipe),o=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length0?-2:-1}function lS(e,t,A,i,o){let n=t.href,g=t.title||null,r=e[1].replace(o.other.outputLinkReplace,"$1");i.state.inLink=!0;let s={type:e[0].charAt(0)==="!"?"image":"link",raw:A,href:n,title:g,text:r,tokens:i.inlineTokens(r)};return i.state.inLink=!1,s}function Bq(e,t,A){let i=e.match(A.other.indentCodeCompensation);if(i===null)return t;let o=i[1];return t.split(` -`).map(n=>{let g=n.match(A.other.beginningSpace);if(g===null)return n;let[r]=g;return r.length>=o.length?n.slice(o.length):n}).join(` -`)}var bE=class{options;rules;lexer;constructor(e){this.options=e||$g}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let A=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?A:eC(A,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let A=t[0],i=Bq(A,t[3]||"",this.rules);return{type:"code",raw:A,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let A=t[2].trim();if(this.rules.other.endingHash.test(A)){let i=eC(A,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(A=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:A,tokens:this.lexer.inline(A)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:eC(t[0],` -`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let A=eC(t[0],` -`).split(` -`),i="",o="",n=[];for(;A.length>0;){let g=!1,r=[],s;for(s=0;s1,o={type:"list",raw:"",ordered:i,start:i?+A.slice(0,-1):"",loose:!1,items:[]};A=i?`\\d{1,9}\\${A.slice(-1)}`:`\\${A}`,this.options.pedantic&&(A=i?A:"[*+-]");let n=this.rules.other.listItemRegex(A),g=!1;for(;e;){let s=!1,a="",c="";if(!(t=n.exec(e))||this.rules.block.hr.test(e))break;a=t[0],e=e.substring(a.length);let h=t[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,iA=>" ".repeat(3*iA.length)),p=e.split(` -`,1)[0],D=!h.trim(),w=0;if(this.options.pedantic?(w=2,c=h.trimStart()):D?w=t[1].length+1:(w=t[2].search(this.rules.other.nonSpaceChar),w=w>4?1:w,c=h.slice(w),w+=t[1].length),D&&this.rules.other.blankLine.test(p)&&(a+=p+` -`,e=e.substring(p.length+1),s=!0),!s){let iA=this.rules.other.nextBulletRegex(w),kA=this.rules.other.hrRegex(w),NA=this.rules.other.fencesBeginRegex(w),fe=this.rules.other.headingBeginRegex(w),ee=this.rules.other.htmlBeginRegex(w);for(;e;){let je=e.split(` -`,1)[0],se;if(p=je,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),se=p):se=p.replace(this.rules.other.tabCharGlobal," "),NA.test(p)||fe.test(p)||ee.test(p)||iA.test(p)||kA.test(p))break;if(se.search(this.rules.other.nonSpaceChar)>=w||!p.trim())c+=` -`+se.slice(w);else{if(D||h.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||NA.test(h)||fe.test(h)||kA.test(h))break;c+=` -`+p}!D&&!p.trim()&&(D=!0),a+=je+` -`,e=e.substring(je.length+1),h=se.slice(w)}}o.loose||(g?o.loose=!0:this.rules.other.doubleBlankLine.test(a)&&(g=!0));let R=null,q;this.options.gfm&&(R=this.rules.other.listIsTask.exec(c),R&&(q=R[0]!=="[ ] ",c=c.replace(this.rules.other.listReplaceTask,""))),o.items.push({type:"list_item",raw:a,task:!!R,checked:q,loose:!1,text:c,tokens:[]}),o.raw+=a}let r=o.items.at(-1);if(r)r.raw=r.raw.trimEnd(),r.text=r.text.trimEnd();else return;o.raw=o.raw.trimEnd();for(let s=0;sh.type==="space"),c=a.length>0&&a.some(h=>this.rules.other.anyLine.test(h.raw));o.loose=c}if(o.loose)for(let s=0;s({text:r,tokens:this.lexer.inline(r),header:!1,align:n.align[s]})));return n}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let A=t[1].charAt(t[1].length-1)===` -`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:A,tokens:this.lexer.inline(A)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let A=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(A)){if(!this.rules.other.endAngleBracket.test(A))return;let n=eC(A.slice(0,-1),"\\");if((A.length-n.length)%2===0)return}else{let n=Cq(t[2],"()");if(n===-2)return;if(n>-1){let r=(t[0].indexOf("!")===0?5:4)+t[1].length+n;t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let i=t[2],o="";if(this.options.pedantic){let n=this.rules.other.pedanticHrefTitle.exec(i);n&&(i=n[1],o=n[3])}else o=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(A)?i=i.slice(1):i=i.slice(1,-1)),lS(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:o&&o.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let A;if((A=this.rules.inline.reflink.exec(e))||(A=this.rules.inline.nolink.exec(e))){let i=(A[2]||A[1]).replace(this.rules.other.multipleSpaceGlobal," "),o=t[i.toLowerCase()];if(!o){let n=A[0].charAt(0);return{type:"text",raw:n,text:n}}return lS(A,o,A[0],this.lexer,this.rules)}}emStrong(e,t,A=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&A.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!A||this.rules.inline.punctuation.exec(A)){let n=[...i[0]].length-1,g,r,s=n,a=0,c=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(i=c.exec(t))!=null;){if(g=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!g)continue;if(r=[...g].length,i[3]||i[4]){s+=r;continue}else if((i[5]||i[6])&&n%3&&!((n+r)%3)){a+=r;continue}if(s-=r,s>0)continue;r=Math.min(r,r+s+a);let h=[...i[0]][0].length,p=e.slice(0,n+i.index+h+r);if(Math.min(n,r)%2){let w=p.slice(1,-1);return{type:"em",raw:p,text:w,tokens:this.lexer.inlineTokens(w)}}let D=p.slice(2,-2);return{type:"strong",raw:p,text:D,tokens:this.lexer.inlineTokens(D)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let A=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(A),o=this.rules.other.startingSpaceChar.test(A)&&this.rules.other.endingSpaceChar.test(A);return i&&o&&(A=A.substring(1,A.length-1)),{type:"codespan",raw:t[0],text:A}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let A,i;return t[2]==="@"?(A=t[1],i="mailto:"+A):(A=t[1],i=A),{type:"link",raw:t[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let A,i;if(t[2]==="@")A=t[0],i="mailto:"+A;else{let o;do o=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(o!==t[0]);A=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let A=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:A}}}},Bn=class Vp{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||$g,this.options.tokenizer=this.options.tokenizer||new bE,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:Nt,block:wE.normal,inline:AC.normal};this.options.pedantic?(A.block=wE.pedantic,A.inline=AC.pedantic):this.options.gfm&&(A.block=wE.gfm,this.options.breaks?A.inline=AC.breaks:A.inline=AC.gfm),this.tokenizer.rules=A}static get rules(){return{block:wE,inline:AC}}static lex(t,A){return new Vp(A).lex(t)}static lexInline(t,A){return new Vp(A).inlineTokens(t)}lex(t){t=t.replace(Nt.carriageReturn,` -`),this.blockTokens(t,this.tokens);for(let A=0;A(o=g.call({lexer:this},t,A))?(t=t.substring(o.raw.length),A.push(o),!0):!1))continue;if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length);let g=A.at(-1);o.raw.length===1&&g!==void 0?g.raw+=` -`:A.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length);let g=A.at(-1);g?.type==="paragraph"||g?.type==="text"?(g.raw+=` -`+o.raw,g.text+=` -`+o.text,this.inlineQueue.at(-1).src=g.text):A.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length);let g=A.at(-1);g?.type==="paragraph"||g?.type==="text"?(g.raw+=` -`+o.raw,g.text+=` -`+o.raw,this.inlineQueue.at(-1).src=g.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title});continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),A.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),A.push(o);continue}let n=t;if(this.options.extensions?.startBlock){let g=1/0,r=t.slice(1),s;this.options.extensions.startBlock.forEach(a=>{s=a.call({lexer:this},r),typeof s=="number"&&s>=0&&(g=Math.min(g,s))}),g<1/0&&g>=0&&(n=t.substring(0,g+1))}if(this.state.top&&(o=this.tokenizer.paragraph(n))){let g=A.at(-1);i&&g?.type==="paragraph"?(g.raw+=` -`+o.raw,g.text+=` -`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=g.text):A.push(o),i=n.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length);let g=A.at(-1);g?.type==="text"?(g.raw+=` -`+o.raw,g.text+=` -`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=g.text):A.push(o);continue}if(t){let g="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(g);break}else throw new Error(g)}}return this.state.top=!0,A}inline(t,A=[]){return this.inlineQueue.push({src:t,tokens:A}),A}inlineTokens(t,A=[]){let i=t,o=null;if(this.tokens.links){let r=Object.keys(this.tokens.links);if(r.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)r.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,o.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(o=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let n=!1,g="";for(;t;){n||(g=""),n=!1;let r;if(this.options.extensions?.inline?.some(a=>(r=a.call({lexer:this},t,A))?(t=t.substring(r.raw.length),A.push(r),!0):!1))continue;if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length);let a=A.at(-1);r.type==="text"&&a?.type==="text"?(a.raw+=r.raw,a.text+=r.text):A.push(r);continue}if(r=this.tokenizer.emStrong(t,i,g)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length),A.push(r);continue}if(r=this.tokenizer.autolink(t)){t=t.substring(r.raw.length),A.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t))){t=t.substring(r.raw.length),A.push(r);continue}let s=t;if(this.options.extensions?.startInline){let a=1/0,c=t.slice(1),h;this.options.extensions.startInline.forEach(p=>{h=p.call({lexer:this},c),typeof h=="number"&&h>=0&&(a=Math.min(a,h))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(r=this.tokenizer.inlineText(s)){t=t.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(g=r.raw.slice(-1)),n=!0;let a=A.at(-1);a?.type==="text"?(a.raw+=r.raw,a.text+=r.text):A.push(r);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return A}},Ag=class{options;parser;constructor(e){this.options=e||$g}space(e){return""}code({text:e,lang:t,escaped:A}){let i=(t||"").match(Nt.notSpaceStart)?.[0],o=e.replace(Nt.endingNewline,"")+` -`;return i?'
'+(A?o:No(o,!0))+`
-`:"
"+(A?o:No(o,!0))+`
-`}blockquote({tokens:e}){return`
-${this.parser.parse(e)}
-`}html({text:e}){return e}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} -`}hr(e){return`
-`}list(e){let t=e.ordered,A=e.start,i="";for(let g=0;g -`+i+" -`}listitem(e){let t="";if(e.task){let A=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=A+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=A+" "+No(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:A+" ",text:A+" ",escaped:!0}):t+=A+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • -`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    -`}table(e){let t="",A="";for(let o=0;o${i}`),` - -`+t+` -`+i+`
    -`}tablerow({text:e}){return` -${e} -`}tablecell(e){let t=this.parser.parseInline(e.tokens),A=e.header?"th":"td";return(e.align?`<${A} align="${e.align}">`:`<${A}>`)+t+` -`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${No(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:A}){let i=this.parser.parseInline(A),o=QS(e);if(o===null)return i;e=o;let n='",n}image({href:e,title:t,text:A,tokens:i}){i&&(A=this.parser.parseInline(i,this.parser.textRenderer));let o=QS(e);if(o===null)return No(A);e=o;let n=`${A}{let g=o[n].flat(1/0);A=A.concat(this.walkTokens(g,t))}):o.tokens&&(A=A.concat(this.walkTokens(o.tokens,t)))}}return A}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(A=>{let i=v({},A);if(i.async=this.defaults.async||i.async||!1,A.extensions&&(A.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if("renderer"in o){let n=t.renderers[o.name];n?t.renderers[o.name]=function(...g){let r=o.renderer.apply(this,g);return r===!1&&(r=n.apply(this,g)),r}:t.renderers[o.name]=o.renderer}if("tokenizer"in o){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let n=t[o.level];n?n.unshift(o.tokenizer):t[o.level]=[o.tokenizer],o.start&&(o.level==="block"?t.startBlock?t.startBlock.push(o.start):t.startBlock=[o.start]:o.level==="inline"&&(t.startInline?t.startInline.push(o.start):t.startInline=[o.start]))}"childTokens"in o&&o.childTokens&&(t.childTokens[o.name]=o.childTokens)}),i.extensions=t),A.renderer){let o=this.defaults.renderer||new Ag(this.defaults);for(let n in A.renderer){if(!(n in o))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let g=n,r=A.renderer[g],s=o[g];o[g]=(...a)=>{let c=r.apply(o,a);return c===!1&&(c=s.apply(o,a)),c||""}}i.renderer=o}if(A.tokenizer){let o=this.defaults.tokenizer||new bE(this.defaults);for(let n in A.tokenizer){if(!(n in o))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let g=n,r=A.tokenizer[g],s=o[g];o[g]=(...a)=>{let c=r.apply(o,a);return c===!1&&(c=s.apply(o,a)),c}}i.tokenizer=o}if(A.hooks){let o=this.defaults.hooks||new yE;for(let n in A.hooks){if(!(n in o))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let g=n,r=A.hooks[g],s=o[g];yE.passThroughHooks.has(n)?o[g]=a=>{if(this.defaults.async)return Promise.resolve(r.call(o,a)).then(h=>s.call(o,h));let c=r.call(o,a);return s.call(o,c)}:o[g]=(...a)=>{let c=r.apply(o,a);return c===!1&&(c=s.apply(o,a)),c}}i.hooks=o}if(A.walkTokens){let o=this.defaults.walkTokens,n=A.walkTokens;i.walkTokens=function(g){let r=[];return r.push(n.call(this,g)),o&&(r=r.concat(o.call(this,g))),r}}this.defaults=v(v({},this.defaults),i)}),this}setOptions(e){return this.defaults=v(v({},this.defaults),e),this}lexer(e,t){return Bn.lex(e,t??this.defaults)}parser(e,t){return cn.parse(e,t??this.defaults)}parseMarkdown(e){return(A,i)=>{let o=v({},i),n=v(v({},this.defaults),o),g=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&o.async===!1)return g(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof A>"u"||A===null)return g(new Error("marked(): input parameter is undefined or null"));if(typeof A!="string")return g(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(A)+", string expected"));n.hooks&&(n.hooks.options=n,n.hooks.block=e);let r=n.hooks?n.hooks.provideLexer():e?Bn.lex:Bn.lexInline,s=n.hooks?n.hooks.provideParser():e?cn.parse:cn.parseInline;if(n.async)return Promise.resolve(n.hooks?n.hooks.preprocess(A):A).then(a=>r(a,n)).then(a=>n.hooks?n.hooks.processAllTokens(a):a).then(a=>n.walkTokens?Promise.all(this.walkTokens(a,n.walkTokens)).then(()=>a):a).then(a=>s(a,n)).then(a=>n.hooks?n.hooks.postprocess(a):a).catch(g);try{n.hooks&&(A=n.hooks.preprocess(A));let a=r(A,n);n.hooks&&(a=n.hooks.processAllTokens(a)),n.walkTokens&&this.walkTokens(a,n.walkTokens);let c=s(a,n);return n.hooks&&(c=n.hooks.postprocess(c)),c}catch(a){return g(a)}}}onError(e,t){return A=>{if(A.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+No(A.message+"",!0)+"
    ";return t?Promise.resolve(i):i}if(t)return Promise.reject(A);throw A}}},Xg=new cq;function re(e,t){return Xg.parse(e,t)}re.options=re.setOptions=function(e){return Xg.setOptions(e),re.defaults=Xg.defaults,dS(re.defaults),re};re.getDefaults=zp;re.defaults=$g;re.use=function(...e){return Xg.use(...e),re.defaults=Xg.defaults,dS(re.defaults),re};re.walkTokens=function(e,t){return Xg.walkTokens(e,t)};re.parseInline=Xg.parseInline;re.Parser=cn;re.parser=cn.parse;re.Renderer=Ag;re.TextRenderer=oD;re.Lexer=Bn;re.lexer=Bn.lex;re.Tokenizer=bE;re.Hooks=yE;re.parse=re;var jcA=re.options,XcA=re.setOptions,$cA=re.use,AQA=re.walkTokens,eQA=re.parseInline;var tQA=cn.parse,iQA=Bn.lex;var Qq=["*"],Eq="Copy",lq="Copied",dq=(()=>{class e{constructor(){this._buttonClick$=new J,this.copied$=this._buttonClick$.pipe(ue(()=>Me(gA(!0),gg(3e3).pipe(dr(!1)))),Ui(),Yo(1)),this.copiedText$=this.copied$.pipe(be(!1),CA(A=>A?lq:Eq))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=H({type:e,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,o){i&1&&(E(0,"button",0),Pi(1,"async"),S("click",function(){return o.onCopyToClipboardClick()}),M(2),Pi(3,"async"),d()),i&2&&(tA("copied",Or(1,3,o.copied$)),u(2),SA(Or(3,5,o.copiedText$)))},dependencies:[Ya],encapsulation:2,changeDetection:0})}}return e})(),hq=new b("CLIPBOARD_OPTIONS");var nD=function(e){return e.CommandLine="command-line",e.LineHighlight="line-highlight",e.LineNumbers="line-numbers",e}(nD||{}),RS=new b("MARKED_EXTENSIONS"),uq=new b("MARKED_OPTIONS"),mq=new b("MERMAID_OPTIONS"),pq="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",Dq="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",fq="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",wq="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",yq="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",Mq="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",kS=new b("SECURITY_CONTEXT");var vS=(()=>{class e{get options(){return this._options}set options(A){this._options=v(v({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,o,n,g,r,s,a){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=n,this.platform=g,this.securityContext=r,this.http=s,this.sanitizer=a,this.DEFAULT_MARKED_OPTIONS={renderer:new Ag},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new J,this.reload$=this._reload$.asObservable(),this.options=o}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:o,inline:n,emoji:g,mermaid:r,disableSanitizer:s}=i,a=v(v({},this.options),i.markedOptions),c=a.renderer||this.renderer||new Ag;this.extensions&&(this.renderer=this.extendsRendererForExtensions(c)),r&&(this.renderer=this.extendsRendererForMermaid(c));let h=this.trimIndentation(A),p=o?this.decodeHtml(h):h,D=g?this.parseEmoji(p):p,w=this.parseMarked(D,a,n);return(s?w:this.sanitizer.sanitize(this.securityContext,w))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,o){let{clipboard:n,clipboardOptions:g,katex:r,katexOptions:s,mermaid:a,mermaidOptions:c}=i;r&&this.renderKatex(A,v(v({},this.DEFAULT_KATEX_OPTIONS),s)),a&&this.renderMermaid(A,v(v(v({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),c)),n&&this.renderClipboard(A,o,v(v(v({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),g)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(Mq);return this.http.get(A,{responseType:"text"}).pipe(CA(i=>this.handleExtension(A,i)))}highlight(A){if(!uo(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,o=>o.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!uo(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&re.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let o=A.code;return A.code=n=>n.lang==="mermaid"?`
    ${n.text}
    `:o(n),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let o=A.lastIndexOf("://"),n=o>-1?A.substring(o+4):A,g=n.lastIndexOf("/"),r=g>-1?n.substring(g+1).split("?")[0]:"",s=r.lastIndexOf("."),a=s>-1?r.substring(s+1):"";return a&&a!=="md"?"```"+a+` -`+i+"\n```":i}parseMarked(A,i,o=!1){if(i.renderer){let n=v({},i.renderer);delete n.\u0275NgxMarkdownRendererExtendedForExtensions,delete n.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,re.use({renderer:n})}return o?re.parseInline(A,i):re.parse(A,i)}parseEmoji(A){if(!uo(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(pq);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(uo(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(Dq);renderMathInElement(A,i)}}renderClipboard(A,i,o){if(!uo(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(wq);if(!i)throw new Error(yq);let{buttonComponent:n,buttonTemplate:g}=o,r=A.querySelectorAll("pre");for(let s=0;sh.classList.add("hover"),c.onmouseleave=()=>h.classList.remove("hover");let p;if(n){let w=i.createComponent(n);p=w.hostView,w.changeDetectorRef.markForCheck()}else if(g)p=i.createEmbeddedView(g);else{let w=i.createComponent(dq);p=w.hostView,w.changeDetectorRef.markForCheck()}let D;p.rootNodes.forEach(w=>{h.appendChild(w),D=new ClipboardJS(w,{text:()=>a.innerText})}),p.onDestroy(()=>D.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!uo(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(fq);let o=A.querySelectorAll(".mermaid");o.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:o}))}trimIndentation(A){if(!A)return"";let i;return A.split(` -`).map(o=>{let n=i;return o.length>0&&(n=isNaN(n)?o.search(/\S|$/):Math.min(o.search(/\S|$/),n)),isNaN(i)&&(i=n),n?o.substring(n):o}).join(` -`)}static{this.\u0275fac=function(i){return new(i||e)(eA(hq,8),eA(RS,8),eA(uq,8),eA(mq,8),eA(Eo),eA(kS),eA(ht,8),eA(qi))}}static{this.\u0275prov=G({token:e,factory:e.\u0275fac})}}return e})(),SS=(()=>{class e{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,o){this.element=A,this.markdownService=i,this.viewContainerRef=o,this.error=new Z,this.load=new Z,this.ready=new Z,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new J}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(bA(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return Ze(this,null,function*(){let o={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},n={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},g=yield this.markdownService.parse(A,o);this.element.nativeElement.innerHTML=g,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,n,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,nD.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,nD.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let o=A.querySelectorAll("pre");for(let n=0;n{let r=i[g];if(r){let s=this.toLispCase(g);o.item(n).setAttribute(s,r.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let o=A.toString();for(let n=0,g=i.length;n{let i=Rq(A)?fA(v({},A),{multi:!0}):{provide:RS,useValue:A,multi:!0};return[...t,i]},[])}var FS=(()=>{class e{static forRoot(A){return{ngModule:e,providers:[bq(A)]}}static forChild(){return{ngModule:e}}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275mod=$({type:e})}static{this.\u0275inj=X({imports:[Xo]})}}return e})();var Sq=["switch"],Fq=["*"];function Nq(e,t){e&1&&(E(0,"span",10),We(),E(1,"svg",12),Y(2,"path",13),d(),E(3,"svg",14),Y(4,"path",15),d()())}var Gq=new b("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),_q={provide:Mi,useExisting:Je(()=>SE),multi:!0},vE=class{source;checked;constructor(t,A){this.source=t,this.checked=A}},SE=(()=>{class e{_elementRef=C(z);_focusMonitor=C(at);_changeDetectorRef=C(DA);defaults=C(Gq);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new vE(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new Z;toggleChange=new Z;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){C(Be).load(ze);let A=C(new Ve("tabindex"),{optional:!0}),i=this.defaults,o=C(jA,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=o==="NoopAnimations",this.id=this._uniqueId=C(oe).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new vE(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-slide-toggle"]],viewQuery:function(i,o){if(i&1&&IA(Sq,5),i&2){let n;V(n=W())&&(o._switchElement=n.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,o){i&2&&(bt("id",o.id),sA("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ke(o.color?"mat-"+o.color:""),tA("mat-mdc-slide-toggle-focused",o._focused)("mat-mdc-slide-toggle-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",j],color:"color",disabled:[2,"disabled","disabled",j],disableRipple:[2,"disableRipple","disableRipple",j],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Ae(A)],checked:[2,"checked","checked",j],hideIcon:[2,"hideIcon","hideIcon",j],disabledInteractive:[2,"disabledInteractive","disabledInteractive",j]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[pA([_q,{provide:en,useExisting:e,multi:!0}]),LA],ngContentSelectors:Fq,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,o){if(i&1){let n=oA();KA(),E(0,"div",1)(1,"button",2,0),S("click",function(){return K(n),x(o._handleClick())}),Y(3,"span",3),E(4,"span",4)(5,"span",5)(6,"span",6),Y(7,"span",7),d(),E(8,"span",8),Y(9,"span",9),d(),L(10,Nq,5,0,"span",10),d()()(),E(11,"label",11),S("click",function(r){return K(n),x(r.stopPropagation())}),rA(12),d()()}if(i&2){let n=He(2);N("labelPosition",o.labelPosition),u(),tA("mdc-switch--selected",o.checked)("mdc-switch--unselected",!o.checked)("mdc-switch--checked",o.checked)("mdc-switch--disabled",o.disabled)("mat-mdc-slide-toggle-disabled-interactive",o.disabledInteractive),N("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex)("disabled",o.disabled&&!o.disabledInteractive),sA("id",o.buttonId)("name",o.name)("aria-label",o.ariaLabel)("aria-labelledby",o._getAriaLabelledBy())("aria-describedby",o.ariaDescribedby)("aria-required",o.required||null)("aria-checked",o.checked)("aria-disabled",o.disabled&&o.disabledInteractive?"true":null),u(8),N("matRippleTrigger",n)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),u(),_(o.hideIcon?-1:10),u(),N("for",o.buttonId),sA("id",o._labelId)}},dependencies:[vt,ms],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return e})();var NS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[SE,QA,QA]})}return e})();var oC=class e{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||e)};static \u0275cmp=H({type:e,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},standalone:!1,decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"div"),Y(2,"ngx-json-viewer",1),d()()),A&2&&(u(2),N("json",i.sessionState))},dependencies:[Ks],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var nC=class e{constructor(t,A){this.el=t;this.renderer=A;this.sideDrawerMaxWidth=window.innerWidth/2}sideDrawerMinWidth=310;sideDrawerMaxWidth;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.renderer.listen(this.resizeHandle,"mousedown",t=>this.onResizeHandleMouseDown(t)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(t){this.resizingEvent={isResizing:!0,startingCursorX:t.clientX,startingWidth:this.sideDrawerWidth},t.preventDefault()}onMouseMove(t){if(!this.resizingEvent.isResizing)return;let A=t.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(t){let A=Math.min(Math.max(t,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.body.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let t=getComputedStyle(document.body).getPropertyValue("--side-drawer-width"),A=parseInt(t,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||e)(O(z),O(ie))};static \u0275dir=T({type:e,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&S("mousemove",function(n){return i.onMouseMove(n)},!1,Hr)("mouseup",function(){return i.onMouseUp()},!1,Hr)("resize",function(){return i.onResize()},!1,ec)},standalone:!1})};var gC=class e{constructor(t,A){this.el=t;this.renderer=A;this.bottomMaxHeight=window.innerHeight}bottomMinHeight=310;bottomMaxHeight;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorY:0,startingHeight:0};ngAfterViewInit(){this.resizeHandle=document.getElementsByClassName("bottom-resize-handler")[0],this.renderer.listen(this.resizeHandle,"mousedown",t=>this.onResizeHandleMouseDown(t)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(t){this.resizingEvent={isResizing:!0,startingCursorY:t.clientY,startingHeight:this.bottomPanelHeight},t.preventDefault()}onMouseMove(t){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-t.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(t){let A=Math.min(Math.max(t,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let t=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(t,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||e)(O(z),O(ie))};static \u0275dir=T({type:e,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&S("mousemove",function(n){return i.onMouseMove(n)},!1,Hr)("mouseup",function(){return i.onMouseUp()},!1,Hr)("resize",function(){return i.onResize()},!1,ec)},standalone:!1})};var GS=new b("CdkAccordion");var _S=(()=>{class e{accordion=C(GS,{optional:!0,skipSelf:!0});_changeDetectorRef=C(DA);_expansionDispatcher=C(ws);_openCloseAllSubscription=FA.EMPTY;closed=new Z;opened=new Z;destroyed=new Z;expandedChange=new Z;id=C(oe).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",j],disabled:[2,"disabled","disabled",j]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[pA([{provide:GS,useValue:void 0}])]})}return e})(),LS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({})}return e})();var Yq=["body"],Jq=["bodyWrapper"],Hq=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],Tq=["mat-expansion-panel-header","*","mat-action-row"];function Oq(e,t){}var Pq=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Zq=["mat-panel-title","mat-panel-description","*"];function qq(e,t){e&1&&(E(0,"span",1),We(),E(1,"svg",2),Y(2,"path",3),d()())}var KS=new b("MAT_ACCORDION"),xS=new b("MAT_EXPANSION_PANEL"),Vq=(()=>{class e{_template=C(ae);_expansionPanel=C(xS,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["ng-template","matExpansionPanelContent",""]]})}return e})(),US=new b("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),gD=(()=>{class e extends _S{_viewContainerRef=C(Ee);_animationsDisabled=C(jA,{optional:!0})==="NoopAnimations";_document=C(uA);_ngZone=C(AA);_elementRef=C(z);_renderer=C(ie);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new Z;afterCollapse=new Z;_inputChanges=new J;accordion=C(KS,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=C(oe).getId("mat-expansion-panel-header-");constructor(){super();let A=C(US,{optional:!0});this._expansionDispatcher=C(ws),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(be(null),MA(()=>this.expanded&&!this._portal),he(1)).subscribe(()=>{this._portal=new zt(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-expansion-panel"]],contentQueries:function(i,o,n){if(i&1&&qA(n,Vq,5),i&2){let g;V(g=W())&&(o._lazyContent=g.first)}},viewQuery:function(i,o){if(i&1&&(IA(Yq,5),IA(Jq,5)),i&2){let n;V(n=W())&&(o._body=n.first),V(n=W())&&(o._bodyWrapper=n.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,o){i&2&&tA("mat-expanded",o.expanded)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",j],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[pA([{provide:KS,useValue:void 0},{provide:xS,useExisting:e}]),lA,LA],ngContentSelectors:Tq,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,o){i&1&&(KA(Hq),rA(0),E(1,"div",2,0)(3,"div",3,1)(5,"div",4),rA(6,1),L(7,Oq,0,0,"ng-template",5),d(),rA(8,2),d()()),i&2&&(u(),sA("inert",o.expanded?null:""),u(2),N("id",o.id),sA("aria-labelledby",o._headerId),u(4),N("cdkPortalOutlet",o._portal))},dependencies:[jt],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return e})();var YS=(()=>{class e{panel=C(gD,{host:!0});_element=C(z);_focusMonitor=C(at);_changeDetectorRef=C(DA);_parentChangeSubscription=FA.EMPTY;constructor(){C(Be).load(ze);let A=this.panel,i=C(US,{optional:!0}),o=C(new Ve("tabindex"),{optional:!0}),n=A.accordion?A.accordion._stateChanges.pipe(MA(g=>!!(g.hideToggle||g.togglePosition))):Ye;this.tabIndex=parseInt(o||"")||0,this._parentChangeSubscription=Me(A.opened,A.closed,n,A._inputChanges.pipe(MA(g=>!!(g.hideToggle||g.disabled||g.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(MA(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:Te(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,o){i&1&&S("click",function(){return o._toggle()})("keydown",function(g){return o._keydown(g)}),i&2&&(sA("id",o.panel._headerId)("tabindex",o.disabled?-1:o.tabIndex)("aria-controls",o._getPanelId())("aria-expanded",o._isExpanded())("aria-disabled",o.panel.disabled),De("height",o._getHeaderHeight()),tA("mat-expanded",o._isExpanded())("mat-expansion-toggle-indicator-after",o._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",o._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Ae(A)]},ngContentSelectors:Zq,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,o){i&1&&(KA(Pq),E(0,"span",0),rA(1),rA(2,1),rA(3,2),d(),L(4,qq,3,0,"span",1)),i&2&&(tA("mat-content-hide-toggle",!o._showToggle()),u(4),_(o._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return e})();var JS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=T({type:e,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return e})();var HS=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,LS,Mo]})}return e})();var TS=e=>({color:e});function zq(e,t){e&1&&Y(0,"div",7)}function jq(e,t){if(e&1&&(E(0,"span",13),M(1),d()),e&2){let A=f().$implicit,i=f();De("left",i.getRelativeStart(A.span)+5,"%"),u(),hA("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function Xq(e,t){if(e&1){let A=oA();E(0,"div",4),S("click",function(){let o=K(A).$implicit,n=f();return x(n.selectRow(o))})("mouseenter",function(){let o=K(A).$implicit,n=f();return x(n.onHover(o))})("mouseleave",function(){K(A);let o=f();return x(o.onHoverOut())}),E(1,"div",5)(2,"div",6),ne(3,zq,1,0,"div",7,Tr),d(),E(5,"span",8),M(6),d(),E(7,"div",9),M(8),d()(),E(9,"div",10)(10,"div",11),M(11),d(),L(12,jq,2,3,"span",12),d()()}if(e&2){let A=t.$implicit,i=f();tA("selected",i.rowSelected(A)),u(3),ge(i.getArray(A.level)),u(2),N("ngStyle",Ot(14,TS,i.isEventRow(A)?"#8AB4F8":"white")),u(),hA(" ",i.getSpanIcon(A.span.name)," "),u(),De("width",400-A.level*20,"px"),N("ngStyle",Ot(16,TS,i.isEventRow(A)?"#8AB4F8":"white")),u(),hA(" ",A.span.name," "),u(2),De("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),u(),hA(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),u(),_(i.getRelativeWidth(A.span)<10?12:-1)}}var rC=class e{constructor(t){this.traceService=t}spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let t=this.getGlobalTimes(this.spans);this.baseStartTimeMs=t.start,this.totalDurationMs=t.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(t){let A=t.map(n=>v({},n)),i=new Map,o=[];return A.forEach(n=>i.set(n.span_id,n)),A.forEach(n=>{if(n.parent_span_id&&i.has(n.parent_span_id)){let g=i.get(n.parent_span_id);g.children=g.children||[],g.children.push(n)}else o.push(n)}),o}getGlobalTimes(t){let A=Math.min(...t.map(o=>this.toMs(o.start_time))),i=Math.max(...t.map(o=>this.toMs(o.end_time)));return{start:A,duration:i-A}}toMs(t){return t/1e6}getRelativeStart(t){return(this.toMs(t.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(t){return(this.toMs(t.end_time)-this.toMs(t.start_time))/this.totalDurationMs*100}flattenTree(t,A=0){return t.flatMap(o=>[{span:o,level:A},...o.children?this.flattenTree(o.children,A+1):[]])}getSpanIcon(t){for(let[A,i]of this.traceLabelIconMap.entries())if(t.startsWith(A))return i;return"start"}getArray(t){return Array.from({length:t})}selectRow(t){if(this.selectedRow&&this.selectedRow.span_id==t.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(t.span),this.traceService.setHoveredMessages(t.span,this.invocationId)}rowSelected(t){return this.selectedRow==t.span}isEventRow(t){if(!t.span.attributes)return!1;let A=t?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(t){this.traceService.setHoveredMessages(t.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||e)(O(Fo))};static \u0275cmp=H({type:e,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},standalone:!1,decls:6,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px",3,"ngStyle"],[1,"trace-label",3,"ngStyle"],[1,"trace-bar-container"],[1,"trace-bar"],[2,"position","absolute","color","#8dabbf",3,"left"],[2,"position","absolute","color","#8dabbf"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"div",1),M(2),d(),E(3,"div",2),ne(4,Xq,13,18,"div",3,le),d()()),A&2&&(u(2),hA("Invocation ID: ",i.invocationId,""),u(2),ge(i.flatTree))},dependencies:[xa],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;font-family:Google Sans;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover, .trace-row.selected[_ngcontent-%COMP%]{background-color:#3b3d3c}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}"]})};function AV(e,t){if(e&1&&(E(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),M(4),d()(),Y(5,"app-trace-tree",4),d()()),e&2){let A=t.$implicit,i=f();u(4),hA(" ",i.invocToUserMsg.get(A.key)," "),u(),N("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var sC=class e{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(t){"traceData"in t&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((t,A)=>{let i=A.trace_id,o=t.get(i);return o?(o.push(A),o.sort((n,g)=>n.start_time-g.start_time)):t.set(i,[A]),t},new Map);for(let[t,A]of this.invocTraces)this.invocToUserMsg.set(t,this.findUserMsgFromInvocGroup(A))}getArray(t){return Array.from({length:t})}findUserMsgFromInvocGroup(t){let A=t?.find(n=>n.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in n.attributes);return JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(n=>n.role=="user").at(-1).parts[0].text}findInvocIdFromTraceId(t){return this.invocTraces.get(t)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(t,A)=>0;static \u0275fac=function(A){return new(A||e)};static \u0275cmp=H({type:e,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},standalone:!1,features:[LA],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"h2",1),M(2,"Invocations"),d(),E(3,"div",2),ne(4,AV,6,3,"div",3,le),Pi(6,"keyvalue"),d()()),A&2&&(u(4),ge(Fa(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[$t,gD,YS,JS,rC,Ja],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;text-overflow:ellipsis;font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: #333537}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: red}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: #8E918F}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15} .mat-expansion-panel-header.mat-expanded:focus{background-color:#444746!important} .mat-expansion-panel-header.mat-expanded{background-color:#444746!important} .mat-expansion-panel-header.mat-expanded:hover{background-color:#444746!important} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};function tV(e,t){if(e&1){let A=oA();E(0,"div",11),S("click",function(){K(A);let o=f();return x(o.openViewImageDialog(o.rawSvgString))}),d()}if(e&2){let A=f();N("innerHtml",A.renderedEventGraph,yg)}}var aC=class e{constructor(t,A,i,o){this.dialog=t;this.traceService=A;this.eventService=i;this.sanitizer=o}userId="";sessionId="";appName="";panelClosed=new Z;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";ngOnInit(){this.traceService.selectedTraceRow$.subscribe(t=>{this.selectedRow=t;let A=this.getEventIdFromSpan();A&&(this.eventService.getEventTrace(A).subscribe(i=>{this.llmRequest=JSON.parse(i[this.llmRequestKey]),this.llmResponse=JSON.parse(i[this.llmResponseKey])}),this.getEventGraph(A))}),this.traceService.eventData$.subscribe(t=>this.eventData=t)}openViewImageDialog(t){let A=this.dialog.open(In,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:t}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(t){this.eventService.getEvent(this.userId,this.appName,this.sessionId,t).subscribe(A=>Ze(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=(yield UI()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||e)(O(Ft),O(Fo),O($n),O(qi))};static \u0275cmp=H({type:e,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},standalone:!1,decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(E(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),Y(4,"ngx-json-viewer",4),d()(),E(5,"mat-tab",5)(6,"div",3),Y(7,"ngx-json-viewer",4),d()(),E(8,"mat-tab",6)(9,"div",3),Y(10,"ngx-json-viewer",4),d()(),E(11,"mat-tab",7)(12,"div",8),L(13,tV,1,1,"div",9),d()()(),E(14,"button",10),S("click",function(){return i.closePanel()}),E(15,"mat-icon"),M(16,"close"),d()()()),A&2&&(u(4),N("json",i.getEventDetails()),u(3),N("json",i.llmRequest),u(3),N("json",i.llmResponse),u(3),_(i.renderedEventGraph?13:-1))},dependencies:[jn,ps,Ks,$I,fE],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:#1b1b1b}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var oV=["videoContainer"],nV=["sideDrawer"],gV=["autoScroll"],rV=["messageTextarea"],sV=["bottomPanel"],aV=()=>[],IV=(e,t)=>({"user-message":e,"bot-message":t}),CV=e=>({"eval-fail":e}),rD=e=>({"background-color":e}),BV=(e,t)=>({"eval-pass":e,"eval-fail":t}),cV=(e,t)=>({"font-style":e,color:t}),OS=e=>({hidden:e});function QV(e,t){if(e&1){let A=oA();E(0,"span",28),S("click",function(){K(A);let o=f();return x(o.toggleSidePanel())}),M(1,"left_panel_open"),d()}}function EV(e,t){if(e&1&&(E(0,"mat-option",17),M(1),d()),e&2){let A=t.$implicit;N("value",A),u(),SA(A)}}function lV(e,t){e&1&&ne(0,EV,2,2,"mat-option",17,le),e&2&&ge(t)}function dV(e,t){if(e&1&&(E(0,"mat-option",17),M(1),d()),e&2){let A=f();N("value",A.selectedAppControl.value),u(),SA(A.selectedAppControl.value)}}function hV(e,t){e&1&&(E(0,"span",37),M(1,"Trace"),d())}function uV(e,t){if(e&1&&(E(0,"mat-tab",30),L(1,hV,2,0,"ng-template",31),Y(2,"app-trace-tab",36),d()),e&2){let A=f(2);u(2),N("traceData",A.traceData)}}function mV(e,t){e&1&&(E(0,"span",37),M(1,"Events"),d())}function pV(e,t){e&1&&(E(0,"span",37),M(1,"State"),d())}function DV(e,t){e&1&&(E(0,"span",37),M(1,"Artifacts"),d())}function fV(e,t){e&1&&(E(0,"span",37),M(1,"Sessions"),d())}function wV(e,t){e&1&&(E(0,"span",37),M(1,"Eval"),d())}function yV(e,t){if(e&1){let A=oA();E(0,"mat-tab"),L(1,wV,2,0,"ng-template",31),E(2,"app-eval-tab",38),S("shouldShowTab",function(o){K(A);let n=f(2);return x(n.handleShouldShowEvalTab(o))})("sessionSelected",function(o){K(A);let n=f(2);return x(n.updateWithSelectedSession(o))})("evalCaseSelected",function(o){K(A);let n=f(2);return x(n.updateWithSelectedEvalCase(o))})("evalSetIdSelected",function(o){K(A);let n=f(2);return x(n.updateSelectedEvalSetId(o))})("shouldReturnToSession",function(o){K(A);let n=f(2);return x(n.handleReturnToSession(o))}),d()()}if(e&2){let A=f(2);u(2),N("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function MV(e,t){if(e&1){let A=oA();E(0,"div",18)(1,"mat-tab-group",29),S("selectedTabChange",function(o){K(A);let n=f();return x(n.handleTabChange(o))}),L(2,uV,3,1,"mat-tab",30),E(3,"mat-tab",30),L(4,mV,2,0,"ng-template",31),E(5,"app-event-tab",32),S("selectedEvent",function(o){K(A);let n=f();return x(n.selectEvent(o))}),d()(),E(6,"mat-tab"),L(7,pV,2,0,"ng-template",31),Y(8,"app-state-tab",33),d(),E(9,"mat-tab"),L(10,DV,2,0,"ng-template",31),Y(11,"app-artifact-tab",34),d(),E(12,"mat-tab"),L(13,fV,2,0,"ng-template",31),E(14,"app-session-tab",35),S("sessionSelected",function(o){K(A);let n=f();return x(n.updateWithSelectedSession(o))})("sessionReloaded",function(o){K(A);let n=f();return x(n.updateSessionState(o))}),d()(),L(15,yV,3,3,"mat-tab"),d()()}if(e&2){let A=f();u(2),_(A.traceTabEnabled?2:-1),u(3),N("eventsMap",A.eventData)("traceData",A.traceData),u(3),N("sessionState",A.currentSessionState),u(3),N("artifacts",A.artifacts),u(3),N("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),u(),_(A.shouldShowEvalTab()?15:-1)}}function bV(e,t){if(e&1){let A=oA();E(0,"div",51),S("click",function(){K(A);let o=f(2);return x(o.openViewImageDialog(o.rawSvgString))}),d()}if(e&2){let A=f(2);N("innerHtml",A.renderedEventGraph,yg)}}function RV(e,t){if(e&1){let A=oA();E(0,"div",19)(1,"div",39)(2,"div",40)(3,"mat-paginator",41),S("page",function(o){K(A);let n=f();return x(n.handlePageEvent(o))}),d(),E(4,"button",42)(5,"mat-icon",43),S("click",function(){K(A);let o=f();return x(o.closeSelectedEvent())}),M(6,"close"),d()()()(),E(7,"div")(8,"mat-tab-group")(9,"mat-tab",44)(10,"div",45),L(11,bV,1,1,"div",46),d(),E(12,"div",47),Y(13,"ngx-json-viewer",48),d()(),E(14,"mat-tab",49)(15,"div",47),Y(16,"ngx-json-viewer",48),d()(),E(17,"mat-tab",50)(18,"div",47),Y(19,"ngx-json-viewer",48),d()()()()()}if(e&2){let A=f();u(3),N("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),u(8),_(A.renderedEventGraph?11:-1),u(2),N("json",A.selectedEvent),u(3),N("json",A.llmRequest),u(3),N("json",A.llmResponse)}}function kV(e,t){if(e&1){let A=oA();E(0,"span",53),S("click",function(){K(A);let o=f(2);return x(o.toggleSidePanel())}),M(1,"left_panel_open"),d()}}function vV(e,t){if(e&1){let A=oA();E(0,"button",58),S("click",function(){K(A);let o=f(3);return x(o.cancelEditEvalCase())}),M(1,"Cancel"),d(),E(2,"button",59),S("click",function(){K(A);let o=f(3);return x(o.saveEvalCase())}),M(3," Save "),d()}if(e&2){let A=f(3);u(2),N("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function SV(e,t){if(e&1){let A=oA();E(0,"span",60),S("click",function(){K(A);let o=f(3);return x(o.editEvalCase())}),M(1," edit "),d(),E(2,"span",61),S("click",function(){K(A);let o=f(3);return x(o.deleteEvalCase())}),M(3," delete "),d()}}function FV(e,t){if(e&1&&(E(0,"div",54)(1,"div",55),M(2,"Eval Case ID"),d(),E(3,"div",56),M(4),d()(),E(5,"div",57),L(6,vV,4,1)(7,SV,4,0),d()),e&2){let A=f(2);u(4),SA(A.evalCase.evalId),u(2),_(A.isEvalEditMode()?6:7)}}function NV(e,t){if(e&1){let A=oA();E(0,"div",54)(1,"div",55),M(2,"Session ID"),d(),E(3,"div",56),M(4),d()(),E(5,"div",57)(6,"div",62)(7,"mat-slide-toggle",63),S("change",function(){K(A);let o=f(2);return x(o.toggleSse())}),M(8," Token Streaming "),d()(),Y(9,"mat-divider",64),E(10,"div",65)(11,"div",66),S("click",function(){K(A);let o=f(2);return x(o.onNewSessionClick())}),E(12,"mat-icon"),M(13,"add"),d(),M(14," New Session "),d(),E(15,"span",67),S("click",function(){K(A);let o=f(2);return x(o.deleteSession(o.sessionId))}),M(16," delete "),d(),E(17,"span",68),S("click",function(){K(A);let o=f(2);return x(o.exportSession())}),M(18," download "),d()()()}if(e&2){let A=f(2);u(4),SA(A.sessionId),u(3),N("checked",A.enableSseIndicator()),u(2),N("vertical",!0)}}function GV(e,t){if(e&1&&(E(0,"div",22),L(1,kV,2,0,"span",52)(2,FV,8,2)(3,NV,19,3),d()),e&2){let A=f();u(),_(A.showSidePanel?-1:1),u(),_(A.evalCase?2:3)}}function _V(e,t){e&1&&(E(0,"div",69)(1,"span"),M(2,"Loading agents, please wait..."),d()())}function LV(e,t){e&1&&(E(0,"span"),M(1,"Welcome to ADK!"),Y(2,"br"),M(3," Select an agent on the left to begin with."),d())}function KV(e,t){if(e&1&&(M(0," Error message: "),Y(1,"br"),E(2,"pre",71),M(3),d()),e&2){let A=f(4);u(3),SA(A.loadingError())}}function xV(e,t){e&1&&(E(0,"pre",70),M(1,"Warning: No agents found in current folder."),d())}function UV(e,t){if(e&1&&(E(0,"div"),M(1," Failed to load agents. To get started, run "),E(2,"pre"),M(3,"adk web"),d(),M(4," in the folder that contains the agents."),Y(5,"br"),L(6,KV,4,1)(7,xV,2,0,"pre",70),d()),e&2){let A=f(3);u(6),_(A.loadingError()?6:7)}}function YV(e,t){if(e&1&&(E(0,"div",69),L(1,LV,4,0,"span"),Pi(2,"async"),L(3,UV,8,1,"div"),d()),e&2){let A=f(2);u(),_((Or(2,1,A.apps$)||gM(3,aV)).length>0?1:3)}}function JV(e,t){if(e&1&&L(0,_V,3,0,"div",69)(1,YV,4,4,"div",69),e&2){let A=f();_(A.isLoadingApps()?0:1)}}function HV(e,t){if(e&1){let A=oA();E(0,"button",72),S("click",function(){K(A);let o=f();return x(o.openDialog())}),E(1,"mat-icon"),M(2,"priority_high"),d()()}}function TV(e,t){if(e&1){let A=oA();E(0,"button",82),S("click",function(){K(A);let o=f().$index,n=f(2);return x(n.clickEvent(o))}),E(1,"mat-icon",83),M(2,"robot_2"),d()()}if(e&2){let A=f(3);N("matTooltip",A.selectedAppControl.value)}}function OV(e,t){e&1&&Y(0,"mat-progress-bar",76)}function PV(e,t){if(e&1&&Y(0,"img",85),e&2){let A=f().$implicit;N("src",A.url,ri)}}function ZV(e,t){if(e&1&&(E(0,"mat-icon"),M(1,"insert_drive_file"),d(),E(2,"a",86),M(3),d()),e&2){let A=f().$implicit;u(2),N("href",A.url,ri),u(),SA(A.file.name)}}function qV(e,t){if(e&1&&(E(0,"div",84),L(1,PV,1,1,"img",85)(2,ZV,4,2),d()),e&2){let A=t.$implicit;u(),_(A.file.type.startsWith("image/")?1:-1),u(),_(A.file.type.startsWith("image/")?-1:2)}}function VV(e,t){if(e&1&&(E(0,"div",77),ne(1,qV,3,2,"div",84,le),d()),e&2){let A=f().$implicit;u(),ge(A.attachments)}}function WV(e,t){e&1&&(E(0,"div",78),M(1,"Thought"),d())}function zV(e,t){if(e&1){let A=oA();E(0,"div",87)(1,"textarea",89,3),Tt("ngModelChange",function(o){K(A);let n=f(4);return ai(n.userEditEvalCaseMessage,o)||(n.userEditEvalCaseMessage=o),x(o)}),S("keydown",function(o){K(A);let n=f(2).$implicit,g=f(2);return x(g.handleKeydown(o,n))}),d(),E(3,"div",90)(4,"span",91),S("click",function(){K(A);let o=f(2).$implicit,n=f(2);return x(n.cancelEditMessage(o))}),M(5," close "),d(),E(6,"span",92),S("click",function(){K(A);let o=f(2).$implicit,n=f(2);return x(n.saveEditMessage(o))}),M(7," check "),d()()()}if(e&2){let A=f(4);u(),Ht("ngModel",A.userEditEvalCaseMessage)}}function jV(e,t){if(e&1&&Y(0,"markdown",88),e&2){let A=f(2).$implicit;N("data",A.text)("ngStyle",Fn(2,cV,A.thought?"italic":"normal",A.thought?"#9aa0a6":"white"))}}function XV(e,t){if(e&1&&L(0,zV,8,1,"div",87)(1,jV,1,5,"markdown",88),e&2){let A=f().$implicit;_(A.isEditing?0:1)}}function $V(e,t){if(e&1&&(E(0,"div"),Y(1,"div",93),d()),e&2){let A=f().$implicit,i=f(2);u(),N("innerHTML",i.renderGooglerSearch(A.renderedContent),yg)}}function A3(e,t){if(e&1&&(E(0,"code"),M(1),d()),e&2){let A=f().$implicit;u(),hA(" ",A.executableCode.code," ")}}function e3(e,t){if(e&1&&(E(0,"div")(1,"div"),M(2),d(),E(3,"div"),M(4),d()()),e&2){let A=f().$implicit;u(2),hA("Outcome: ",A.codeExecutionResult.outcome,""),u(2),hA("Output: ",A.codeExecutionResult.output,"")}}function t3(e,t){if(e&1){let A=oA();E(0,"div",94)(1,"img",95),S("click",function(){K(A);let o=f(3).$implicit,n=f(2);return x(n.openViewImageDialog(o.inlineData.data))}),d()()}if(e&2){let A=f(3).$implicit;u(),N("src",A.inlineData.data,ri)}}function i3(e,t){if(e&1&&(E(0,"div"),Y(1,"app-audio-player",96),d()),e&2){let A=f(3).$implicit;u(),N("base64data",A.inlineData.data)}}function o3(e,t){if(e&1){let A=oA();E(0,"div")(1,"div",97)(2,"mat-icon"),M(3,"description"),d(),E(4,"button",98),S("click",function(){K(A);let o=f(3).$implicit,n=f(2);return x(n.openBase64InNewTab(o.inlineData.data,o.inlineData.mimeType))}),M(5),d()()()}if(e&2){let A=f(3).$implicit;u(5),hA(" ",A.inlineData.name," ")}}function n3(e,t){if(e&1){let A=oA();E(0,"div")(1,"button",98),S("click",function(){K(A);let o=f(3).$implicit,n=f(2);return x(n.openBase64InNewTab(o.inlineData.data,o.inlineData.mimeType))}),M(2),d()()}if(e&2){let A=f(3).$implicit;u(2),hA(" ",A.inlineData.name," ")}}function g3(e,t){if(e&1&&(E(0,"div")(1,"div"),L(2,t3,2,1,"div",94)(3,i3,2,1,"div")(4,o3,6,1,"div")(5,n3,3,1,"div"),d()()),e&2){let A,i=f(2).$implicit,o=f(2);u(2),_((A=i.inlineData.mediaType)===o.MediaType.IMAGE?2:A===o.MediaType.AUDIO?3:A===o.MediaType.TEXT?4:5)}}function r3(e,t){if(e&1){let A=oA();E(0,"div")(1,"img",99),S("click",function(){K(A);let o=f(3).$implicit,n=f(2);return x(n.openViewImageDialog(o.inlineData.data))}),d()()}if(e&2){let A=f(3).$implicit;u(),N("src",A.inlineData.data,ri)}}function s3(e,t){if(e&1&&(E(0,"div")(1,"mat-icon"),M(2,"insert_drive_file"),d(),E(3,"a",86),M(4),d()()),e&2){let A=f(3).$implicit;u(3),N("href",A.inlineData.data,ri),u(),SA(A.inlineData.displayName)}}function a3(e,t){if(e&1&&(E(0,"div"),L(1,r3,2,1,"div")(2,s3,5,2,"div"),d()),e&2){let A=f(2).$implicit;u(),_(A.inlineData.mimeType.startsWith("image/")?1:2)}}function I3(e,t){if(e&1&&L(0,g3,6,1,"div")(1,a3,3,1,"div"),e&2){let A=f().$implicit;_(A.role==="bot"?0:1)}}function C3(e,t){if(e&1){let A=oA();E(0,"button",100),S("click",function(){K(A);let o=f().$index,n=f(2);return x(n.clickEvent(o))}),E(1,"mat-icon"),M(2,"bolt"),d(),M(3),d()}if(e&2){let A=f().$implicit;u(3),hA(" ",A.functionCall.name," ")}}function B3(e,t){if(e&1){let A=oA();E(0,"button",100),S("click",function(){K(A);let o=f().$index,n=f(2);return x(n.clickEvent(o))}),E(1,"mat-icon"),M(2,"check"),d(),M(3),d()}if(e&2){let A=f().$implicit;u(3),hA(" ",A.functionResponse.name," ")}}function c3(e,t){if(e&1&&(E(0,"div",103)(1,"div",104),M(2,"Actual tool uses:"),d(),Y(3,"ngx-json-viewer",48),d(),E(4,"div",105)(5,"div",106),M(6," Expected tool uses: "),d(),Y(7,"ngx-json-viewer",48),d()),e&2){let A=f(2).$implicit;u(3),N("json",A.actualInvocationToolUses),u(4),N("json",A.expectedInvocationToolUses)}}function Q3(e,t){if(e&1&&(E(0,"div",103)(1,"div",104),M(2,"Actual response:"),d(),E(3,"div"),M(4),d()(),E(5,"div",105)(6,"div",106),M(7,"Expected response:"),d(),E(8,"div"),M(9),d()()),e&2){let A=f(2).$implicit;u(4),SA(A.actualFinalResponse),u(5),SA(A.expectedFinalResponse)}}function E3(e,t){if(e&1&&(E(0,"div",102)(1,"span",107),M(2),d(),E(3,"span",108),M(4),d()()),e&2){let A=f(2).$implicit;u(2),hA("Match score: ",A.evalScore,""),u(2),hA("Threshold: ",A.evalThreshold,"")}}function l3(e,t){if(e&1&&(E(0,"div",80)(1,"div",101),L(2,c3,8,2)(3,Q3,10,2),d(),L(4,E3,5,2,"div",102),d()),e&2){let A=f().$implicit;u(2),_(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),u(2),_(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function d3(e,t){if(e&1){let A=oA();E(0,"div")(1,"span",109),S("click",function(){K(A);let o=f().$implicit,n=f(2);return x(n.editEvalCaseMessage(o))}),M(2," edit "),d(),E(3,"span",110),S("click",function(){K(A);let o=f(),n=o.$implicit,g=o.$index,r=f(2);return x(r.deleteEvalCaseMessage(n,g))}),M(4," delete "),d()()}if(e&2){let A=f(3);u(),N("ngClass",Ot(2,OS,A.isEvalCaseEditing())),u(2),N("ngClass",Ot(4,OS,A.isEvalCaseEditing()))}}function h3(e,t){e&1&&(E(0,"button",42)(1,"mat-icon"),M(2,"person"),d()())}function u3(e,t){if(e&1&&(E(0,"div",73),L(1,TV,3,1,"button",74),E(2,"mat-card",75),L(3,OV,1,0,"mat-progress-bar",76)(4,VV,3,0,"div",77),E(5,"div"),L(6,WV,2,0,"div",78),E(7,"div"),L(8,XV,2,1),d(),L(9,$V,2,1,"div"),d(),L(10,A3,2,1,"code")(11,e3,5,2,"div")(12,I3,2,1)(13,C3,4,1,"button",79)(14,B3,4,1,"button",79)(15,l3,5,2,"div",80),d(),E(16,"div",73)(17,"span",81),M(18),d(),E(19,"span"),M(20),d()(),L(21,d3,5,6,"div")(22,h3,3,0,"button",42),d()),e&2){let A=t.$implicit,i=t.$index,o=f(2);N("ngClass",Fn(20,IV,A.role==="user",A.role==="bot")),u(),_(A.role==="bot"?1:-1),u(),N("ngClass",Ot(23,CV,A.evalStatus===2))("ngStyle",Ot(25,rD,o.shouldMessageHighlighted(i)?"rgb(15, 82, 35)":"")),u(),_(A.isLoading?3:-1),u(),_(A.attachments?4:-1),u(2),_(A.thought?6:-1),u(2),_(A.text?8:-1),u(),_(A.renderedContent?9:-1),u(),_(A.executableCode?10:-1),u(),_(A.codeExecutionResult?11:-1),u(),_(A.inlineData?12:-1),u(),_(A.functionCall?13:-1),u(),_(A.functionResponse?14:-1),u(),_(A.failedMetric&&A.evalStatus===2?15:-1),u(),N("ngClass",Fn(27,BV,A.evalStatus===1,A.evalStatus===2)),u(2),SA(A.evalStatus===1?"check":A.evalStatus===2?"close":""),u(2),SA(A.evalStatus===1?"Pass":A.evalStatus===2?"Fail":""),u(),_(o.evalCase&&A.role==="bot"&&A.text&&o.isEvalEditMode()?21:-1),u(),_(A.role==="user"?22:-1)}}function m3(e,t){if(e&1&&(E(0,"div",25,1),Y(2,"div",null,2),ne(4,u3,23,30,"div",73,le),d()),e&2){let A=f();u(4),ge(A.messages)}}function p3(e,t){if(e&1){let A=oA();E(0,"div",118),Y(1,"img",120),E(2,"button",121),S("click",function(){K(A);let o=f().$index,n=f(3);return x(n.removeFile(o))}),E(3,"mat-icon",122),M(4,"close"),d()()()}if(e&2){let A=f().$implicit;u(),N("src",A.url,ri)}}function D3(e,t){if(e&1){let A=oA();E(0,"div",119)(1,"button",121),S("click",function(){K(A);let o=f().$index,n=f(3);return x(n.removeFile(o))}),E(2,"mat-icon",122),M(3,"close"),d()(),E(4,"div",123)(5,"mat-icon"),M(6,"insert_drive_file"),d(),E(7,"span"),M(8),d()()()}if(e&2){let A=f().$implicit;u(8),SA(A.file.name)}}function f3(e,t){if(e&1&&(E(0,"div"),L(1,p3,5,1,"div",118)(2,D3,9,1,"div",119),d()),e&2){let A=t.$implicit;u(),_(A.file.type.startsWith("image/")?1:-1),u(),_(A.file.type.startsWith("image/")?-1:2)}}function w3(e,t){if(e&1&&(E(0,"div",113),ne(1,f3,3,2,"div",null,le),d()),e&2){let A=f(2);u(),ge(A.selectedFiles)}}function y3(e,t){if(e&1){let A=oA();E(0,"div",26)(1,"input",111,4),S("change",function(o){K(A);let n=f();return x(n.onFileSelect(o))}),d(),E(3,"mat-form-field",112),L(4,w3,3,0,"div",113),E(5,"textarea",114),Tt("ngModelChange",function(o){K(A);let n=f();return ai(n.userInput,o)||(n.userInput=o),x(o)}),S("keydown.enter",function(o){K(A);let n=f();return x(n.sendMessage(o))}),d(),E(6,"div",115)(7,"button",116),S("click",function(){K(A);let o=He(2);return x(o.click())}),E(8,"mat-icon"),M(9,"attach_file"),d()(),E(10,"div")(11,"button",117),S("click",function(){K(A);let o=f();return x(o.toggleAudioRecording())}),E(12,"mat-icon"),M(13,"mic"),d()(),E(14,"button",117),S("click",function(){K(A);let o=f();return x(o.toggleVideoRecording())}),E(15,"mat-icon"),M(16,"videocam"),d()()()()()()}if(e&2){let A=f();u(4),_(A.selectedFiles.length&&A.appName!=""?4:-1),u(),Ht("ngModel",A.userInput),u(6),N("ngStyle",Ot(6,rD,A.isAudioRecording?"rgb(234, 67, 53)":"rgb(51, 53, 55)"))("matTooltip",A.isAudioRecording?"Turn off microphone":"Use microphone"),u(3),N("ngStyle",Ot(8,rD,A.isVideoRecording?"rgb(234, 67, 53)":"rgb(51, 53, 55)"))("matTooltip",A.isVideoRecording?"Turn off camera":"Use camera")}}function M3(e,t){if(e&1){let A=oA();E(0,"div",27,5),Y(2,"div",124),E(3,"app-trace-event",125),S("panelClosed",function(){K(A);let o=f();return x(o.closeTraceEventDetailPanel())}),d()()}if(e&2){let A=f();u(3),N("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}function b3(e){for(e=e.replace(/-/g,"+").replace(/_/g,"/");e.length%4!==0;)e+="=";return e}var sD=class extends Zg{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(t,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${t*A+1} of ${i}`)},PS="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",IC=class e{constructor(t,A,i,o,n,g,r,s,a,c,h,p){this.sanitizer=t;this.sessionService=A;this.artifactService=i;this.audioService=o;this.webSocketService=n;this.videoService=g;this.dialog=r;this.eventService=s;this.route=a;this.downloadService=c;this.evalService=h;this.traceService=p}videoContainer;sideDrawer;eventTabComponent;sessionTab;evalTab;scrollContainer;textarea;bottomPanelRef;_snackBar=C(_k);shouldShowEvalTab=Ne(!0);enableSseIndicator=Ne(!1);isChatMode=Ne(!0);isEvalCaseEditing=Ne(!1);hasEvalCaseChanged=Ne(!1);isEvalEditMode=Ne(!1);videoElement;currentMessage="";messages=[];lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=ut.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};messagesSubject=new PA([]);streamingTextMessageSubject=new PA(null);scrollInterruptedSubject=new PA(!0);isModelThinkingSubject=new PA(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];eventMessageIndexArray=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=sE;selectedFiles=[];previousMessageCount=0;openBase64InNewTab=Ep;MediaType=TI;router=C(wo);activatedRoute=C(Vt);selectedAppControl=new vg("",{nonNullable:!0});changeDetectorRef=C(DA);agentService=C(qn);isLoadingApps=Ne(!1);loadingError=Ne("");apps$=gA([]).pipe(me(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),ue(()=>this.agentService.listApps().pipe($e(t=>(this.loadingError.set(t.message),gA(void 0))))),he(1),me(t=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),t?.length==1&&this.router.navigate([],{relativeTo:this.route,queryParams:{app:t[0]}})}),Yo());traceTabEnabled=!0;bottomPanelVisible=!1;hoveredEventMessageIndices=[];ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.webSocketService.onCloseReason().subscribe(i=>{let o=`Please check server log for full details: -`+i;this.openSnackBar(o,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),yt([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,o])=>{let n=this.messages[this.messages.length-1];i?!n?.isLoading&&!this.streamingTextMessage&&(this.messages.push({role:"bot",isLoading:!0}),this.messagesSubject.next(this.messages)):n?.isLoading&&!o&&(this.messages.pop(),this.messagesSubject.next(this.messages),this.changeDetectorRef.detectChanges())}),yt([this.messagesSubject,this.scrollInterruptedSubject,this.streamingTextMessageSubject]).subscribe(([i,o,n])=>{o||setTimeout(()=>{this.scrollToBottom()},100)}),this.traceService.selectedTraceRow$.subscribe(i=>{let o=i?.attributes["gcp.vertex.agent.event_id"];o&&this.eventData.has(o)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndicies$.subscribe(i=>this.hoveredEventMessageIndices=i)}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer.open()}scrollToBottom(){setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"smooth"})})}selectApp(t){t!=this.appName&&(this.agentService.setApp(t),this.createSession(),this.eventData=new Map,this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.userInput="",this.longRunningEvents=[])}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(t=>{this.currentSessionState=t.state,this.sessionId=t.id,this.sessionTab.refreshSession()})}sendMessage(t){return Ze(this,null,function*(){if(this.messages.length===0&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterruptedSubject.next(!0)}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterruptedSubject.next(!0)})),this.scrollInterruptedSubject.next(!1),t.preventDefault(),!this.userInput.trim())return;if(this.messages.push({role:"user",text:this.userInput}),this.messagesSubject.next(this.messages),this.selectedFiles.length>0){let o=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.push({role:"user",attachments:o}),this.messagesSubject.next(this.messages)}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse};this.selectedFiles=[];let i=this.eventMessageIndexArray.length-1;this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:o=>Ze(this,null,function*(){if(o.startsWith('{"error"')){this.openSnackBar(o,"OK");return}let n=JSON.parse(o);if(n.error){this.openSnackBar(n.error,"OK");return}if(n.content)for(let g of n.content.parts)i+=1,this.processPart(n,g,i),this.traceService.setEventData(this.eventData);this.changeDetectorRef.detectChanges()}),error:o=>console.error("SSE error:",o),complete:()=>{this.streamingTextMessage=null,this.sessionTab.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe($e(o=>o.status===404?gA(null):gA([]))).subscribe(o=>{this.traceData=o}),this.traceService.setMessages(this.messages)}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processPart(t,A,i){let o=t.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let n=A.text;if(A.thought){if(n!==this.latestThought){this.storeEvents(A,t,i);let g={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:t.id};this.insertMessageBeforeLoadingMessage(g)}this.latestThought=n}else if(this.streamingTextMessage){if(o&&(this.streamingTextMessage.renderedContent=t.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(A,t,i),this.eventMessageIndexArray[i]=n,this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n,this.streamingTextMessageSubject.next(this.streamingTextMessage)}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!A.thought,eventId:t.id},o&&(this.streamingTextMessage.renderedContent=t.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,t,i),this.eventMessageIndexArray[i]=n,this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,t,i),this.storeMessage(A,t,i,t.author==="user"?"user":"bot"))}getUserMessageParts(){return Ze(this,null,function*(){let t=[{text:`${this.userInput}`}];if(this.selectedFiles.length>0)for(let A of this.selectedFiles)t.push({inlineData:{displayName:A.file.name,data:yield this.readFileAsBytes(A.file),mimeType:A.file.type}});return t})}readFileAsBytes(t){return new Promise((A,i)=>{let o=new FileReader;o.onload=n=>{let g=n.target.result.split(",")[1];A(g)},o.onerror=i,o.readAsDataURL(t)})}updateRedirectUri(t,A){try{let i=new URL(t);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),t}}storeMessage(t,A,i,o,n,g){if(A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts);let s=this.longRunningEvents[0];if(s.args.authConfig&&s.args.authConfig.exchangedAuthCredential&&s.args.authConfig.exchangedAuthCredential.oauth2){let a=s.args.authConfig.exchangedAuthCredential.oauth2.authUri,c=this.updateRedirectUri(a,this.redirectUri);this.openOAuthPopup(c).then(h=>{this.functionCallEventId=A.id,this.sendOAuthResponse(s,h,this.redirectUri)}).catch(h=>{console.error("OAuth Error:",h)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let s in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifactDelta[s]);A?.evalStatus&&this.isChatMode.set(!1);let r={role:o,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:n!==void 0?n:void 0,finalResponsePartIndex:g!==void 0?g:void 0};if(t.inlineData){let s=this.formatBase64Data(t.inlineData.data,t.inlineData.mimeType);r.inlineData={displayName:t.inlineData.displayName,data:s,mimeType:t.inlineData.mimeType},this.eventMessageIndexArray[i]=t.inlineData}else if(t.text)r.text=t.text,r.thought=!!t.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(r.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),this.eventMessageIndexArray[i]=t.text;else if(t.functionCall)r.functionCall=t.functionCall,r.eventId=A?.id,this.eventMessageIndexArray[i]=t.functionCall;else if(t.functionResponse)r.functionResponse=t.functionResponse,r.eventId=A?.id,this.eventMessageIndexArray[i]=t.functionResponse;else if(t.executableCode)r.executableCode=t.executableCode,this.eventMessageIndexArray[i]=t.executableCode;else if(t.codeExecutionResult&&(r.codeExecutionResult=t.codeExecutionResult,this.eventMessageIndexArray[i]=t.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let s in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifact_delta[s]);Object.keys(t).length>0&&this.insertMessageBeforeLoadingMessage(r)}insertMessageBeforeLoadingMessage(t){this.messages[this.messages.length-1]?.isLoading?this.messages.splice(this.messages.length-1,0,t):this.messages.push(t),this.messagesSubject.next(this.messages)}formatBase64Data(t,A){let i=b3(t);return`data:${A};base64,${i}`}renderArtifact(t,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let o=this.messages.length-2;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,t,A).subscribe(n=>{let g=n.inlineData.mimeType,r=this.formatBase64Data(n.inlineData.data,g),s=sE(g),a={name:this.createDefaultArtifactName(g),data:r,mimeType:g,mediaType:s};this.messages[o]={role:"bot",inlineData:a},this.artifacts=[...this.artifacts,{id:t,data:r,mimeType:g,versionId:A,mediaType:sE(g)}]})}storeEvents(t,A,i){let o="";t.text?o+="text:"+t.text:t.functionCall?o+="functionCall:"+t.functionCall.name:t.functionResponse?o+="functionResponse:"+t.functionResponse.name:t.executableCode?o+="executableCode:"+t.executableCode.code.slice(0,10):t.codeExecutionResult&&(o+="codeExecutionResult:"+t.codeExecutionResult.outcome),A.title=o,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(t,A,i){this.longRunningEvents.pop();let o={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var n=structuredClone(t.args.authConfig);n.exchangedAuthCredential.oauth2.authResponseUri=A,n.exchangedAuthCredential.oauth2.redirectUri=i,o.functionCallEventId=this.functionCallEventId,o.newMessage.parts.push({function_response:{id:t.id,name:t.name,response:n}}),this.agentService.run(o).subscribe(g=>{this.processRunResponse(g)})}processRunResponse(t){let A=this.eventMessageIndexArray.length-1;for(let i of t)if(i.content)for(let o of i.content.parts)A+=1,this.processPart(i,o,A)}openDialog(){this.dialog.open(jI,{width:"600px",data:{event:this.longRunningEvents[0],appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunResponse(A.response))})}removeFinishedLongRunningEvents(t){let A=new Set(t.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}clickEvent(t){let A=this.messages[t].eventId;this.sideDrawer.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A),this.eventService.getEventTrace(this.selectedEvent.id).subscribe(i=>{this.llmRequest=JSON.parse(i[this.llmRequestKey]),this.llmResponse=JSON.parse(i[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(i=>Ze(this,null,function*(){if(!i.dotSrc){this.renderedEventGraph=void 0;return}let o=i.dotSrc,g=(yield UI()).renderString(o,{format:"svg",engine:"dot"});this.rawSvgString=g,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(g)}))}userMessagesLength(t){return this.messages.slice(0,t).filter(A=>A.role=="user").length}ngOnDestroy(){this.webSocketService.closeConnection()}onAppSelection(t){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab?.resetEvalResults()}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(PS,"OK");return}this.isAudioRecording=!0;let t=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${t}://${ut.getWSServerUrl()}/run_live?app_name=${this.appName}&user_id=${this.userId}&session_id=${this.sessionId}`),this.audioService.startRecording(),this.messages.push({role:"user",text:"Speaking..."}),this.messages.push({role:"bot",text:"Speaking..."}),this.messagesSubject.next(this.messages),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.audioService.stopRecording(),this.webSocketService.closeConnection(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(PS,"OK");return}this.isVideoRecording=!0;let t=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${t}://${ut.getWSServerUrl()}/run_live?app_name=${this.appName}&user_id=${this.userId}&session_id=${this.sessionId}`),this.videoService.startRecording(this.videoContainer),this.audioService.startRecording(),this.messages.push({role:"user",text:"Speaking..."}),this.messagesSubject.next(this.messages),this.sessionHasUsedBidi.add(this.sessionId)}stopVideoRecording(){this.audioService.stopRecording(),this.videoService.stopRecording(this.videoContainer),this.webSocketService.closeConnection(),this.isVideoRecording=!1}getAsyncFunctionsFromParts(t,A){for(let i of A)i.functionCall&&t.includes(i.functionCall.id)&&this.longRunningEvents.push(i.functionCall)}openOAuthPopup(t){return new Promise((A,i)=>{if(!window.open(t,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}window.addEventListener("message",n=>{if(n.origin!==window.location.origin)return;let{authResponseUrl:g}=n.data;g?A(g):i("OAuth failed")},{once:!0})})}toggleSidePanel(){this.showSidePanel?this.sideDrawer.close():this.sideDrawer.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(t){this.isChatMode()||this.handleReturnToSession(!0)}handleShouldShowEvalTab(t){this.shouldShowEvalTab.set(t)}handleReturnToSession(t){this.sessionTab.getSession(this.sessionId),this.evalTab.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(t){t&&this.openSnackBar(t,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.messagesSubject.next(this.messages),this.artifacts=[]}updateWithSelectedSession(t){if(!t||!t.id||!t.events||!t.state)return;this.sessionId=t.id,this.currentSessionState=t.state,this.evalCase=null,this.isChatMode.set(!0),this.resetEventsAndMessages();let A=0;t.events.forEach(i=>{i.content?.parts?.forEach(o=>{this.storeMessage(o,i,A,i.author==="user"?"user":"bot"),A+=1,i.author&&i.author!=="user"&&this.storeEvents(o,i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(i=>{this.traceData=i})}updateWithSelectedEvalCase(t){this.evalCase=t,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0,i=0;for(let o of t.conversation){if(o.userContent?.parts)for(let n of o.userContent.parts)this.storeMessage(n,null,A,"user"),A++;if(o.intermediateData?.toolUses)for(let n of o.intermediateData.toolUses){let g={functionCall:{name:n.name}};this.storeMessage(g,null,A,"bot"),A++;let r={functionResponse:{name:n.name}};this.storeMessage(r,null,A,"bot"),A++}if(o.finalResponse?.parts){let n=0;for(let g of o.finalResponse.parts)this.storeMessage(g,null,A,"bot",i,n),A++,n++}i++}}updateSelectedEvalSetId(t){this.evalSetId=t}editEvalCaseMessage(t){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=t.text,t.isEditing=!0,setTimeout(()=>{this.textarea?.nativeElement.focus();let A=this.textarea?.nativeElement.value.length;t.text.charAt(A-1)===` -`&&A--,this.textarea?.nativeElement.setSelectionRange(A,A)},0)}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(t=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(t){t.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(t){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),t.isEditing=!1,t.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[t.invocationIndex].finalResponse.parts[t.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(t,A){t.key==="Enter"&&!t.shiftKey?(t.preventDefault(),this.saveEditMessage(A)):t.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(t,A){this.hasEvalCaseChanged.set(!0),this.messages.splice(A,1),this.messagesSubject.next(this.messages),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[t.invocationIndex].finalResponse.parts.splice(t.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let t={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(Ns,{width:"600px",data:t}).afterClosed().subscribe(i=>{i&&(this.evalTab.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}updateSessionState(t){this.currentSessionState=t.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.evalTab.showEvalHistory&&this.evalTab.toggleEvalHistoryButton()}onFileSelect(t){let A=t.target;if(A.files)for(let i=0;i{this.llmRequest=JSON.parse(A[this.llmRequestKey]),this.llmResponse=JSON.parse(A[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(A=>Ze(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=(yield UI()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}deleteSession(t){let A={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(Ns,{width:"600px",data:A}).afterClosed().subscribe(o=>{o&&this.sessionService.deleteSession(this.userId,this.appName,t).subscribe(n=>{let g=this.sessionTab.refreshSession(t);g?this.sessionTab.getSession(g.id):window.location.reload()})})}syncSelectedAppFromUrl(){yt([this.router.events.pipe(MA(t=>t instanceof di),CA(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([t,A])=>{if(A&&A.length){let i=t.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(Ui(),MA(Boolean)).subscribe(t=>{this.selectApp(t);let A=this.activatedRoute.snapshot.queryParams.app;t!==A&&this.router.navigate([],{queryParams:{app:t},queryParamsHandling:"merge"})})}handlePageEvent(t){if(t.pageIndex>=0){let A=this.getKeyAtIndexInMap(t.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(t){let A=0,i=(n,g)=>0,o=Array.from(this.eventData.keys()).sort(i);for(let n of o){if(n===t)return A;A++}}getKeyAtIndexInMap(t){let A=(o,n)=>0,i=Array.from(this.eventData.keys()).sort(A);if(t>=0&&t{console.log(t),this.downloadService.downloadObjectAsJson(t,`session-${this.sessionId}.json`)})}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}shouldMessageHighlighted(t){return this.hoveredEventMessageIndices.includes(t)}static \u0275fac=function(A){return new(A||e)(O(qi),O(vo),O(Gs),O(_s),O(So),O(Ls),O(Ft),O($n),O(Vt),O(zn),O(Ni),O(Fo))};static \u0275cmp=H({type:e,selectors:[["app-chat"]],viewQuery:function(A,i){if(A&1&&(IA(oV,5,z),IA(nV,5),IA(zg,5),IA(jg,5),IA(Wg,5),IA(gV,5),IA(rV,5),IA(sV,5)),A&2){let o;V(o=W())&&(i.videoContainer=o.first),V(o=W())&&(i.sideDrawer=o.first),V(o=W())&&(i.eventTabComponent=o.first),V(o=W())&&(i.sessionTab=o.first),V(o=W())&&(i.evalTab=o.first),V(o=W())&&(i.scrollContainer=o.first),V(o=W())&&(i.textarea=o.first),V(o=W())&&(i.bottomPanelRef=o.first)}},standalone:!1,features:[pA([{provide:Zg,useClass:sD}])],decls:28,vars:15,consts:[["sideDrawer",""],["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],["matTooltip","Collapse panel",1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click"],[1,"app-select-container"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[3,"value"],[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[1,"chat-container"],[1,"chat-toolbar"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[1,"chat-messages"],[1,"chat-input"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"artifacts"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[3,"traceData"],[1,"tab-label"],[3,"shouldShowTab","sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],["aria-label","Select event",1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],["label","Event"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],[3,"click","innerHtml"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip"],[1,"message-card",3,"ngClass","ngStyle"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],["mat-stroked-button","",1,"function-event-button"],[1,"eval-compare-container"],[1,"material-symbols-outlined"],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[1,"message-text",3,"data","ngStyle"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],["matTooltip","Cancel editing",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-right","16px",3,"click"],["matTooltip","Save eval case message",1,"material-symbols-outlined",2,"width","24px","height","24px","color","rgb(97, 151, 202)","cursor","pointer","margin-right","16px",3,"click"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],["mat-stroked-button","",1,"function-event-button",3,"click"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["matTooltip","Edit eval case message",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["matTooltip","Delete eval case message",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10","placeholder","Type a Message...",1,"chat-input-box",2,"caret-color","white",3,"ngModelChange","keydown.enter","ngModel"],[1,"chat-input-actions"],["mat-icon-button","","matTooltip","Upload local file",1,"function-event-button",3,"click"],["mat-icon-button","","matSuffix","",3,"click","ngStyle","matTooltip"],[1,"image-container"],[1,"file-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let o=oA();E(0,"mat-drawer-container",6),L(1,QV,2,0,"span",7),E(2,"mat-drawer",8,0)(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12),Y(8,"img",13),M(9," Agent Development Kit "),d(),E(10,"span",14),S("click",function(){return K(o),x(i.toggleSidePanel())}),M(11,"left_panel_close"),d()()()(),E(12,"div",15)(13,"mat-select",16),S("selectionChange",function(g){return K(o),x(i.onAppSelection(g))}),L(14,lV,2,0),Pi(15,"async"),L(16,dV,2,2,"mat-option",17),d()(),L(17,MV,16,9,"div",18)(18,RV,20,7,"div",19),Y(19,"div",20),d(),E(20,"div",21),L(21,GV,4,2,"div",22),E(22,"mat-card",23),L(23,JV,2,1)(24,HV,3,0,"button",24)(25,m3,6,0,"div",25)(26,y3,17,10,"div",26),d(),L(27,M3,4,3,"div",27),d()()}if(A&2){let o;u(),_(!i.showSidePanel&&i.appName===""?1:-1),u(12),N("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),u(),_((o=Or(15,13,i.apps$))?14:-1,o),u(2),_(i.selectedAppControl.value&&i.isLoadingApps()?16:-1),u(),_(i.appName!=""&&i.showSidePanel?17:-1),u(),_(i.selectedEvent&&i.showSidePanel?18:-1),u(3),_(i.appName!=""?21:-1),u(2),_(i.selectedAppControl.value?-1:23),u(),_(i.longRunningEvents.length>0?24:-1),u(),_(i.appName!=""?25:-1),u(),_(i.appName!=""&&i.isChatMode()?26:-1),u(),_(i.bottomPanelVisible?27:-1)}},dependencies:[Ci,xa,bi,Zt,Qi,Wv,jn,ko,wk,Xn,vv,It,ps,ik,tk,ap,Uv,Ks,Yp,Jp,Zp,$I,fE,bs,Hn,Rs,IS,SS,SE,Hu,zg,jg,Wg,HI,oC,qg,nC,gC,sC,aC,Ya],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:#131314}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;border-radius:8px}.chat-container[_ngcontent-%COMP%]{width:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1;height:100%}.event-container[_ngcontent-%COMP%]{color:#fff}.html-artifact-container[_ngcontent-%COMP%], .drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:#bdc1c6;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:#131314}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#004a77;align-self:flex-end;color:#fff;box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#303030;align-self:flex-start;color:#fff;box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:#131314;border:1px solid #8ab4f8}.message-textarea[_ngcontent-%COMP%]{background-color:#303030;max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:#131314;outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:#484848;overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid #8a8686;padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid #8a8686;font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:#44c265}.header-actual[_ngcontent-%COMP%]{color:#ff8983}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:#44c265}.eval-fail[_ngcontent-%COMP%]{display:flex;color:#ff8983}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.hidden[_ngcontent-%COMP%]{visibility:hidden}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:#fff;border:none;padding:10px;box-sizing:content-box}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:#8e918f}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;background-color:#333537}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:#1b1b1b;color:#fff;border-radius:0}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:#eee;padding:5px;border-radius:4px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.app-select[_ngcontent-%COMP%]{width:100%}.empty-state-container[_ngcontent-%COMP%]{color:#eee;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Open Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:#ffc185}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:#ff4545}.function-event-button[_ngcontent-%COMP%]{background-color:#fff;margin-left:0}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:#202124;background-color:#8ab4f8}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:#fff}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid #8e918f}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid #8e918f;border-radius:16px}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:#d3d3d3!important}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:#fff}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:#000}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.resize-handler[_ngcontent-%COMP%]{background:#5f6368;width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.bottom-resize-handler[_ngcontent-%COMP%]{background:#5f6368;height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:#1b1b1b}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.app-select-container[_ngcontent-%COMP%]{width:30%;margin-top:12px;background-color:#212123;margin-left:20px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: #8ab4f8}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none!important}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:#242424;display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:#fff;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.drawer-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: #89b4f8}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: black}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:#1b1b1b;display:flex;align-items:center;z-index:10}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:#fdfdfd;font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:#9aa0a6;font-family:monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:#c4c7c5;cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:#9aa0a6;cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: #9aa0a6}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:#000000b3;border:none;border-radius:50%;padding:8px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:#1e1e1e;border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:#8ab4f8;width:80px;text-align:center;margin-top:5px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:#007bff!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid #444746!important}"],changeDetection:0})};var xs=class e{title="agent_framework_web";userId="";appName="";sessionId="";constructor(){}static \u0275fac=function(A){return new(A||e)};static \u0275cmp=H({type:e,selectors:[["app-root"]],standalone:!1,decls:1,vars:0,template:function(A,i){A&1&&Y(0,"app-chat")},dependencies:[IC],encapsulation:2})};var k3=[{path:"",component:xs}],FE=class e{static \u0275fac=function(A){return new(A||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[fQ.forRoot(k3),fQ]})};function ZS(e){return new P(3e3,!1)}function v3(){return new P(3100,!1)}function S3(){return new P(3101,!1)}function F3(e){return new P(3001,!1)}function N3(e){return new P(3003,!1)}function G3(e){return new P(3004,!1)}function VS(e,t){return new P(3005,!1)}function WS(){return new P(3006,!1)}function zS(){return new P(3007,!1)}function jS(e,t){return new P(3008,!1)}function XS(e){return new P(3002,!1)}function $S(e,t,A,i,o){return new P(3010,!1)}function AF(){return new P(3011,!1)}function eF(){return new P(3012,!1)}function tF(){return new P(3200,!1)}function iF(){return new P(3202,!1)}function oF(){return new P(3013,!1)}function nF(e){return new P(3014,!1)}function gF(e){return new P(3015,!1)}function rF(e){return new P(3016,!1)}function sF(e,t){return new P(3404,!1)}function _3(e){return new P(3502,!1)}function aF(e){return new P(3503,!1)}function IF(){return new P(3300,!1)}function CF(e){return new P(3504,!1)}function BF(e){return new P(3301,!1)}function cF(e,t){return new P(3302,!1)}function QF(e){return new P(3303,!1)}function EF(e,t){return new P(3400,!1)}function lF(e){return new P(3401,!1)}function dF(e){return new P(3402,!1)}function hF(e,t){return new P(3505,!1)}function Qn(e){switch(e.length){case 0:return new bo;case 1:return e[0];default:return new Pg(e)}}function BD(e,t,A=new Map,i=new Map){let o=[],n=[],g=-1,r=null;if(t.forEach(s=>{let a=s.get("offset"),c=a==g,h=c&&r||new Map;s.forEach((p,D)=>{let w=D,R=p;if(D!=="offset")switch(w=e.normalizePropertyName(w,o),R){case Ms:R=A.get(D);break;case ki:R=i.get(D);break;default:R=e.normalizeStyleValue(D,w,R,o);break}h.set(w,R)}),c||n.push(h),r=h,g=a}),o.length)throw _3(o);return n}function NE(e,t,A,i){switch(t){case"start":e.onStart(()=>i(A&&aD(A,"start",e)));break;case"done":e.onDone(()=>i(A&&aD(A,"done",e)));break;case"destroy":e.onDestroy(()=>i(A&&aD(A,"destroy",e)));break}}function aD(e,t,A){let i=A.totalTime,o=!!A.disabled,n=GE(e.element,e.triggerName,e.fromState,e.toState,t||e.phaseName,i??e.totalTime,o),g=e._data;return g!=null&&(n._data=g),n}function GE(e,t,A,i,o="",n=0,g){return{element:e,triggerName:t,fromState:A,toState:i,phaseName:o,totalTime:n,disabled:!!g}}function Ai(e,t,A){let i=e.get(t);return i||e.set(t,i=A),i}function cD(e){let t=e.indexOf(":"),A=e.substring(1,t),i=e.slice(t+1);return[A,i]}var L3=typeof document>"u"?null:document.documentElement;function _E(e){let t=e.parentNode||e.host||null;return t===L3?null:t}function K3(e){return e.substring(1,6)=="ebkit"}var Ar=null,qS=!1;function uF(e){Ar||(Ar=x3()||{},qS=Ar.style?"WebkitAppearance"in Ar.style:!1);let t=!0;return Ar.style&&!K3(e)&&(t=e in Ar.style,!t&&qS&&(t="Webkit"+e.charAt(0).toUpperCase()+e.slice(1)in Ar.style)),t}function x3(){return typeof document<"u"?document.body:null}function QD(e,t){for(;t;){if(t===e)return!0;t=_E(t)}return!1}function ED(e,t,A){if(A)return Array.from(e.querySelectorAll(t));let i=e.querySelector(t);return i?[i]:[]}var U3=1e3,lD="{{",Y3="}}",dD="ng-enter",LE="ng-leave",CC="ng-trigger",BC=".ng-trigger",hD="ng-animating",KE=".ng-animating";function Go(e){if(typeof e=="number")return e;let t=e.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:ID(parseFloat(t[1]),t[2])}function ID(e,t){switch(t){case"s":return e*U3;default:return e}}function cC(e,t,A){return e.hasOwnProperty("duration")?e:J3(e,t,A)}function J3(e,t,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,o,n=0,g="";if(typeof e=="string"){let r=e.match(i);if(r===null)return t.push(ZS(e)),{duration:0,delay:0,easing:""};o=ID(parseFloat(r[1]),r[2]);let s=r[3];s!=null&&(n=ID(parseFloat(s),r[4]));let a=r[5];a&&(g=a)}else o=e;if(!A){let r=!1,s=t.length;o<0&&(t.push(v3()),r=!0),n<0&&(t.push(S3()),r=!0),r&&t.splice(s,0,ZS(e))}return{duration:o,delay:n,easing:g}}function mF(e){return e.length?e[0]instanceof Map?e:e.map(t=>new Map(Object.entries(t))):[]}function $i(e,t,A){t.forEach((i,o)=>{let n=xE(o);A&&!A.has(o)&&A.set(o,e.style[n]),e.style[n]=i})}function eg(e,t){t.forEach((A,i)=>{let o=xE(i);e.style[o]=""})}function Us(e){return Array.isArray(e)?e.length==1?e[0]:Ek(e):e}function pF(e,t,A){let i=t.params||{},o=uD(e);o.length&&o.forEach(n=>{i.hasOwnProperty(n)||A.push(F3(n))})}var CD=new RegExp(`${lD}\\s*(.+?)\\s*${Y3}`,"g");function uD(e){let t=[];if(typeof e=="string"){let A;for(;A=CD.exec(e);)t.push(A[1]);CD.lastIndex=0}return t}function Ys(e,t,A){let i=`${e}`,o=i.replace(CD,(n,g)=>{let r=t[g];return r==null&&(A.push(N3(g)),r=""),r.toString()});return o==i?e:o}var H3=/-+([a-z0-9])/g;function xE(e){return e.replace(H3,(...t)=>t[1].toUpperCase())}function DF(e,t){return e===0||t===0}function fF(e,t,A){if(A.size&&t.length){let i=t[0],o=[];if(A.forEach((n,g)=>{i.has(g)||o.push(g),i.set(g,n)}),o.length)for(let n=1;ng.set(r,UE(e,r)))}}return t}function ei(e,t,A){switch(t.type){case HA.Trigger:return e.visitTrigger(t,A);case HA.State:return e.visitState(t,A);case HA.Transition:return e.visitTransition(t,A);case HA.Sequence:return e.visitSequence(t,A);case HA.Group:return e.visitGroup(t,A);case HA.Animate:return e.visitAnimate(t,A);case HA.Keyframes:return e.visitKeyframes(t,A);case HA.Style:return e.visitStyle(t,A);case HA.Reference:return e.visitReference(t,A);case HA.AnimateChild:return e.visitAnimateChild(t,A);case HA.AnimateRef:return e.visitAnimateRef(t,A);case HA.Query:return e.visitQuery(t,A);case HA.Stagger:return e.visitStagger(t,A);default:throw G3(t.type)}}function UE(e,t){return window.getComputedStyle(e)[t]}var LD=(()=>{class e{validateStyleProperty(A){return uF(A)}containsElement(A,i){return QD(A,i)}getParentElement(A){return _E(A)}query(A,i,o){return ED(A,i,o)}computeStyle(A,i,o){return o||""}animate(A,i,o,n,g,r=[],s){return new bo(o,n)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})(),tr=class{static NOOP=new LD},ir=class{};var T3=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),OE=class extends ir{normalizePropertyName(t,A){return xE(t)}normalizeStyleValue(t,A,i,o){let n="",g=i.toString().trim();if(T3.has(A)&&i!==0&&i!=="0")if(typeof i=="number")n="px";else{let r=i.match(/^[+-]?[\d\.]+([a-z]*)$/);r&&r[1].length==0&&o.push(VS(t,i))}return g+n}};var PE="*";function O3(e,t){let A=[];return typeof e=="string"?e.split(/\s*,\s*/).forEach(i=>P3(i,A,t)):A.push(e),A}function P3(e,t,A){if(e[0]==":"){let s=Z3(e,A);if(typeof s=="function"){t.push(s);return}e=s}let i=e.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(gF(e)),t;let o=i[1],n=i[2],g=i[3];t.push(wF(o,g));let r=o==PE&&g==PE;n[0]=="<"&&!r&&t.push(wF(g,o))}function Z3(e,t){switch(e){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var YE=new Set(["true","1"]),JE=new Set(["false","0"]);function wF(e,t){let A=YE.has(e)||JE.has(e),i=YE.has(t)||JE.has(t);return(o,n)=>{let g=e==PE||e==o,r=t==PE||t==n;return!g&&A&&typeof o=="boolean"&&(g=o?YE.has(e):JE.has(e)),!r&&i&&typeof n=="boolean"&&(r=n?YE.has(t):JE.has(t)),g&&r}}var GF=":self",q3=new RegExp(`s*${GF}s*,?`,"g");function _F(e,t,A,i){return new yD(e).build(t,A,i)}var yF="",yD=class{_driver;constructor(t){this._driver=t}build(t,A,i){let o=new MD(A);return this._resetContextStyleTimingState(o),ei(this,Us(t),o)}_resetContextStyleTimingState(t){t.currentQuerySelector=yF,t.collectedStyles=new Map,t.collectedStyles.set(yF,new Map),t.currentTime=0}visitTrigger(t,A){let i=A.queryCount=0,o=A.depCount=0,n=[],g=[];return t.name.charAt(0)=="@"&&A.errors.push(WS()),t.definitions.forEach(r=>{if(this._resetContextStyleTimingState(A),r.type==HA.State){let s=r,a=s.name;a.toString().split(/\s*,\s*/).forEach(c=>{s.name=c,n.push(this.visitState(s,A))}),s.name=a}else if(r.type==HA.Transition){let s=this.visitTransition(r,A);i+=s.queryCount,o+=s.depCount,g.push(s)}else A.errors.push(zS())}),{type:HA.Trigger,name:t.name,states:n,transitions:g,queryCount:i,depCount:o,options:null}}visitState(t,A){let i=this.visitStyle(t.styles,A),o=t.options&&t.options.params||null;if(i.containsDynamicStyles){let n=new Set,g=o||{};i.styles.forEach(r=>{r instanceof Map&&r.forEach(s=>{uD(s).forEach(a=>{g.hasOwnProperty(a)||n.add(a)})})}),n.size&&A.errors.push(jS(t.name,[...n.values()]))}return{type:HA.State,name:t.name,style:i,options:o?{params:o}:null}}visitTransition(t,A){A.queryCount=0,A.depCount=0;let i=ei(this,Us(t.animation),A),o=O3(t.expr,A.errors);return{type:HA.Transition,matchers:o,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:er(t.options)}}visitSequence(t,A){return{type:HA.Sequence,steps:t.steps.map(i=>ei(this,i,A)),options:er(t.options)}}visitGroup(t,A){let i=A.currentTime,o=0,n=t.steps.map(g=>{A.currentTime=i;let r=ei(this,g,A);return o=Math.max(o,A.currentTime),r});return A.currentTime=o,{type:HA.Group,steps:n,options:er(t.options)}}visitAnimate(t,A){let i=j3(t.timings,A.errors);A.currentAnimateTimings=i;let o,n=t.styles?t.styles:Pe({});if(n.type==HA.Keyframes)o=this.visitKeyframes(n,A);else{let g=t.styles,r=!1;if(!g){r=!0;let a={};i.easing&&(a.easing=i.easing),g=Pe(a)}A.currentTime+=i.duration+i.delay;let s=this.visitStyle(g,A);s.isEmptyStep=r,o=s}return A.currentAnimateTimings=null,{type:HA.Animate,timings:i,style:o,options:null}}visitStyle(t,A){let i=this._makeStyleAst(t,A);return this._validateStyleAst(i,A),i}_makeStyleAst(t,A){let i=[],o=Array.isArray(t.styles)?t.styles:[t.styles];for(let r of o)typeof r=="string"?r===ki?i.push(r):A.errors.push(XS(r)):i.push(new Map(Object.entries(r)));let n=!1,g=null;return i.forEach(r=>{if(r instanceof Map&&(r.has("easing")&&(g=r.get("easing"),r.delete("easing")),!n)){for(let s of r.values())if(s.toString().indexOf(lD)>=0){n=!0;break}}}),{type:HA.Style,styles:i,easing:g,offset:t.offset,containsDynamicStyles:n,options:null}}_validateStyleAst(t,A){let i=A.currentAnimateTimings,o=A.currentTime,n=A.currentTime;i&&n>0&&(n-=i.duration+i.delay),t.styles.forEach(g=>{typeof g!="string"&&g.forEach((r,s)=>{let a=A.collectedStyles.get(A.currentQuerySelector),c=a.get(s),h=!0;c&&(n!=o&&n>=c.startTime&&o<=c.endTime&&(A.errors.push($S(s,c.startTime,c.endTime,n,o)),h=!1),n=c.startTime),h&&a.set(s,{startTime:n,endTime:o}),A.options&&pF(r,A.options,A.errors)})})}visitKeyframes(t,A){let i={type:HA.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(AF()),i;let o=1,n=0,g=[],r=!1,s=!1,a=0,c=t.steps.map(iA=>{let kA=this._makeStyleAst(iA,A),NA=kA.offset!=null?kA.offset:z3(kA.styles),fe=0;return NA!=null&&(n++,fe=kA.offset=NA),s=s||fe<0||fe>1,r=r||fe0&&n{let NA=p>0?kA==D?1:p*kA:g[kA],fe=NA*q;A.currentTime=w+R.delay+fe,R.duration=fe,this._validateStyleAst(iA,A),iA.offset=NA,i.styles.push(iA)}),i}visitReference(t,A){return{type:HA.Reference,animation:ei(this,Us(t.animation),A),options:er(t.options)}}visitAnimateChild(t,A){return A.depCount++,{type:HA.AnimateChild,options:er(t.options)}}visitAnimateRef(t,A){return{type:HA.AnimateRef,animation:this.visitReference(t.animation,A),options:er(t.options)}}visitQuery(t,A){let i=A.currentQuerySelector,o=t.options||{};A.queryCount++,A.currentQuery=t;let[n,g]=V3(t.selector);A.currentQuerySelector=i.length?i+" "+n:n,Ai(A.collectedStyles,A.currentQuerySelector,new Map);let r=ei(this,Us(t.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:HA.Query,selector:n,limit:o.limit||0,optional:!!o.optional,includeSelf:g,animation:r,originalSelector:t.selector,options:er(t.options)}}visitStagger(t,A){A.currentQuery||A.errors.push(oF());let i=t.timings==="full"?{duration:0,delay:0,easing:"full"}:cC(t.timings,A.errors,!0);return{type:HA.Stagger,animation:ei(this,Us(t.animation),A),timings:i,options:null}}};function V3(e){let t=!!e.split(/\s*,\s*/).find(A=>A==GF);return t&&(e=e.replace(q3,"")),e=e.replace(/@\*/g,BC).replace(/@\w+/g,A=>BC+"-"+A.slice(1)).replace(/:animating/g,KE),[e,t]}function W3(e){return e?v({},e):null}var MD=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(t){this.errors=t}};function z3(e){if(typeof e=="string")return null;let t=null;if(Array.isArray(e))e.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(e instanceof Map&&e.has("offset")){let A=e;t=parseFloat(A.get("offset")),A.delete("offset")}return t}function j3(e,t){if(e.hasOwnProperty("duration"))return e;if(typeof e=="number"){let n=cC(e,t).duration;return mD(n,0,"")}let A=e;if(A.split(/\s+/).some(n=>n.charAt(0)=="{"&&n.charAt(1)=="{")){let n=mD(0,0,"");return n.dynamic=!0,n.strValue=A,n}let o=cC(A,t);return mD(o.duration,o.delay,o.easing)}function er(e){return e?(e=v({},e),e.params&&(e.params=W3(e.params))):e={},e}function mD(e,t,A){return{duration:e,delay:t,easing:A}}function KD(e,t,A,i,o,n,g=null,r=!1){return{type:1,element:e,keyframes:t,preStyleProps:A,postStyleProps:i,duration:o,delay:n,totalTime:o+n,easing:g,subTimeline:r}}var EC=class{_map=new Map;get(t){return this._map.get(t)||[]}append(t,A){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...A)}has(t){return this._map.has(t)}clear(){this._map.clear()}},X3=1,$3=":enter",AW=new RegExp($3,"g"),eW=":leave",tW=new RegExp(eW,"g");function LF(e,t,A,i,o,n=new Map,g=new Map,r,s,a=[]){return new bD().buildKeyframes(e,t,A,i,o,n,g,r,s,a)}var bD=class{buildKeyframes(t,A,i,o,n,g,r,s,a,c=[]){a=a||new EC;let h=new RD(t,A,a,o,n,c,[]);h.options=s;let p=s.delay?Go(s.delay):0;h.currentTimeline.delayNextStep(p),h.currentTimeline.setStyles([g],null,h.errors,s),ei(this,i,h);let D=h.timelines.filter(w=>w.containsAnimation());if(D.length&&r.size){let w;for(let R=D.length-1;R>=0;R--){let q=D[R];if(q.element===A){w=q;break}}w&&!w.allowOnlyTimelineStyles()&&w.setStyles([r],null,h.errors,s)}return D.length?D.map(w=>w.buildKeyframes()):[KD(A,[],[],[],0,p,"",!1)]}visitTrigger(t,A){}visitState(t,A){}visitTransition(t,A){}visitAnimateChild(t,A){let i=A.subInstructions.get(A.element);if(i){let o=A.createSubContext(t.options),n=A.currentTimeline.currentTime,g=this._visitSubInstructions(i,o,o.options);n!=g&&A.transformIntoNewTimeline(g)}A.previousNode=t}visitAnimateRef(t,A){let i=A.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],A,i),this.visitReference(t.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=t}_applyAnimationRefDelays(t,A,i){for(let o of t){let n=o?.delay;if(n){let g=typeof n=="number"?n:Go(Ys(n,o?.params??{},A.errors));i.delayNextStep(g)}}}_visitSubInstructions(t,A,i){let n=A.currentTimeline.currentTime,g=i.duration!=null?Go(i.duration):null,r=i.delay!=null?Go(i.delay):null;return g!==0&&t.forEach(s=>{let a=A.appendInstructionToTimeline(s,g,r);n=Math.max(n,a.duration+a.delay)}),n}visitReference(t,A){A.updateOptions(t.options,!0),ei(this,t.animation,A),A.previousNode=t}visitSequence(t,A){let i=A.subContextCount,o=A,n=t.options;if(n&&(n.params||n.delay)&&(o=A.createSubContext(n),o.transformIntoNewTimeline(),n.delay!=null)){o.previousNode.type==HA.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=ZE);let g=Go(n.delay);o.delayNextStep(g)}t.steps.length&&(t.steps.forEach(g=>ei(this,g,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),A.previousNode=t}visitGroup(t,A){let i=[],o=A.currentTimeline.currentTime,n=t.options&&t.options.delay?Go(t.options.delay):0;t.steps.forEach(g=>{let r=A.createSubContext(t.options);n&&r.delayNextStep(n),ei(this,g,r),o=Math.max(o,r.currentTimeline.currentTime),i.push(r.currentTimeline)}),i.forEach(g=>A.currentTimeline.mergeTimelineCollectedStyles(g)),A.transformIntoNewTimeline(o),A.previousNode=t}_visitTiming(t,A){if(t.dynamic){let i=t.strValue,o=A.params?Ys(i,A.params,A.errors):i;return cC(o,A.errors)}else return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,A){let i=A.currentAnimateTimings=this._visitTiming(t.timings,A),o=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),o.snapshotCurrentStyles());let n=t.style;n.type==HA.Keyframes?this.visitKeyframes(n,A):(A.incrementTime(i.duration),this.visitStyle(n,A),o.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=t}visitStyle(t,A){let i=A.currentTimeline,o=A.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();let n=o&&o.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(n):i.setStyles(t.styles,n,A.errors,A.options),A.previousNode=t}visitKeyframes(t,A){let i=A.currentAnimateTimings,o=A.currentTimeline.duration,n=i.duration,r=A.createSubContext().currentTimeline;r.easing=i.easing,t.styles.forEach(s=>{let a=s.offset||0;r.forwardTime(a*n),r.setStyles(s.styles,s.easing,A.errors,A.options),r.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(r),A.transformIntoNewTimeline(o+n),A.previousNode=t}visitQuery(t,A){let i=A.currentTimeline.currentTime,o=t.options||{},n=o.delay?Go(o.delay):0;n&&(A.previousNode.type===HA.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=ZE);let g=i,r=A.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!o.optional,A.errors);A.currentQueryTotal=r.length;let s=null;r.forEach((a,c)=>{A.currentQueryIndex=c;let h=A.createSubContext(t.options,a);n&&h.delayNextStep(n),a===A.element&&(s=h.currentTimeline),ei(this,t.animation,h),h.currentTimeline.applyStylesToKeyframe();let p=h.currentTimeline.currentTime;g=Math.max(g,p)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(g),s&&(A.currentTimeline.mergeTimelineCollectedStyles(s),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=t}visitStagger(t,A){let i=A.parentContext,o=A.currentTimeline,n=t.timings,g=Math.abs(n.duration),r=g*(A.currentQueryTotal-1),s=g*A.currentQueryIndex;switch(n.duration<0?"reverse":n.easing){case"reverse":s=r-s;break;case"full":s=i.currentStaggerTime;break}let c=A.currentTimeline;s&&c.delayNextStep(s);let h=c.currentTime;ei(this,t.animation,A),A.previousNode=t,i.currentStaggerTime=o.currentTime-h+(o.startTime-i.currentTimeline.startTime)}},ZE={},RD=class e{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=ZE;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(t,A,i,o,n,g,r,s){this._driver=t,this.element=A,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=n,this.errors=g,this.timelines=r,this.currentTimeline=s||new qE(this._driver,A,0),r.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,A){if(!t)return;let i=t,o=this.options;i.duration!=null&&(o.duration=Go(i.duration)),i.delay!=null&&(o.delay=Go(i.delay));let n=i.params;if(n){let g=o.params;g||(g=this.options.params={}),Object.keys(n).forEach(r=>{(!A||!g.hasOwnProperty(r))&&(g[r]=Ys(n[r],g,this.errors))})}}_copyOptions(){let t={};if(this.options){let A=this.options.params;if(A){let i=t.params={};Object.keys(A).forEach(o=>{i[o]=A[o]})}}return t}createSubContext(t=null,A,i){let o=A||this.element,n=new e(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return n.previousNode=this.previousNode,n.currentAnimateTimings=this.currentAnimateTimings,n.options=this._copyOptions(),n.updateOptions(t),n.currentQueryIndex=this.currentQueryIndex,n.currentQueryTotal=this.currentQueryTotal,n.parentContext=this,this.subContextCount++,n}transformIntoNewTimeline(t){return this.previousNode=ZE,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,A,i){let o={duration:A??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},n=new kD(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,o,t.stretchStartingKeyframe);return this.timelines.push(n),o}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,A,i,o,n,g){let r=[];if(o&&r.push(this.element),t.length>0){t=t.replace(AW,"."+this._enterClassName),t=t.replace(tW,"."+this._leaveClassName);let s=i!=1,a=this._driver.query(this.element,t,s);i!==0&&(a=i<0?a.slice(a.length+i,a.length):a.slice(0,i)),r.push(...a)}return!n&&r.length==0&&g.push(nF(A)),r}},qE=class e{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(t,A,i,o){this._driver=t,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=o,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+t),A&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,A){return this.applyStylesToKeyframe(),new e(this._driver,t,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=X3,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,A){this._localTimelineStyles.set(t,A),this._globalTimelineStyles.set(t,A),this._styleSummary.set(t,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||ki),this._currentKeyframe.set(A,ki);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,A,i,o){A&&this._previousKeyframe.set("easing",A);let n=o&&o.params||{},g=iW(t,this._globalTimelineStyles);for(let[r,s]of g){let a=Ys(s,n,i);this._pendingStyles.set(r,a),this._localTimelineStyles.has(r)||this._backFill.set(r,this._globalTimelineStyles.get(r)??ki),this._updateStyle(r,a)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((t,A)=>{this._currentKeyframe.set(A,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,t)}))}snapshotCurrentStyles(){for(let[t,A]of this._localTimelineStyles)this._pendingStyles.set(t,A),this._updateStyle(t,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let t=[];for(let A in this._currentKeyframe)t.push(A);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((A,i)=>{let o=this._styleSummary.get(i);(!o||A.time>o.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let t=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,o=[];this._keyframes.forEach((r,s)=>{let a=new Map([...this._backFill,...r]);a.forEach((c,h)=>{c===Ms?t.add(h):c===ki&&A.add(h)}),i||a.set("offset",s/this.duration),o.push(a)});let n=[...t.values()],g=[...A.values()];if(i){let r=o[0],s=new Map(r);r.set("offset",0),s.set("offset",1),o=[r,s]}return KD(this.element,o,n,g,this.duration,this.startTime,this.easing,!1)}},kD=class extends qE{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(t,A,i,o,n,g,r=!1){super(t,A,g.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=n,this._stretchStartingKeyframe=r,this.timings={duration:g.duration,delay:g.delay,easing:g.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:A,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&A){let n=[],g=i+A,r=A/g,s=new Map(t[0]);s.set("offset",0),n.push(s);let a=new Map(t[0]);a.set("offset",MF(r)),n.push(a);let c=t.length-1;for(let h=1;h<=c;h++){let p=new Map(t[h]),D=p.get("offset"),w=A+D*i;p.set("offset",MF(w/g)),n.push(p)}i=g,A=0,o="",t=n}return KD(this.element,t,this.preStyleProps,this.postStyleProps,i,A,o,!0)}};function MF(e,t=3){let A=Math.pow(10,t-1);return Math.round(e*A)/A}function iW(e,t){let A=new Map,i;return e.forEach(o=>{if(o==="*"){i??=t.keys();for(let n of i)A.set(n,ki)}else for(let[n,g]of o)A.set(n,g)}),A}function bF(e,t,A,i,o,n,g,r,s,a,c,h,p){return{type:0,element:e,triggerName:t,isRemovalTransition:o,fromState:A,fromStyles:n,toState:i,toStyles:g,timelines:r,queriedElements:s,preStyleProps:a,postStyleProps:c,totalTime:h,errors:p}}var pD={},VE=class{_triggerName;ast;_stateStyles;constructor(t,A,i){this._triggerName=t,this.ast=A,this._stateStyles=i}match(t,A,i,o){return oW(this.ast.matchers,t,A,i,o)}buildStyles(t,A,i){let o=this._stateStyles.get("*");return t!==void 0&&(o=this._stateStyles.get(t?.toString())||o),o?o.buildStyles(A,i):new Map}build(t,A,i,o,n,g,r,s,a,c){let h=[],p=this.ast.options&&this.ast.options.params||pD,D=r&&r.params||pD,w=this.buildStyles(i,D,h),R=s&&s.params||pD,q=this.buildStyles(o,R,h),iA=new Set,kA=new Map,NA=new Map,fe=o==="void",ee={params:KF(R,p),delay:this.ast.options?.delay},je=c?[]:LF(t,A,this.ast.animation,n,g,w,q,ee,a,h),se=0;return je.forEach(gt=>{se=Math.max(gt.duration+gt.delay,se)}),h.length?bF(A,this._triggerName,i,o,fe,w,q,[],[],kA,NA,se,h):(je.forEach(gt=>{let Di=gt.element,eo=Ai(kA,Di,new Set);gt.preStyleProps.forEach(pt=>eo.add(pt));let Ts=Ai(NA,Di,new Set);gt.postStyleProps.forEach(pt=>Ts.add(pt)),Di!==A&&iA.add(Di)}),bF(A,this._triggerName,i,o,fe,w,q,je,[...iA.values()],kA,NA,se))}};function oW(e,t,A,i,o){return e.some(n=>n(t,A,i,o))}function KF(e,t){let A=v({},t);return Object.entries(e).forEach(([i,o])=>{o!=null&&(A[i]=o)}),A}var vD=class{styles;defaultParams;normalizer;constructor(t,A,i){this.styles=t,this.defaultParams=A,this.normalizer=i}buildStyles(t,A){let i=new Map,o=KF(t,this.defaultParams);return this.styles.styles.forEach(n=>{typeof n!="string"&&n.forEach((g,r)=>{g&&(g=Ys(g,o,A));let s=this.normalizer.normalizePropertyName(r,A);g=this.normalizer.normalizeStyleValue(r,s,g,A),i.set(r,g)})}),i}};function nW(e,t,A){return new SD(e,t,A)}var SD=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(t,A,i){this.name=t,this.ast=A,this._normalizer=i,A.states.forEach(o=>{let n=o.options&&o.options.params||{};this.states.set(o.name,new vD(o.style,n,i))}),RF(this.states,"true","1"),RF(this.states,"false","0"),A.transitions.forEach(o=>{this.transitionFactories.push(new VE(t,o,this.states))}),this.fallbackTransition=gW(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,A,i,o){return this.transitionFactories.find(g=>g.match(t,A,i,o))||null}matchStyles(t,A,i){return this.fallbackTransition.buildStyles(t,A,i)}};function gW(e,t,A){let i=[(g,r)=>!0],o={type:HA.Sequence,steps:[],options:null},n={type:HA.Transition,animation:o,matchers:i,options:null,queryCount:0,depCount:0};return new VE(e,n,t)}function RF(e,t,A){e.has(t)?e.has(A)||e.set(A,e.get(t)):e.has(A)&&e.set(t,e.get(A))}var rW=new EC,FD=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(t,A,i){this.bodyNode=t,this._driver=A,this._normalizer=i}register(t,A){let i=[],o=[],n=_F(this._driver,A,i,o);if(i.length)throw aF(i);this._animations.set(t,n)}_buildPlayer(t,A,i){let o=t.element,n=BD(this._normalizer,t.keyframes,A,i);return this._driver.animate(o,n,t.duration,t.delay,t.easing,[],!0)}create(t,A,i={}){let o=[],n=this._animations.get(t),g,r=new Map;if(n?(g=LF(this._driver,A,n,dD,LE,new Map,new Map,i,rW,o),g.forEach(c=>{let h=Ai(r,c.element,new Map);c.postStyleProps.forEach(p=>h.set(p,null))})):(o.push(IF()),g=[]),o.length)throw CF(o);r.forEach((c,h)=>{c.forEach((p,D)=>{c.set(D,this._driver.computeStyle(h,D,ki))})});let s=g.map(c=>{let h=r.get(c.element);return this._buildPlayer(c,new Map,h)}),a=Qn(s);return this._playersById.set(t,a),a.onDestroy(()=>this.destroy(t)),this.players.push(a),a}destroy(t){let A=this._getPlayer(t);A.destroy(),this._playersById.delete(t);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(t){let A=this._playersById.get(t);if(!A)throw BF(t);return A}listen(t,A,i,o){let n=GE(A,"","","");return NE(this._getPlayer(t),i,n,o),()=>{}}command(t,A,i,o){if(i=="register"){this.register(t,o[0]);return}if(i=="create"){let g=o[0]||{};this.create(t,A,g);return}let n=this._getPlayer(t);switch(i){case"play":n.play();break;case"pause":n.pause();break;case"reset":n.reset();break;case"restart":n.restart();break;case"finish":n.finish();break;case"init":n.init();break;case"setPosition":n.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(t);break}}},kF="ng-animate-queued",sW=".ng-animate-queued",DD="ng-animate-disabled",aW=".ng-animate-disabled",IW="ng-star-inserted",CW=".ng-star-inserted",BW=[],xF={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},cW={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Ao="__ng_removed",lC=class{namespaceId;value;options;get params(){return this.options.params}constructor(t,A=""){this.namespaceId=A;let i=t&&t.hasOwnProperty("value"),o=i?t.value:t;if(this.value=EW(o),i){let n=t,{value:g}=n,r=il(n,["value"]);this.options=r}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){let A=t.params;if(A){let i=this.options.params;Object.keys(A).forEach(o=>{i[o]==null&&(i[o]=A[o])})}}},QC="void",fD=new lC(QC),ND=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(t,A,i){this.id=t,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+t,Gi(A,this._hostClassName)}listen(t,A,i,o){if(!this._triggers.has(A))throw cF(i,A);if(i==null||i.length==0)throw QF(A);if(!lW(i))throw EF(i,A);let n=Ai(this._elementListeners,t,[]),g={name:A,phase:i,callback:o};n.push(g);let r=Ai(this._engine.statesByElement,t,new Map);return r.has(A)||(Gi(t,CC),Gi(t,CC+"-"+A),r.set(A,fD)),()=>{this._engine.afterFlush(()=>{let s=n.indexOf(g);s>=0&&n.splice(s,1),this._triggers.has(A)||r.delete(A)})}}register(t,A){return this._triggers.has(t)?!1:(this._triggers.set(t,A),!0)}_getTrigger(t){let A=this._triggers.get(t);if(!A)throw lF(t);return A}trigger(t,A,i,o=!0){let n=this._getTrigger(A),g=new dC(this.id,A,t),r=this._engine.statesByElement.get(t);r||(Gi(t,CC),Gi(t,CC+"-"+A),this._engine.statesByElement.set(t,r=new Map));let s=r.get(A),a=new lC(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&s&&a.absorbOptions(s.options),r.set(A,a),s||(s=fD),!(a.value===QC)&&s.value===a.value){if(!uW(s.params,a.params)){let R=[],q=n.matchStyles(s.value,s.params,R),iA=n.matchStyles(a.value,a.params,R);R.length?this._engine.reportError(R):this._engine.afterFlush(()=>{eg(t,q),$i(t,iA)})}return}let p=Ai(this._engine.playersByElement,t,[]);p.forEach(R=>{R.namespaceId==this.id&&R.triggerName==A&&R.queued&&R.destroy()});let D=n.matchTransition(s.value,a.value,t,a.params),w=!1;if(!D){if(!o)return;D=n.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:A,transition:D,fromState:s,toState:a,player:g,isFallbackTransition:w}),w||(Gi(t,kF),g.onStart(()=>{Js(t,kF)})),g.onDone(()=>{let R=this.players.indexOf(g);R>=0&&this.players.splice(R,1);let q=this._engine.playersByElement.get(t);if(q){let iA=q.indexOf(g);iA>=0&&q.splice(iA,1)}}),this.players.push(g),p.push(g),g}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(A=>A.delete(t)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(o=>o.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);let A=this._engine.playersByElement.get(t);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,A){let i=this._engine.driver.query(t,BC,!0);i.forEach(o=>{if(o[Ao])return;let n=this._engine.fetchNamespacesByElement(o);n.size?n.forEach(g=>g.triggerLeaveAnimation(o,A,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(t,A,i,o){let n=this._engine.statesByElement.get(t),g=new Map;if(n){let r=[];if(n.forEach((s,a)=>{if(g.set(a,s.value),this._triggers.has(a)){let c=this.trigger(t,a,QC,o);c&&r.push(c)}}),r.length)return this._engine.markElementAsRemoved(this.id,t,!0,A,g),i&&Qn(r).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){let A=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(A&&i){let o=new Set;A.forEach(n=>{let g=n.name;if(o.has(g))return;o.add(g);let s=this._triggers.get(g).fallbackTransition,a=i.get(g)||fD,c=new lC(QC),h=new dC(this.id,g,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:g,transition:s,fromState:a,toState:c,player:h,isFallbackTransition:!0})})}}removeNode(t,A){let i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,A),this.triggerLeaveAnimation(t,A,!0))return;let o=!1;if(i.totalAnimations){let n=i.players.length?i.playersByQueriedElement.get(t):[];if(n&&n.length)o=!0;else{let g=t;for(;g=g.parentNode;)if(i.statesByElement.get(g)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(t),o)i.markElementAsRemoved(this.id,t,!1,A);else{let n=t[Ao];(!n||n===xF)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,A))}}insertNode(t,A){Gi(t,this._hostClassName)}drainQueuedTransitions(t){let A=[];return this._queue.forEach(i=>{let o=i.player;if(o.destroyed)return;let n=i.element,g=this._elementListeners.get(n);g&&g.forEach(r=>{if(r.name==i.triggerName){let s=GE(n,i.triggerName,i.fromState.value,i.toState.value);s._data=t,NE(i.player,r.phase,s,r.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):A.push(i)}),this._queue=[],A.sort((i,o)=>{let n=i.transition.ast.depCount,g=o.transition.ast.depCount;return n==0||g==0?n-g:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(t){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}},GD=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(t,A)=>{};_onRemovalComplete(t,A){this.onRemovalComplete(t,A)}constructor(t,A,i){this.bodyNode=t,this.driver=A,this._normalizer=i}get queuedPlayers(){let t=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,A){let i=new ND(t,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,A){let i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let g=!1,r=this.driver.getParentElement(A);for(;r;){let s=o.get(r);if(s){let a=i.indexOf(s);i.splice(a+1,0,t),g=!0;break}r=this.driver.getParentElement(r)}g||i.unshift(t)}else i.push(t);return o.set(A,t),t}register(t,A){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,A)),i}registerTrigger(t,A,i){let o=this._namespaceLookup[t];o&&o.register(A,i)&&this.totalAnimations++}destroy(t,A){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);let o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(A),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){let A=new Set,i=this.statesByElement.get(t);if(i){for(let o of i.values())if(o.namespaceId){let n=this._fetchNamespace(o.namespaceId);n&&A.add(n)}}return A}trigger(t,A,i,o){if(HE(A)){let n=this._fetchNamespace(t);if(n)return n.trigger(A,i,o),!0}return!1}insertNode(t,A,i,o){if(!HE(A))return;let n=A[Ao];if(n&&n.setForRemoval){n.setForRemoval=!1,n.setForMove=!0;let g=this.collectedLeaveElements.indexOf(A);g>=0&&this.collectedLeaveElements.splice(g,1)}if(t){let g=this._fetchNamespace(t);g&&g.insertNode(A,i)}o&&this.collectEnterElement(A)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,A){A?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Gi(t,DD)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Js(t,DD))}removeNode(t,A,i){if(HE(A)){let o=t?this._fetchNamespace(t):null;o?o.removeNode(A,i):this.markElementAsRemoved(t,A,!1,i);let n=this.namespacesByHostElement.get(A);n&&n.id!==t&&n.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(t,A,i,o,n){this.collectedLeaveElements.push(A),A[Ao]={namespaceId:t,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:n}}listen(t,A,i,o,n){return HE(A)?this._fetchNamespace(t).listen(A,i,o,n):()=>{}}_buildInstruction(t,A,i,o,n){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,o,t.fromState.options,t.toState.options,A,n)}destroyInnerAnimations(t){let A=this.driver.query(t,BC,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(t,KE,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){let A=this.playersByElement.get(t);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){let A=this.playersByQueriedElement.get(t);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Qn(this.players).onDone(()=>t());t()})}processLeaveNode(t){let A=t[Ao];if(A&&A.setForRemoval){if(t[Ao]=xF,A.namespaceId){this.destroyInnerAnimations(t);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,A.setForRemoval)}t.classList?.contains(DD)&&this.markElementAsDisabled(t,!1),this.driver.query(t,aW,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?Qn(A).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(t){throw dF(t)}_flushAnimations(t,A){let i=new EC,o=[],n=new Map,g=[],r=new Map,s=new Map,a=new Map,c=new Set;this.disabledNodes.forEach(cA=>{c.add(cA);let Q=this.driver.query(cA,sW,!0);for(let aA=0;aA{let aA=dD+R++;w.set(Q,aA),cA.forEach(te=>Gi(te,aA))});let q=[],iA=new Set,kA=new Set;for(let cA=0;cAiA.add(te)):kA.add(Q))}let NA=new Map,fe=FF(p,Array.from(iA));fe.forEach((cA,Q)=>{let aA=LE+R++;NA.set(Q,aA),cA.forEach(te=>Gi(te,aA))}),t.push(()=>{D.forEach((cA,Q)=>{let aA=w.get(Q);cA.forEach(te=>Js(te,aA))}),fe.forEach((cA,Q)=>{let aA=NA.get(Q);cA.forEach(te=>Js(te,aA))}),q.forEach(cA=>{this.processLeaveNode(cA)})});let ee=[],je=[];for(let cA=this._namespaceList.length-1;cA>=0;cA--)this._namespaceList[cA].drainQueuedTransitions(A).forEach(aA=>{let te=aA.player,ke=aA.element;if(ee.push(te),this.collectedEnterElements.length){let xe=ke[Ao];if(xe&&xe.setForMove){if(xe.previousTriggersValues&&xe.previousTriggersValues.has(aA.triggerName)){let _o=xe.previousTriggersValues.get(aA.triggerName),ft=this.statesByElement.get(aA.element);if(ft&&ft.has(aA.triggerName)){let tg=ft.get(aA.triggerName);tg.value=_o,ft.set(aA.triggerName,tg)}}te.destroy();return}}let fi=!h||!this.driver.containsElement(h,ke),Dt=NA.get(ke),ti=w.get(ke),Ce=this._buildInstruction(aA,i,ti,Dt,fi);if(Ce.errors&&Ce.errors.length){je.push(Ce);return}if(fi){te.onStart(()=>eg(ke,Ce.fromStyles)),te.onDestroy(()=>$i(ke,Ce.toStyles)),o.push(te);return}if(aA.isFallbackTransition){te.onStart(()=>eg(ke,Ce.fromStyles)),te.onDestroy(()=>$i(ke,Ce.toStyles)),o.push(te);return}let uC=[];Ce.timelines.forEach(xe=>{xe.stretchStartingKeyframe=!0,this.disabledNodes.has(xe.element)||uC.push(xe)}),Ce.timelines=uC,i.append(ke,Ce.timelines);let Ps={instruction:Ce,player:te,element:ke};g.push(Ps),Ce.queriedElements.forEach(xe=>Ai(r,xe,[]).push(te)),Ce.preStyleProps.forEach((xe,_o)=>{if(xe.size){let ft=s.get(_o);ft||s.set(_o,ft=new Set),xe.forEach((tg,nr)=>ft.add(nr))}}),Ce.postStyleProps.forEach((xe,_o)=>{let ft=a.get(_o);ft||a.set(_o,ft=new Set),xe.forEach((tg,nr)=>ft.add(nr))})});if(je.length){let cA=[];je.forEach(Q=>{cA.push(hF(Q.triggerName,Q.errors))}),ee.forEach(Q=>Q.destroy()),this.reportError(cA)}let se=new Map,gt=new Map;g.forEach(cA=>{let Q=cA.element;i.has(Q)&&(gt.set(Q,Q),this._beforeAnimationBuild(cA.player.namespaceId,cA.instruction,se))}),o.forEach(cA=>{let Q=cA.element;this._getPreviousPlayers(Q,!1,cA.namespaceId,cA.triggerName,null).forEach(te=>{Ai(se,Q,[]).push(te),te.destroy()})});let Di=q.filter(cA=>NF(cA,s,a)),eo=new Map;SF(eo,this.driver,kA,a,ki).forEach(cA=>{NF(cA,s,a)&&Di.push(cA)});let pt=new Map;D.forEach((cA,Q)=>{SF(pt,this.driver,new Set(cA),s,Ms)}),Di.forEach(cA=>{let Q=eo.get(cA),aA=pt.get(cA);eo.set(cA,new Map([...Q?.entries()??[],...aA?.entries()??[]]))});let or=[],Os=[],OA={};g.forEach(cA=>{let{element:Q,player:aA,instruction:te}=cA;if(i.has(Q)){if(c.has(Q)){aA.onDestroy(()=>$i(Q,te.toStyles)),aA.disabled=!0,aA.overrideTotalTime(te.totalTime),o.push(aA);return}let ke=OA;if(gt.size>1){let Dt=Q,ti=[];for(;Dt=Dt.parentNode;){let Ce=gt.get(Dt);if(Ce){ke=Ce;break}ti.push(Dt)}ti.forEach(Ce=>gt.set(Ce,ke))}let fi=this._buildAnimation(aA.namespaceId,te,se,n,pt,eo);if(aA.setRealPlayer(fi),ke===OA)or.push(aA);else{let Dt=this.playersByElement.get(ke);Dt&&Dt.length&&(aA.parentPlayer=Qn(Dt)),o.push(aA)}}else eg(Q,te.fromStyles),aA.onDestroy(()=>$i(Q,te.toStyles)),Os.push(aA),c.has(Q)&&o.push(aA)}),Os.forEach(cA=>{let Q=n.get(cA.element);if(Q&&Q.length){let aA=Qn(Q);cA.setRealPlayer(aA)}}),o.forEach(cA=>{cA.parentPlayer?cA.syncPlayerEvents(cA.parentPlayer):cA.destroy()});for(let cA=0;cA!fi.destroyed);ke.length?dW(this,Q,ke):this.processLeaveNode(Q)}return q.length=0,or.forEach(cA=>{this.players.push(cA),cA.onDone(()=>{cA.destroy();let Q=this.players.indexOf(cA);this.players.splice(Q,1)}),cA.play()}),or}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,A,i,o,n){let g=[];if(A){let r=this.playersByQueriedElement.get(t);r&&(g=r)}else{let r=this.playersByElement.get(t);if(r){let s=!n||n==QC;r.forEach(a=>{a.queued||!s&&a.triggerName!=o||g.push(a)})}}return(i||o)&&(g=g.filter(r=>!(i&&i!=r.namespaceId||o&&o!=r.triggerName))),g}_beforeAnimationBuild(t,A,i){let o=A.triggerName,n=A.element,g=A.isRemovalTransition?void 0:t,r=A.isRemovalTransition?void 0:o;for(let s of A.timelines){let a=s.element,c=a!==n,h=Ai(i,a,[]);this._getPreviousPlayers(a,c,g,r,A.toState).forEach(D=>{let w=D.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),D.destroy(),h.push(D)})}eg(n,A.fromStyles)}_buildAnimation(t,A,i,o,n,g){let r=A.triggerName,s=A.element,a=[],c=new Set,h=new Set,p=A.timelines.map(w=>{let R=w.element;c.add(R);let q=R[Ao];if(q&&q.removedBeforeQueried)return new bo(w.duration,w.delay);let iA=R!==s,kA=hW((i.get(R)||BW).map(se=>se.getRealPlayer())).filter(se=>{let gt=se;return gt.element?gt.element===R:!1}),NA=n.get(R),fe=g.get(R),ee=BD(this._normalizer,w.keyframes,NA,fe),je=this._buildPlayer(w,ee,kA);if(w.subTimeline&&o&&h.add(R),iA){let se=new dC(t,r,R);se.setRealPlayer(je),a.push(se)}return je});a.forEach(w=>{Ai(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>QW(this.playersByQueriedElement,w.element,w))}),c.forEach(w=>Gi(w,hD));let D=Qn(p);return D.onDestroy(()=>{c.forEach(w=>Js(w,hD)),$i(s,A.toStyles)}),h.forEach(w=>{Ai(o,w,[]).push(D)}),D}_buildPlayer(t,A,i){return A.length>0?this.driver.animate(t.element,A,t.duration,t.delay,t.easing,i):new bo(t.duration,t.delay)}},dC=class{namespaceId;triggerName;element;_player=new bo;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(t,A,i){this.namespaceId=t,this.triggerName=A,this.element=i}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((A,i)=>{A.forEach(o=>NE(t,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){let A=this._player;A.triggerCallback&&t.onStart(()=>A.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,A){Ai(this._queuedCallbacks,t,[]).push(A)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){let A=this._player;A.triggerCallback&&A.triggerCallback(t)}};function QW(e,t,A){let i=e.get(t);if(i){if(i.length){let o=i.indexOf(A);i.splice(o,1)}i.length==0&&e.delete(t)}return i}function EW(e){return e??null}function HE(e){return e&&e.nodeType===1}function lW(e){return e=="start"||e=="done"}function vF(e,t){let A=e.style.display;return e.style.display=t??"none",A}function SF(e,t,A,i,o){let n=[];A.forEach(s=>n.push(vF(s)));let g=[];i.forEach((s,a)=>{let c=new Map;s.forEach(h=>{let p=t.computeStyle(a,h,o);c.set(h,p),(!p||p.length==0)&&(a[Ao]=cW,g.push(a))}),e.set(a,c)});let r=0;return A.forEach(s=>vF(s,n[r++])),g}function FF(e,t){let A=new Map;if(e.forEach(r=>A.set(r,[])),t.length==0)return A;let i=1,o=new Set(t),n=new Map;function g(r){if(!r)return i;let s=n.get(r);if(s)return s;let a=r.parentNode;return A.has(a)?s=a:o.has(a)?s=i:s=g(a),n.set(r,s),s}return t.forEach(r=>{let s=g(r);s!==i&&A.get(s).push(r)}),A}function Gi(e,t){e.classList?.add(t)}function Js(e,t){e.classList?.remove(t)}function dW(e,t,A){Qn(A).onDone(()=>e.processLeaveNode(t))}function hW(e){let t=[];return UF(e,t),t}function UF(e,t){for(let A=0;Ao.add(n)):t.set(e,i),A.delete(e),!0}var Hs=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(t,A)=>{};constructor(t,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new GD(t.body,A,i),this._timelineEngine=new FD(t.body,A,i),this._transitionEngine.onRemovalComplete=(o,n)=>this.onRemovalComplete(o,n)}registerTrigger(t,A,i,o,n){let g=t+"-"+o,r=this._triggerCache[g];if(!r){let s=[],a=[],c=_F(this._driver,n,s,a);if(s.length)throw sF(o,s);r=nW(o,c,this._normalizer),this._triggerCache[g]=r}this._transitionEngine.registerTrigger(A,o,r)}register(t,A){this._transitionEngine.register(t,A)}destroy(t,A){this._transitionEngine.destroy(t,A)}onInsert(t,A,i,o){this._transitionEngine.insertNode(t,A,i,o)}onRemove(t,A,i){this._transitionEngine.removeNode(t,A,i)}disableAnimations(t,A){this._transitionEngine.markElementAsDisabled(t,A)}process(t,A,i,o){if(i.charAt(0)=="@"){let[n,g]=cD(i),r=o;this._timelineEngine.command(n,A,g,r)}else this._transitionEngine.trigger(t,A,i,o)}listen(t,A,i,o,n){if(i.charAt(0)=="@"){let[g,r]=cD(i);return this._timelineEngine.listen(g,A,r,n)}return this._transitionEngine.listen(t,A,i,o,n)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}};function mW(e,t){let A=null,i=null;return Array.isArray(t)&&t.length?(A=wD(t[0]),t.length>1&&(i=wD(t[t.length-1]))):t instanceof Map&&(A=wD(t)),A||i?new pW(e,A,i):null}var pW=(()=>{class e{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,o){this._element=A,this._startStyles=i,this._endStyles=o;let n=e.initialStylesByElement.get(A);n||e.initialStylesByElement.set(A,n=new Map),this._initialStyles=n}start(){this._state<1&&(this._startStyles&&$i(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&($i(this._element,this._initialStyles),this._endStyles&&($i(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(e.initialStylesByElement.delete(this._element),this._startStyles&&(eg(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(eg(this._element,this._endStyles),this._endStyles=null),$i(this._element,this._initialStyles),this._state=3)}}return e})();function wD(e){let t=null;return e.forEach((A,i)=>{DW(i)&&(t=t||new Map,t.set(i,A))}),t}function DW(e){return e==="display"||e==="position"}var WE=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(t,A,i,o){this.element=t,this.keyframes=A,this.options=i,this._specialStyles=o,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){let A=[];return t.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(t,A,i){return t.animate(this._convertKeyframesToObject(A),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{o!=="offset"&&t.set(o,this._finished?i:UE(this.element,o))}),this.currentSnapshot=t}triggerCallback(t){let A=t==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},zE=class{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}containsElement(t,A){return QD(t,A)}getParentElement(t){return _E(t)}query(t,A,i){return ED(t,A,i)}computeStyle(t,A,i){return UE(t,A)}animate(t,A,i,o,n,g=[]){let r=o==0?"both":"forwards",s={duration:i,delay:o,fill:r};n&&(s.easing=n);let a=new Map,c=g.filter(D=>D instanceof WE);DF(i,o)&&c.forEach(D=>{D.currentSnapshot.forEach((w,R)=>a.set(R,w))});let h=mF(A).map(D=>new Map(D));h=fF(t,h,a);let p=mW(t,h);return new WE(t,h,s,p)}};var TE="@",YF="@.disabled",jE=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(t,A,i,o){this.namespaceId=t,this.delegate=A,this.engine=i,this._onDestroy=o}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,A){return this.delegate.createElement(t,A)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,A){this.delegate.appendChild(t,A),this.engine.onInsert(this.namespaceId,A,t,!1)}insertBefore(t,A,i,o=!0){this.delegate.insertBefore(t,A,i),this.engine.onInsert(this.namespaceId,A,t,o)}removeChild(t,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(t,A){return this.delegate.selectRootElement(t,A)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,A,i,o){this.delegate.setAttribute(t,A,i,o)}removeAttribute(t,A,i){this.delegate.removeAttribute(t,A,i)}addClass(t,A){this.delegate.addClass(t,A)}removeClass(t,A){this.delegate.removeClass(t,A)}setStyle(t,A,i,o){this.delegate.setStyle(t,A,i,o)}removeStyle(t,A,i){this.delegate.removeStyle(t,A,i)}setProperty(t,A,i){A.charAt(0)==TE&&A==YF?this.disableAnimations(t,!!i):this.delegate.setProperty(t,A,i)}setValue(t,A){this.delegate.setValue(t,A)}listen(t,A,i,o){return this.delegate.listen(t,A,i,o)}disableAnimations(t,A){this.engine.disableAnimations(t,A)}},_D=class extends jE{factory;constructor(t,A,i,o,n){super(A,i,o,n),this.factory=t,this.namespaceId=A}setProperty(t,A,i){A.charAt(0)==TE?A.charAt(1)=="."&&A==YF?(i=i===void 0?!0:!!i,this.disableAnimations(t,i)):this.engine.process(this.namespaceId,t,A.slice(1),i):this.delegate.setProperty(t,A,i)}listen(t,A,i,o){if(A.charAt(0)==TE){let n=fW(t),g=A.slice(1),r="";return g.charAt(0)!=TE&&([g,r]=wW(g)),this.engine.listen(this.namespaceId,n,g,r,s=>{let a=s._data||-1;this.factory.scheduleListenerCallback(a,i,s)})}return this.delegate.listen(t,A,i,o)}};function fW(e){switch(e){case"body":return document.body;case"document":return document;case"window":return window;default:return e}}function wW(e){let t=e.indexOf("."),A=e.substring(0,t),i=e.slice(t+1);return[A,i]}var XE=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(t,A,i){this.delegate=t,this.engine=A,this._zone=i,A.onRemovalComplete=(o,n)=>{n?.removeChild(null,o)}}createRenderer(t,A){let i="",o=this.delegate.createRenderer(t,A);if(!t||!A?.data?.animation){let a=this._rendererCache,c=a.get(o);if(!c){let h=()=>a.delete(o);c=new jE(i,o,this.engine,h),a.set(o,c)}return c}let n=A.id,g=A.id+"-"+this._currentId;this._currentId++,this.engine.register(g,t);let r=a=>{Array.isArray(a)?a.forEach(r):this.engine.registerTrigger(n,g,t,a.name,a)};return A.data.animation.forEach(r),new _D(this,g,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,A,i){if(t>=0&&tA(i));return}let o=this._animationCallbacksBuffer;o.length==0&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(n=>{let[g,r]=n;g(r)}),this._animationCallbacksBuffer=[]})}),o.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(t){this.engine.flush(),this.delegate.componentReplaced?.(t)}};var MW=(()=>{class e extends Hs{constructor(A,i,o){super(A,i,o)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||e)(eA(uA),eA(tr),eA(ir))};static \u0275prov=G({token:e,factory:e.\u0275fac})}return e})();function bW(){return new OE}function RW(e,t,A){return new XE(e,t,A)}var HF=[{provide:ir,useFactory:bW},{provide:Hs,useClass:MW},{provide:dt,useFactory:RW,deps:[Za,Hs,AA]}],kW=[{provide:tr,useClass:LD},{provide:jA,useValue:"NoopAnimations"},...HF],JF=[{provide:tr,useFactory:()=>new zE},{provide:jA,useFactory:()=>"BrowserAnimations"},...HF],$E=(()=>{class e{static withConfig(A){return{ngModule:e,providers:A.disableAnimations?kW:JF}}static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:JF,imports:[Va]})}return e})();var vW=new b("mat-chips-default-options",{providedIn:"root",factory:()=>({separatorKeyCodes:[13]})});var TF=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({providers:[us,{provide:vW,useValue:{separatorKeyCodes:[13]}}],imports:[QA,ui,QA]})}return e})();var SW=["input"],FW=["formField"],NW=["*"],xD=class{source;value;constructor(t,A){this.source=t,this.value=A}};var GW=new b("MatRadioGroup"),_W=new b("mat-radio-default-options",{providedIn:"root",factory:LW});function LW(){return{color:"accent",disabledInteractive:!1}}var KW=(()=>{class e{_elementRef=C(z);_changeDetector=C(DA);_focusMonitor=C(at);_radioDispatcher=C(ws);_defaultOptions=C(_W,{optional:!0});_ngZone=C(AA);_renderer=C(ie);_uniqueId=C(oe).getId("mat-radio-");_cleanupClick;id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked!==A&&(this._checked=A,A&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!A&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),A&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(A){this._value!==A&&(this._value=A,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===A),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(A){this._labelPosition=A}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(A){this._setDisabled(A)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(A){this._required=A}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(A){this._color=A}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new Z;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=C(RA);constructor(){C(Be).load(ze);let A=C(GW,{optional:!0}),i=C(jA,{optional:!0}),o=C(new Ve("tabindex"),{optional:!0});this.radioGroup=A,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,o&&(this.tabIndex=Ae(o,0))}focus(A,i){i?this._focusMonitor.focusVia(this._inputElement,i,A):this._inputElement.nativeElement.focus(A)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((A,i)=>{A!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{!A&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._cleanupClick=this._renderer.listen(this._inputElement.nativeElement,"click",this._onInputClick)})}ngOnDestroy(){this._cleanupClick?.(),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new xD(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(A){if(A.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(A){this._onInputInteraction(A),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(A){this._disabled!==A&&(this._disabled=A,this._changeDetector.markForCheck())}_onInputClick=A=>{this.disabled&&this.disabledInteractive&&A.preventDefault()};_updateTabIndex(){let A=this.radioGroup,i;if(!A||!A.selected||this.disabled?i=this.tabIndex:i=A.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let o=this._inputElement?.nativeElement;o&&(o.setAttribute("tabindex",i+""),this._previousTabIndex=i,Le(()=>{queueMicrotask(()=>{A&&A.selected&&A.selected!==this&&document.activeElement===o&&(A.selected?._inputElement.nativeElement.focus(),document.activeElement===o&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=H({type:e,selectors:[["mat-radio-button"]],viewQuery:function(i,o){if(i&1&&(IA(SW,5),IA(FW,7,z)),i&2){let n;V(n=W())&&(o._inputElement=n.first),V(n=W())&&(o._rippleTrigger=n.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,o){i&1&&S("focus",function(){return o._inputElement.nativeElement.focus()}),i&2&&(sA("id",o.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),tA("mat-primary",o.color==="primary")("mat-accent",o.color==="accent")("mat-warn",o.color==="warn")("mat-mdc-radio-checked",o.checked)("mat-mdc-radio-disabled",o.disabled)("mat-mdc-radio-disabled-interactive",o.disabledInteractive)("_mat-animation-noopable",o._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",j],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Ae(A)],checked:[2,"checked","checked",j],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",j],required:[2,"required","required",j],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",j]},outputs:{change:"change"},exportAs:["matRadioButton"],ngContentSelectors:NW,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,o){if(i&1){let n=oA();KA(),E(0,"div",2,0)(2,"div",3)(3,"div",4),S("click",function(r){return K(n),x(o._onTouchTargetClick(r))}),d(),E(4,"input",5,1),S("change",function(r){return K(n),x(o._onInputInteraction(r))}),d(),E(6,"div",6),Y(7,"div",7)(8,"div",8),d(),E(9,"div",9),Y(10,"div",10),d()(),E(11,"label",11),rA(12),d()()}i&2&&(N("labelPosition",o.labelPosition),u(2),tA("mdc-radio--disabled",o.disabled),u(2),N("id",o.inputId)("checked",o.checked)("disabled",o.disabled&&!o.disabledInteractive)("required",o.required),sA("name",o.name)("value",o.value)("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-disabled",o.disabled&&o.disabledInteractive?"true":null),u(5),N("matRippleTrigger",o._rippleTrigger.nativeElement)("matRippleDisabled",o._isRippleDisabled())("matRippleCentered",!0),u(2),N("for",o.inputId))},dependencies:[vt,ms],styles:['.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled])~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return e})(),OF=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[QA,ui,KW,QA]})}return e})();var Al=class e{static \u0275fac=function(A){return new(A||e)};static \u0275mod=$({type:e});static \u0275inj=X({imports:[Xo,qc,zv,iv,an,uE,Tg,Nk,Ov,jv,AS,rS,OF,AE,_v,rv,yv,HS,eE,CS,$E,xv,FS.forRoot(),NS,kb,TF,zk,qv]})};var hC=class e{static \u0275fac=function(A){return new(A||e)};static \u0275mod=$({type:e,bootstrap:[xs]});static \u0275inj=X({providers:[vo,qn,So,_s,Ls,$n,Ni,Gs,zn,Fo],imports:[Al,Va,qc,Ru,FE,uE,an,Tg,$E]})};fetch("./assets/config/runtime-config.json").then(e=>e.json()).then(e=>{window.runtimeConfig=e,kc().bootstrapModule(hC).catch(t=>console.error(t))});kc().bootstrapModule(hC).catch(e=>console.error(e)); diff --git a/src/google/adk/cli/browser/main-KQCFA2KU.js b/src/google/adk/cli/browser/main-KQCFA2KU.js new file mode 100644 index 000000000..793b49a66 --- /dev/null +++ b/src/google/adk/cli/browser/main-KQCFA2KU.js @@ -0,0 +1,3914 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import{a as nA,b as Ne,c as y7,d as Le,e as xh,f as _n}from"./chunk-EQDQRRRY.js";var SP=Le((Tge,kP)=>{"use strict";kP.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var xP=Le((zge,U2)=>{"use strict";var g8=SP(),RP=g8.filter(function(t){return!!t.css}),LP=g8.filter(function(t){return!!t.vga});U2.exports=function(t){var e=U2.exports.get(t);return e&&e.value};U2.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),g8.filter(function(e){return e.name.toLowerCase()===t}).pop()};U2.exports.all=U2.exports.get.all=function(){return g8};U2.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),RP.filter(function(e){return e.name.toLowerCase()===t}).pop()):RP};U2.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),LP.filter(function(e){return e.name.toLowerCase()===t}).pop()):LP}});var ej=Le((Hge,Aj)=>{"use strict";var $4A=1/0,A3A="[object Symbol]",e3A=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,JP="\\ud800-\\udfff",t3A="\\u0300-\\u036f\\ufe20-\\ufe23",i3A="\\u20d0-\\u20f0",TP="\\u2700-\\u27bf",zP="a-z\\xdf-\\xf6\\xf8-\\xff",n3A="\\xac\\xb1\\xd7\\xf7",o3A="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",r3A="\\u2000-\\u206f",s3A=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",HP="A-Z\\xc0-\\xd6\\xd8-\\xde",a3A="\\ufe0e\\ufe0f",OP=n3A+o3A+r3A+s3A,PP="['\u2019]",FP="["+OP+"]",c3A="["+t3A+i3A+"]",jP="\\d+",l3A="["+TP+"]",qP="["+zP+"]",VP="[^"+JP+OP+jP+TP+zP+HP+"]",g3A="\\ud83c[\\udffb-\\udfff]",I3A="(?:"+c3A+"|"+g3A+")",C3A="[^"+JP+"]",ZP="(?:\\ud83c[\\udde6-\\uddff]){2}",WP="[\\ud800-\\udbff][\\udc00-\\udfff]",yB="["+HP+"]",d3A="\\u200d",NP="(?:"+qP+"|"+VP+")",B3A="(?:"+yB+"|"+VP+")",_P="(?:"+PP+"(?:d|ll|m|re|s|t|ve))?",GP="(?:"+PP+"(?:D|LL|M|RE|S|T|VE))?",XP=I3A+"?",$P="["+a3A+"]?",E3A="(?:"+d3A+"(?:"+[C3A,ZP,WP].join("|")+")"+$P+XP+")*",h3A=$P+XP+E3A,Q3A="(?:"+[l3A,ZP,WP].join("|")+")"+h3A,u3A=RegExp([yB+"?"+qP+"+"+_P+"(?="+[FP,yB,"$"].join("|")+")",B3A+"+"+GP+"(?="+[FP,yB+NP,"$"].join("|")+")",yB+"?"+NP+"+"+_P,yB+"+"+GP,jP,Q3A].join("|"),"g"),f3A=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,m3A=typeof global=="object"&&global&&global.Object===Object&&global,p3A=typeof self=="object"&&self&&self.Object===Object&&self,w3A=m3A||p3A||Function("return this")();function D3A(t){return t.match(e3A)||[]}function y3A(t){return f3A.test(t)}function v3A(t){return t.match(u3A)||[]}var b3A=Object.prototype,M3A=b3A.toString,UP=w3A.Symbol,KP=UP?UP.prototype:void 0,YP=KP?KP.toString:void 0;function k3A(t){if(typeof t=="string")return t;if(R3A(t))return YP?YP.call(t):"";var e=t+"";return e=="0"&&1/t==-$4A?"-0":e}function S3A(t){return!!t&&typeof t=="object"}function R3A(t){return typeof t=="symbol"||S3A(t)&&M3A.call(t)==A3A}function L3A(t){return t==null?"":k3A(t)}function x3A(t,e,A){return t=L3A(t),e=A?void 0:e,e===void 0?y3A(t)?v3A(t):D3A(t):t.match(e)||[]}Aj.exports=x3A});var hj=Le((Oge,Ej)=>{"use strict";var F3A=1/0,N3A="[object Symbol]",_3A=/^\s+/,Fk="\\ud800-\\udfff",rj="\\u0300-\\u036f\\ufe20-\\ufe23",sj="\\u20d0-\\u20f0",aj="\\ufe0e\\ufe0f",G3A="["+Fk+"]",Lk="["+rj+sj+"]",xk="\\ud83c[\\udffb-\\udfff]",U3A="(?:"+Lk+"|"+xk+")",cj="[^"+Fk+"]",lj="(?:\\ud83c[\\udde6-\\uddff]){2}",gj="[\\ud800-\\udbff][\\udc00-\\udfff]",Ij="\\u200d",Cj=U3A+"?",dj="["+aj+"]?",K3A="(?:"+Ij+"(?:"+[cj,lj,gj].join("|")+")"+dj+Cj+")*",Y3A=dj+Cj+K3A,J3A="(?:"+[cj+Lk+"?",Lk,lj,gj,G3A].join("|")+")",T3A=RegExp(xk+"(?="+xk+")|"+J3A+Y3A,"g"),z3A=RegExp("["+Ij+Fk+rj+sj+aj+"]"),H3A=typeof global=="object"&&global&&global.Object===Object&&global,O3A=typeof self=="object"&&self&&self.Object===Object&&self,P3A=H3A||O3A||Function("return this")();function j3A(t){return t.split("")}function q3A(t,e,A,i){for(var n=t.length,o=A+(i?1:-1);i?o--:++o-1;);return A}function X3A(t){return z3A.test(t)}function tj(t){return X3A(t)?$3A(t):j3A(t)}function $3A(t){return t.match(T3A)||[]}var AfA=Object.prototype,efA=AfA.toString,ij=P3A.Symbol,nj=ij?ij.prototype:void 0,oj=nj?nj.toString:void 0;function tfA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:tfA(t,e,A)}function nfA(t){return!!t&&typeof t=="object"}function ofA(t){return typeof t=="symbol"||nfA(t)&&efA.call(t)==N3A}function rfA(t){return t==null?"":Bj(t)}function sfA(t,e,A){if(t=rfA(t),t&&(A||e===void 0))return t.replace(_3A,"");if(!t||!(e=Bj(e)))return t;var i=tj(t),n=W3A(i,tj(e));return ifA(i,n).join("")}Ej.exports=sfA});var Gj=Le((Pge,_j)=>{"use strict";var Nk=1/0,afA=9007199254740991,cfA=17976931348623157e292,Qj=NaN,lfA="[object Symbol]",gfA=/^\s+|\s+$/g,IfA=/^[-+]0x[0-9a-f]+$/i,CfA=/^0b[01]+$/i,dfA=/^0o[0-7]+$/i,Kk="\\ud800-\\udfff",Dj="\\u0300-\\u036f\\ufe20-\\ufe23",yj="\\u20d0-\\u20f0",vj="\\ufe0e\\ufe0f",BfA="["+Kk+"]",_k="["+Dj+yj+"]",Gk="\\ud83c[\\udffb-\\udfff]",EfA="(?:"+_k+"|"+Gk+")",bj="[^"+Kk+"]",Mj="(?:\\ud83c[\\udde6-\\uddff]){2}",kj="[\\ud800-\\udbff][\\udc00-\\udfff]",Sj="\\u200d",Rj=EfA+"?",Lj="["+vj+"]?",hfA="(?:"+Sj+"(?:"+[bj,Mj,kj].join("|")+")"+Lj+Rj+")*",QfA=Lj+Rj+hfA,ufA="(?:"+[bj+_k+"?",_k,Mj,kj,BfA].join("|")+")",Uk=RegExp(Gk+"(?="+Gk+")|"+ufA+QfA,"g"),ffA=RegExp("["+Sj+Kk+Dj+yj+vj+"]"),mfA=parseInt,pfA=typeof global=="object"&&global&&global.Object===Object&&global,wfA=typeof self=="object"&&self&&self.Object===Object&&self,DfA=pfA||wfA||Function("return this")(),yfA=bfA("length");function vfA(t){return t.split("")}function bfA(t){return function(e){return e?.[t]}}function Yk(t){return ffA.test(t)}function xj(t){return Yk(t)?kfA(t):yfA(t)}function MfA(t){return Yk(t)?SfA(t):vfA(t)}function kfA(t){for(var e=Uk.lastIndex=0;Uk.test(t);)e++;return e}function SfA(t){return t.match(Uk)||[]}var RfA=Object.prototype,LfA=RfA.toString,uj=DfA.Symbol,xfA=Math.ceil,FfA=Math.floor,fj=uj?uj.prototype:void 0,mj=fj?fj.toString:void 0;function pj(t,e){var A="";if(!t||e<1||e>afA)return A;do e%2&&(A+=t),e=FfA(e/2),e&&(t+=t);while(e);return A}function NfA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:NfA(t,e,A)}function GfA(t,e){e=e===void 0?" ":Fj(e);var A=e.length;if(A<2)return A?pj(e,t):e;var i=pj(e,xfA(t/xj(e)));return Yk(e)?_fA(MfA(i),0,t).join(""):i.slice(0,t)}function wj(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function UfA(t){return!!t&&typeof t=="object"}function Nj(t){return typeof t=="symbol"||UfA(t)&&LfA.call(t)==lfA}function KfA(t){if(!t)return t===0?t:0;if(t=JfA(t),t===Nk||t===-Nk){var e=t<0?-1:1;return e*cfA}return t===t?t:0}function YfA(t){var e=KfA(t),A=e%1;return e===e?A?e-A:e:0}function JfA(t){if(typeof t=="number")return t;if(Nj(t))return Qj;if(wj(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=wj(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(gfA,"");var A=CfA.test(t);return A||dfA.test(t)?mfA(t.slice(2),A?2:8):IfA.test(t)?Qj:+t}function TfA(t){return t==null?"":Fj(t)}function zfA(t,e,A){t=TfA(t),e=YfA(e);var i=e?xj(t):0;return e&&i{"use strict";Uj.exports=(t,e,A,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,e,A,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof e!="number"||typeof A!="number"||t>255||e>255||A>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(A|e<<8|t<<16|1<<24).toString(16).slice(1)+i}});var Jj=Le((qge,Yj)=>{"use strict";var bu="a-f\\d",HfA=`#?[${bu}]{3}[${bu}]?`,OfA=`#?[${bu}]{6}([${bu}]{2})?`,PfA=new RegExp(`[^#${bu}]`,"gi"),jfA=new RegExp(`^${HfA}$|^${OfA}$`,"i");Yj.exports=(t,e={})=>{if(typeof t!="string"||PfA.test(t)||!jfA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let A=1;t.length===8&&(A=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(A=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof e.alpha=="number"?e.alpha:A;if(e.format==="array")return[n,o,r,s];if(e.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var Hj=Le((Vge,zj)=>{"use strict";var qfA=xP(),VfA=ej(),ZfA=hj(),WfA=Gj(),XfA=Kj(),Tj=Jj(),Jk=.75,Tk=.25,zk=16777215,$fA=49979693;zj.exports=function(t){return"#"+tmA(String(JSON.stringify(t)))};function AmA(t){var e=VfA(t),A=[];return e.forEach(function(i){var n=qfA(i);n&&A.push(Tj(ZfA(n,"#"),{format:"array"}))}),A}function emA(t){var e=[0,0,0];return t.forEach(function(A){for(var i=0;i<3;i++)e[i]+=A[i]}),[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function tmA(t){var e,A=AmA(t);A.length>0&&(e=emA(A));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(zk/n),i=(i+t[r].charCodeAt(0)*o*$fA)%zk;var s=(i*t.length%zk).toString(16);s=WfA(s,6,s);var a=Tj(s,{format:"array"});return e?XfA(Tk*a[0]+Jk*e[0],Tk*a[1]+Jk*e[1],Tk*a[2]+Jk*e[2]):s}});var Eq=Le(iS=>{"use strict";var Bq={b:"\b",f:"\f",n:` +`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},$mA=97;iS.parse=function(t,e,A){var i={},n=0,o=0,r=0,s=A&&A.bigint&&typeof BigInt<"u";return{data:a("",!0),pointers:i};function a(N,K){c();var H;L(N,"value");var j=E();switch(j){case"t":B("rue"),H=!0;break;case"f":B("alse"),H=!1;break;case"n":B("ull"),H=null;break;case'"':H=l();break;case"[":H=C(N);break;case"{":H=d(N);break;default:Q(),"-0123456789".indexOf(j)>=0?H=I():F()}return L(N,"valueEnd"),c(),K&&rNumber.MAX_SAFE_INTEGER||H="a"&&H<="f"?K+=H.charCodeAt()-$mA+10:H>="0"&&H<="9"?K+=+H:U()}return String.fromCharCode(K)}function v(){for(var N="";t[r]>="0"&&t[r]<="9";)N+=E();if(N.length)return N;T(),F()}function L(N,K){x(N,K,y())}function x(N,K,H){i[N]=i[N]||{},i[N][K]=H}function y(){return{line:n,column:o,pos:r}}function F(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function U(){Q(),F()}function T(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};iS.stringify=function(t,e,A){if(!m8(t))return;var i=0,n,o,r=typeof A=="object"?A.space:A;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&x(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0}var epA=/"|\\/g,tpA=/[\b]/g,ipA=/\f/g,npA=/\n/g,opA=/\r/g,rpA=/\t/g;function p8(t){return t=t.replace(epA,"\\$&").replace(ipA,"\\f").replace(tpA,"\\b").replace(npA,"\\n").replace(opA,"\\r").replace(rpA,"\\t"),'"'+t+'"'}var spA=/~/g,apA=/\//g;function tS(t){return t.replace(spA,"~0").replace(apA,"~1")}});var GW=Le((F3e,_W)=>{"use strict";var NW=function(t,e){var A,i,n=1,o=0,r=0,s=String.alphabet;function a(c,l,I){if(I){for(A=l;I=a(c,A),I<76&&I>65;)++A;return+c.slice(l-1,A)}return I=s&&s.indexOf(c.charAt(l)),I>-1?I+76:(I=c.charCodeAt(l)||0,I<45||I>127?I:I<46?65:I<48?I-1:I<58?I+18:I<65?I-11:I<91?I+11:I<97?I-37:I<123?I+5:I-63)}if((t+="")!=(e+="")){for(;n;)if(i=a(t,o++),n=a(e,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(e,r,o=A),r=A),i!=n)return i{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.regexpCode=In.getEsmExportName=In.getProperty=In.safeStringify=In.stringify=In.strConcat=In.addCodeArg=In.str=In._=In.nil=In._Code=In.Name=In.IDENTIFIER=In._CodeOrName=void 0;var Xu=class{};In._CodeOrName=Xu;In.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var XI=class extends Xu{constructor(e){if(super(),!In.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};In.Name=XI;var kc=class extends Xu{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((A,i)=>`${A}${i}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((A,i)=>(i instanceof XI&&(A[i.str]=(A[i.str]||0)+1),A),{})}};In._Code=kc;In.nil=new kc("");function KW(t,...e){let A=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.ValueScope=ua.ValueScopeName=ua.Scope=ua.varKinds=ua.UsedValueState=void 0;var Qa=A4(),JS=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},c5=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(c5||(ua.UsedValueState=c5={}));ua.varKinds={const:new Qa.Name("const"),let:new Qa.Name("let"),var:new Qa.Name("var")};var l5=class{constructor({prefixes:e,parent:A}={}){this._names={},this._prefixes=e,this._parent=A}toName(e){return e instanceof Qa.Name?e:this.name(e)}name(e){return new Qa.Name(this._newName(e))}_newName(e){let A=this._names[e]||this._nameGroup(e);return`${e}${A.index++}`}_nameGroup(e){var A,i;if(!((i=(A=this._parent)===null||A===void 0?void 0:A._prefixes)===null||i===void 0)&&i.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};ua.Scope=l5;var g5=class extends Qa.Name{constructor(e,A){super(A),this.prefix=e}setValue(e,{property:A,itemIndex:i}){this.value=e,this.scopePath=(0,Qa._)`.${new Qa.Name(A)}[${i}]`}};ua.ValueScopeName=g5;var rvA=(0,Qa._)`\n`,TS=class extends l5{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts=Ne(nA({},e),{_n:e.lines?rvA:Qa.nil})}get(){return this._scope}name(e){return new g5(e,this._newName(e))}value(e,A){var i;if(A.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(e),{prefix:o}=n,r=(i=A.key)!==null&&i!==void 0?i:A.ref,s=this._values[o];if(s){let l=s.get(r);if(l)return l}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=A.ref,n.setValue(A,{property:o,itemIndex:c}),n}getValue(e,A){let i=this._values[e];if(i)return i.get(A)}scopeRefs(e,A=this._values){return this._reduceValues(A,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,Qa._)`${e}${i.scopePath}`})}scopeCode(e=this._values,A,i){return this._reduceValues(e,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},A,i)}_reduceValues(e,A,i={},n){let o=Qa.nil;for(let r in e){let s=e[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,c5.Started);let l=A(c);if(l){let I=this.opts.es5?ua.varKinds.var:ua.varKinds.const;o=(0,Qa._)`${o}${I} ${c} = ${l};${this.opts._n}`}else if(l=n?.(c))o=(0,Qa._)`${o}${l}${this.opts._n}`;else throw new JS(c);a.set(c,c5.Completed)})}return o}};ua.ValueScope=TS});var Ji=Le(Ui=>{"use strict";Object.defineProperty(Ui,"__esModule",{value:!0});Ui.or=Ui.and=Ui.not=Ui.CodeGen=Ui.operators=Ui.varKinds=Ui.ValueScopeName=Ui.ValueScope=Ui.Scope=Ui.Name=Ui.regexpCode=Ui.stringify=Ui.getProperty=Ui.nil=Ui.strConcat=Ui.str=Ui._=void 0;var An=A4(),ll=zS(),s1=A4();Object.defineProperty(Ui,"_",{enumerable:!0,get:function(){return s1._}});Object.defineProperty(Ui,"str",{enumerable:!0,get:function(){return s1.str}});Object.defineProperty(Ui,"strConcat",{enumerable:!0,get:function(){return s1.strConcat}});Object.defineProperty(Ui,"nil",{enumerable:!0,get:function(){return s1.nil}});Object.defineProperty(Ui,"getProperty",{enumerable:!0,get:function(){return s1.getProperty}});Object.defineProperty(Ui,"stringify",{enumerable:!0,get:function(){return s1.stringify}});Object.defineProperty(Ui,"regexpCode",{enumerable:!0,get:function(){return s1.regexpCode}});Object.defineProperty(Ui,"Name",{enumerable:!0,get:function(){return s1.Name}});var E5=zS();Object.defineProperty(Ui,"Scope",{enumerable:!0,get:function(){return E5.Scope}});Object.defineProperty(Ui,"ValueScope",{enumerable:!0,get:function(){return E5.ValueScope}});Object.defineProperty(Ui,"ValueScopeName",{enumerable:!0,get:function(){return E5.ValueScopeName}});Object.defineProperty(Ui,"varKinds",{enumerable:!0,get:function(){return E5.varKinds}});Ui.operators={GT:new An._Code(">"),GTE:new An._Code(">="),LT:new An._Code("<"),LTE:new An._Code("<="),EQ:new An._Code("==="),NEQ:new An._Code("!=="),NOT:new An._Code("!"),OR:new An._Code("||"),AND:new An._Code("&&"),ADD:new An._Code("+")};var R0=class{optimizeNodes(){return this}optimizeNames(e,A){return this}},HS=class extends R0{constructor(e,A,i){super(),this.varKind=e,this.name=A,this.rhs=i}render({es5:e,_n:A}){let i=e?ll.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+A}optimizeNames(e,A){if(e[this.name.str])return this.rhs&&(this.rhs=ZB(this.rhs,e,A)),this}get names(){return this.rhs instanceof An._CodeOrName?this.rhs.names:{}}},C5=class extends R0{constructor(e,A,i){super(),this.lhs=e,this.rhs=A,this.sideEffects=i}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,A){if(!(this.lhs instanceof An.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=ZB(this.rhs,e,A),this}get names(){let e=this.lhs instanceof An.Name?{}:nA({},this.lhs.names);return B5(e,this.rhs)}},OS=class extends C5{constructor(e,A,i,n){super(e,i,n),this.op=A}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},PS=class extends R0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},jS=class extends R0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},qS=class extends R0{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},VS=class extends R0{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,A){return this.code=ZB(this.code,e,A),this}get names(){return this.code instanceof An._CodeOrName?this.code.names:{}}},e4=class extends R0{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((A,i)=>A+i.render(e),"")}optimizeNodes(){let{nodes:e}=this,A=e.length;for(;A--;){let i=e[A].optimizeNodes();Array.isArray(i)?e.splice(A,1,...i):i?e[A]=i:e.splice(A,1)}return e.length>0?this:void 0}optimizeNames(e,A){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(e,A)||(svA(e,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((e,A)=>$I(e,A.names),{})}},L0=class extends e4{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},ZS=class extends e4{},WS=(()=>{class t extends L0{}return t.kind="else",t})(),I5=(()=>{class t extends L0{constructor(A,i){super(i),this.condition=A}render(A){let i=`if(${this.condition})`+super.render(A);return this.else&&(i+="else "+this.else.render(A)),i}optimizeNodes(){super.optimizeNodes();let A=this.condition;if(A===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new WS(n):n}if(i)return A===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(OW(A),i instanceof t?[i]:i.nodes);if(!(A===!1||!this.nodes.length))return this}optimizeNames(A,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(A,i),!!(super.optimizeNames(A,i)||this.else))return this.condition=ZB(this.condition,A,i),this}get names(){let A=super.names;return B5(A,this.condition),this.else&&$I(A,this.else.names),A}}return t.kind="if",t})(),h5=(()=>{class t extends L0{}return t.kind="for",t})(),XS=class extends h5{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iteration=ZB(this.iteration,e,A),this}get names(){return $I(super.names,this.iteration.names)}},$S=class extends h5{constructor(e,A,i,n){super(),this.varKind=e,this.name=A,this.from=i,this.to=n}render(e){let A=e.es5?ll.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${A} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(e)}get names(){let e=B5(super.names,this.from);return B5(e,this.to)}},d5=class extends h5{constructor(e,A,i,n){super(),this.loop=e,this.varKind=A,this.name=i,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iterable=ZB(this.iterable,e,A),this}get names(){return $I(super.names,this.iterable.names)}},JW=(()=>{class t extends L0{constructor(A,i,n){super(),this.name=A,this.args=i,this.async=n}render(A){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(A)}}return t.kind="func",t})(),TW=(()=>{class t extends e4{render(A){return"return "+super.render(A)}}return t.kind="return",t})(),AR=class extends L0{render(e){let A="try"+super.render(e);return this.catch&&(A+=this.catch.render(e)),this.finally&&(A+=this.finally.render(e)),A}optimizeNodes(){var e,A;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(A=this.finally)===null||A===void 0||A.optimizeNodes(),this}optimizeNames(e,A){var i,n;return super.optimizeNames(e,A),(i=this.catch)===null||i===void 0||i.optimizeNames(e,A),(n=this.finally)===null||n===void 0||n.optimizeNames(e,A),this}get names(){let e=super.names;return this.catch&&$I(e,this.catch.names),this.finally&&$I(e,this.finally.names),e}},zW=(()=>{class t extends L0{constructor(A){super(),this.error=A}render(A){return`catch(${this.error})`+super.render(A)}}return t.kind="catch",t})(),HW=(()=>{class t extends L0{render(A){return"finally"+super.render(A)}}return t.kind="finally",t})(),eR=class{constructor(e,A={}){this._values={},this._blockStarts=[],this._constants={},this.opts=Ne(nA({},A),{_n:A.lines?` +`:""}),this._extScope=e,this._scope=new ll.Scope({parent:e}),this._nodes=[new ZS]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,A){let i=this._extScope.value(e,A);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(e,A){return this._extScope.getValue(e,A)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,A,i,n){let o=this._scope.toName(A);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new HS(e,o,i)),o}const(e,A,i){return this._def(ll.varKinds.const,e,A,i)}let(e,A,i){return this._def(ll.varKinds.let,e,A,i)}var(e,A,i){return this._def(ll.varKinds.var,e,A,i)}assign(e,A,i){return this._leafNode(new C5(e,A,i))}add(e,A){return this._leafNode(new OS(e,Ui.operators.ADD,A))}code(e){return typeof e=="function"?e():e!==An.nil&&this._leafNode(new VS(e)),this}object(...e){let A=["{"];for(let[i,n]of e)A.length>1&&A.push(","),A.push(i),(i!==n||this.opts.es5)&&(A.push(":"),(0,An.addCodeArg)(A,n));return A.push("}"),new An._Code(A)}if(e,A,i){if(this._blockNode(new I5(e)),A&&i)this.code(A).else().code(i).endIf();else if(A)this.code(A).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new I5(e))}else(){return this._elseNode(new WS)}endIf(){return this._endBlockNode(I5,WS)}_for(e,A){return this._blockNode(e),A&&this.code(A).endFor(),this}for(e,A){return this._for(new XS(e),A)}forRange(e,A,i,n,o=this.opts.es5?ll.varKinds.var:ll.varKinds.let){let r=this._scope.toName(e);return this._for(new $S(o,r,A,i),()=>n(r))}forOf(e,A,i,n=ll.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let r=A instanceof An.Name?A:this.var("_arr",A);return this.forRange("_i",0,(0,An._)`${r}.length`,s=>{this.var(o,(0,An._)`${r}[${s}]`),i(o)})}return this._for(new d5("of",n,o,A),()=>i(o))}forIn(e,A,i,n=this.opts.es5?ll.varKinds.var:ll.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,An._)`Object.keys(${A})`,i);let o=this._scope.toName(e);return this._for(new d5("in",n,o,A),()=>i(o))}endFor(){return this._endBlockNode(h5)}label(e){return this._leafNode(new PS(e))}break(e){return this._leafNode(new jS(e))}return(e){let A=new TW;if(this._blockNode(A),this.code(e),A.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(TW)}try(e,A,i){if(!A&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new AR;if(this._blockNode(n),this.code(e),A){let o=this.name("e");this._currNode=n.catch=new zW(o),A(o)}return i&&(this._currNode=n.finally=new HW,this.code(i)),this._endBlockNode(zW,HW)}throw(e){return this._leafNode(new qS(e))}block(e,A){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(A),this}endBlock(e){let A=this._blockStarts.pop();if(A===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-A;if(i<0||e!==void 0&&i!==e)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${e} expected`);return this._nodes.length=A,this}func(e,A=An.nil,i,n){return this._blockNode(new JW(e,A,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(JW)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,A){let i=this._currNode;if(i instanceof e||A&&i instanceof A)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${A?`${e.kind}/${A.kind}`:e.kind}"`)}_elseNode(e){let A=this._currNode;if(!(A instanceof I5))throw new Error('CodeGen: "else" without "if"');return this._currNode=A.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let A=this._nodes;A[A.length-1]=e}};Ui.CodeGen=eR;function $I(t,e){for(let A in e)t[A]=(t[A]||0)+(e[A]||0);return t}function B5(t,e){return e instanceof An._CodeOrName?$I(t,e.names):t}function ZB(t,e,A){if(t instanceof An.Name)return i(t);if(!n(t))return t;return new An._Code(t._items.reduce((o,r)=>(r instanceof An.Name&&(r=i(r)),r instanceof An._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=A[o.str];return r===void 0||e[o.str]!==1?o:(delete e[o.str],r)}function n(o){return o instanceof An._Code&&o._items.some(r=>r instanceof An.Name&&e[r.str]===1&&A[r.str]!==void 0)}}function svA(t,e){for(let A in e)t[A]=(t[A]||0)-(e[A]||0)}function OW(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,An._)`!${tR(t)}`}Ui.not=OW;var avA=PW(Ui.operators.AND);function cvA(...t){return t.reduce(avA)}Ui.and=cvA;var lvA=PW(Ui.operators.OR);function gvA(...t){return t.reduce(lvA)}Ui.or=gvA;function PW(t){return(e,A)=>e===An.nil?A:A===An.nil?e:(0,An._)`${tR(e)} ${t} ${tR(A)}`}function tR(t){return t instanceof An.Name?t:(0,An._)`(${t})`}});var Cn=Le(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.checkStrictMode=Ti.getErrorPath=Ti.Type=Ti.useFunc=Ti.setEvaluated=Ti.evaluatedPropsToName=Ti.mergeEvaluated=Ti.eachItem=Ti.unescapeJsonPointer=Ti.escapeJsonPointer=Ti.escapeFragment=Ti.unescapeFragment=Ti.schemaRefOrVal=Ti.schemaHasRulesButRef=Ti.schemaHasRules=Ti.checkUnknownRules=Ti.alwaysValidSchema=Ti.toHash=void 0;var co=Ji(),IvA=A4();function CvA(t){let e={};for(let A of t)e[A]=!0;return e}Ti.toHash=CvA;function dvA(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(VW(t,e),!ZW(e,t.self.RULES.all))}Ti.alwaysValidSchema=dvA;function VW(t,e=t.schema){let{opts:A,self:i}=t;if(!A.strictSchema||typeof e=="boolean")return;let n=i.RULES.keywords;for(let o in e)n[o]||$W(t,`unknown keyword: "${o}"`)}Ti.checkUnknownRules=VW;function ZW(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(e[A])return!0;return!1}Ti.schemaHasRules=ZW;function BvA(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(A!=="$ref"&&e.all[A])return!0;return!1}Ti.schemaHasRulesButRef=BvA;function EvA({topSchemaRef:t,schemaPath:e},A,i,n){if(!n){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,co._)`${A}`}return(0,co._)`${t}${e}${(0,co.getProperty)(i)}`}Ti.schemaRefOrVal=EvA;function hvA(t){return WW(decodeURIComponent(t))}Ti.unescapeFragment=hvA;function QvA(t){return encodeURIComponent(nR(t))}Ti.escapeFragment=QvA;function nR(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ti.escapeJsonPointer=nR;function WW(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ti.unescapeJsonPointer=WW;function uvA(t,e){if(Array.isArray(t))for(let A of t)e(A);else e(t)}Ti.eachItem=uvA;function jW({mergeNames:t,mergeToName:e,mergeValues:A,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof co.Name?(o instanceof co.Name?t(n,o,r):e(n,o,r),r):o instanceof co.Name?(e(n,r,o),o):A(o,r);return s===co.Name&&!(a instanceof co.Name)?i(n,a):a}}Ti.mergeEvaluated={props:jW({mergeNames:(t,e,A)=>t.if((0,co._)`${A} !== true && ${e} !== undefined`,()=>{t.if((0,co._)`${e} === true`,()=>t.assign(A,!0),()=>t.assign(A,(0,co._)`${A} || {}`).code((0,co._)`Object.assign(${A}, ${e})`))}),mergeToName:(t,e,A)=>t.if((0,co._)`${A} !== true`,()=>{e===!0?t.assign(A,!0):(t.assign(A,(0,co._)`${A} || {}`),oR(t,A,e))}),mergeValues:(t,e)=>t===!0?!0:nA(nA({},t),e),resultToName:XW}),items:jW({mergeNames:(t,e,A)=>t.if((0,co._)`${A} !== true && ${e} !== undefined`,()=>t.assign(A,(0,co._)`${e} === true ? true : ${A} > ${e} ? ${A} : ${e}`)),mergeToName:(t,e,A)=>t.if((0,co._)`${A} !== true`,()=>t.assign(A,e===!0?!0:(0,co._)`${A} > ${e} ? ${A} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function XW(t,e){if(e===!0)return t.var("props",!0);let A=t.var("props",(0,co._)`{}`);return e!==void 0&&oR(t,A,e),A}Ti.evaluatedPropsToName=XW;function oR(t,e,A){Object.keys(A).forEach(i=>t.assign((0,co._)`${e}${(0,co.getProperty)(i)}`,!0))}Ti.setEvaluated=oR;var qW={};function fvA(t,e){return t.scopeValue("func",{ref:e,code:qW[e.code]||(qW[e.code]=new IvA._Code(e.code))})}Ti.useFunc=fvA;var iR=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(iR||(Ti.Type=iR={}));function mvA(t,e,A){if(t instanceof co.Name){let i=e===iR.Num;return A?i?(0,co._)`"[" + ${t} + "]"`:(0,co._)`"['" + ${t} + "']"`:i?(0,co._)`"/" + ${t}`:(0,co._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,co.getProperty)(t).toString():"/"+nR(t)}Ti.getErrorPath=mvA;function $W(t,e,A=t.opts.strictSchema){if(A){if(e=`strict mode: ${e}`,A===!0)throw new Error(e);t.self.logger.warn(e)}}Ti.checkStrictMode=$W});var x0=Le(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});var us=Ji(),pvA={data:new us.Name("data"),valCxt:new us.Name("valCxt"),instancePath:new us.Name("instancePath"),parentData:new us.Name("parentData"),parentDataProperty:new us.Name("parentDataProperty"),rootData:new us.Name("rootData"),dynamicAnchors:new us.Name("dynamicAnchors"),vErrors:new us.Name("vErrors"),errors:new us.Name("errors"),this:new us.Name("this"),self:new us.Name("self"),scope:new us.Name("scope"),json:new us.Name("json"),jsonPos:new us.Name("jsonPos"),jsonLen:new us.Name("jsonLen"),jsonPart:new us.Name("jsonPart")};rR.default=pvA});var t4=Le(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.extendErrors=fs.resetErrorsCount=fs.reportExtraError=fs.reportError=fs.keyword$DataError=fs.keywordError=void 0;var an=Ji(),Q5=Cn(),Ys=x0();fs.keywordError={message:({keyword:t})=>(0,an.str)`must pass "${t}" keyword validation`};fs.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,an.str)`"${t}" keyword must be ${e} ($data)`:(0,an.str)`"${t}" keyword is invalid ($data)`};function wvA(t,e=fs.keywordError,A,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=tX(t,e,A);i??(r||s)?AX(o,a):eX(n,(0,an._)`[${a}]`)}fs.reportError=wvA;function DvA(t,e=fs.keywordError,A){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=tX(t,e,A);AX(n,s),o||r||eX(i,Ys.default.vErrors)}fs.reportExtraError=DvA;function yvA(t,e){t.assign(Ys.default.errors,e),t.if((0,an._)`${Ys.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,an._)`${Ys.default.vErrors}.length`,e),()=>t.assign(Ys.default.vErrors,null)))}fs.resetErrorsCount=yvA;function vvA({gen:t,keyword:e,schemaValue:A,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,Ys.default.errors,s=>{t.const(r,(0,an._)`${Ys.default.vErrors}[${s}]`),t.if((0,an._)`${r}.instancePath === undefined`,()=>t.assign((0,an._)`${r}.instancePath`,(0,an.strConcat)(Ys.default.instancePath,o.errorPath))),t.assign((0,an._)`${r}.schemaPath`,(0,an.str)`${o.errSchemaPath}/${e}`),o.opts.verbose&&(t.assign((0,an._)`${r}.schema`,A),t.assign((0,an._)`${r}.data`,i))})}fs.extendErrors=vvA;function AX(t,e){let A=t.const("err",e);t.if((0,an._)`${Ys.default.vErrors} === null`,()=>t.assign(Ys.default.vErrors,(0,an._)`[${A}]`),(0,an._)`${Ys.default.vErrors}.push(${A})`),t.code((0,an._)`${Ys.default.errors}++`)}function eX(t,e){let{gen:A,validateName:i,schemaEnv:n}=t;n.$async?A.throw((0,an._)`new ${t.ValidationError}(${e})`):(A.assign((0,an._)`${i}.errors`,e),A.return(!1))}var AC={keyword:new an.Name("keyword"),schemaPath:new an.Name("schemaPath"),params:new an.Name("params"),propertyName:new an.Name("propertyName"),message:new an.Name("message"),schema:new an.Name("schema"),parentSchema:new an.Name("parentSchema")};function tX(t,e,A){let{createErrors:i}=t.it;return i===!1?(0,an._)`{}`:bvA(t,e,A)}function bvA(t,e,A={}){let{gen:i,it:n}=t,o=[MvA(n,A),kvA(t,A)];return SvA(t,e,o),i.object(...o)}function MvA({errorPath:t},{instancePath:e}){let A=e?(0,an.str)`${t}${(0,Q5.getErrorPath)(e,Q5.Type.Str)}`:t;return[Ys.default.instancePath,(0,an.strConcat)(Ys.default.instancePath,A)]}function kvA({keyword:t,it:{errSchemaPath:e}},{schemaPath:A,parentSchema:i}){let n=i?e:(0,an.str)`${e}/${t}`;return A&&(n=(0,an.str)`${n}${(0,Q5.getErrorPath)(A,Q5.Type.Str)}`),[AC.schemaPath,n]}function SvA(t,{params:e,message:A},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:l,schemaPath:I}=s;i.push([AC.keyword,n],[AC.params,typeof e=="function"?e(t):e||(0,an._)`{}`]),a.messages&&i.push([AC.message,typeof A=="function"?A(t):A]),a.verbose&&i.push([AC.schema,r],[AC.parentSchema,(0,an._)`${l}${I}`],[Ys.default.data,o]),c&&i.push([AC.propertyName,c])}});var nX=Le(WB=>{"use strict";Object.defineProperty(WB,"__esModule",{value:!0});WB.boolOrEmptySchema=WB.topBoolOrEmptySchema=void 0;var RvA=t4(),LvA=Ji(),xvA=x0(),FvA={message:"boolean schema is false"};function NvA(t){let{gen:e,schema:A,validateName:i}=t;A===!1?iX(t,!1):typeof A=="object"&&A.$async===!0?e.return(xvA.default.data):(e.assign((0,LvA._)`${i}.errors`,null),e.return(!0))}WB.topBoolOrEmptySchema=NvA;function _vA(t,e){let{gen:A,schema:i}=t;i===!1?(A.var(e,!1),iX(t)):A.var(e,!0)}WB.boolOrEmptySchema=_vA;function iX(t,e){let{gen:A,data:i}=t,n={gen:A,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,RvA.reportError)(n,FvA,void 0,e)}});var sR=Le(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.getRules=XB.isJSONType=void 0;var GvA=["string","number","integer","boolean","null","object","array"],UvA=new Set(GvA);function KvA(t){return typeof t=="string"&&UvA.has(t)}XB.isJSONType=KvA;function YvA(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:Ne(nA({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}XB.getRules=YvA});var aR=Le(a1=>{"use strict";Object.defineProperty(a1,"__esModule",{value:!0});a1.shouldUseRule=a1.shouldUseGroup=a1.schemaHasRulesForType=void 0;function JvA({schema:t,self:e},A){let i=e.RULES.types[A];return i&&i!==!0&&oX(t,i)}a1.schemaHasRulesForType=JvA;function oX(t,e){return e.rules.some(A=>rX(t,A))}a1.shouldUseGroup=oX;function rX(t,e){var A;return t[e.keyword]!==void 0||((A=e.definition.implements)===null||A===void 0?void 0:A.some(i=>t[i]!==void 0))}a1.shouldUseRule=rX});var i4=Le(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.reportTypeError=ms.checkDataTypes=ms.checkDataType=ms.coerceAndCheckDataType=ms.getJSONTypes=ms.getSchemaTypes=ms.DataType=void 0;var TvA=sR(),zvA=aR(),HvA=t4(),wi=Ji(),sX=Cn(),$B=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}($B||(ms.DataType=$B={}));function OvA(t){let e=aX(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}ms.getSchemaTypes=OvA;function aX(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(TvA.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}ms.getJSONTypes=aX;function PvA(t,e){let{gen:A,data:i,opts:n}=t,o=jvA(e,n.coerceTypes),r=e.length>0&&!(o.length===0&&e.length===1&&(0,zvA.schemaHasRulesForType)(t,e[0]));if(r){let s=lR(e,i,n.strictNumbers,$B.Wrong);A.if(s,()=>{o.length?qvA(t,e,o):gR(t)})}return r}ms.coerceAndCheckDataType=PvA;var cX=new Set(["string","number","integer","boolean","null"]);function jvA(t,e){return e?t.filter(A=>cX.has(A)||e==="array"&&A==="array"):[]}function qvA(t,e,A){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,wi._)`typeof ${n}`),s=i.let("coerced",(0,wi._)`undefined`);o.coerceTypes==="array"&&i.if((0,wi._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,wi._)`${n}[0]`).assign(r,(0,wi._)`typeof ${n}`).if(lR(e,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,wi._)`${s} !== undefined`);for(let c of A)(cX.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),gR(t),i.endIf(),i.if((0,wi._)`${s} !== undefined`,()=>{i.assign(n,s),VvA(t,s)});function a(c){switch(c){case"string":i.elseIf((0,wi._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,wi._)`"" + ${n}`).elseIf((0,wi._)`${n} === null`).assign(s,(0,wi._)`""`);return;case"number":i.elseIf((0,wi._)`${r} == "boolean" || ${n} === null + || (${r} == "string" && ${n} && ${n} == +${n})`).assign(s,(0,wi._)`+${n}`);return;case"integer":i.elseIf((0,wi._)`${r} === "boolean" || ${n} === null + || (${r} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(s,(0,wi._)`+${n}`);return;case"boolean":i.elseIf((0,wi._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(s,!1).elseIf((0,wi._)`${n} === "true" || ${n} === 1`).assign(s,!0);return;case"null":i.elseIf((0,wi._)`${n} === "" || ${n} === 0 || ${n} === false`),i.assign(s,null);return;case"array":i.elseIf((0,wi._)`${r} === "string" || ${r} === "number" + || ${r} === "boolean" || ${n} === null`).assign(s,(0,wi._)`[${n}]`)}}}function VvA({gen:t,parentData:e,parentDataProperty:A},i){t.if((0,wi._)`${e} !== undefined`,()=>t.assign((0,wi._)`${e}[${A}]`,i))}function cR(t,e,A,i=$B.Correct){let n=i===$B.Correct?wi.operators.EQ:wi.operators.NEQ,o;switch(t){case"null":return(0,wi._)`${e} ${n} null`;case"array":o=(0,wi._)`Array.isArray(${e})`;break;case"object":o=(0,wi._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":o=r((0,wi._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":o=r();break;default:return(0,wi._)`typeof ${e} ${n} ${t}`}return i===$B.Correct?o:(0,wi.not)(o);function r(s=wi.nil){return(0,wi.and)((0,wi._)`typeof ${e} == "number"`,s,A?(0,wi._)`isFinite(${e})`:wi.nil)}}ms.checkDataType=cR;function lR(t,e,A,i){if(t.length===1)return cR(t[0],e,A,i);let n,o=(0,sX.toHash)(t);if(o.array&&o.object){let r=(0,wi._)`typeof ${e} != "object"`;n=o.null?r:(0,wi._)`!${e} || ${r}`,delete o.null,delete o.array,delete o.object}else n=wi.nil;o.number&&delete o.integer;for(let r in o)n=(0,wi.and)(n,cR(r,e,A,i));return n}ms.checkDataTypes=lR;var ZvA={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,wi._)`{type: ${t}}`:(0,wi._)`{type: ${e}}`};function gR(t){let e=WvA(t);(0,HvA.reportError)(e,ZvA)}ms.reportTypeError=gR;function WvA(t){let{gen:e,data:A,schema:i}=t,n=(0,sX.schemaRefOrVal)(t,i,"type");return{gen:e,keyword:"type",data:A,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var gX=Le(u5=>{"use strict";Object.defineProperty(u5,"__esModule",{value:!0});u5.assignDefaults=void 0;var AE=Ji(),XvA=Cn();function $vA(t,e){let{properties:A,items:i}=t.schema;if(e==="object"&&A)for(let n in A)lX(t,n,A[n].default);else e==="array"&&Array.isArray(i)&&i.forEach((n,o)=>lX(t,o,n.default))}u5.assignDefaults=$vA;function lX(t,e,A){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(A===void 0)return;let s=(0,AE._)`${o}${(0,AE.getProperty)(e)}`;if(n){(0,XvA.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,AE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,AE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,AE._)`${s} = ${(0,AE.stringify)(A)}`)}});var Sc=Le(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.validateUnion=jn.validateArray=jn.usePattern=jn.callValidateCode=jn.schemaProperties=jn.allSchemaProperties=jn.noPropertyInData=jn.propertyInData=jn.isOwnProperty=jn.hasPropFunc=jn.reportMissingProp=jn.checkMissingProp=jn.checkReportMissingProp=void 0;var So=Ji(),IR=Cn(),c1=x0(),A9A=Cn();function e9A(t,e){let{gen:A,data:i,it:n}=t;A.if(dR(A,i,e,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,So._)`${e}`},!0),t.error()})}jn.checkReportMissingProp=e9A;function t9A({gen:t,data:e,it:{opts:A}},i,n){return(0,So.or)(...i.map(o=>(0,So.and)(dR(t,e,o,A.ownProperties),(0,So._)`${n} = ${o}`)))}jn.checkMissingProp=t9A;function i9A(t,e){t.setParams({missingProperty:e},!0),t.error()}jn.reportMissingProp=i9A;function IX(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,So._)`Object.prototype.hasOwnProperty`})}jn.hasPropFunc=IX;function CR(t,e,A){return(0,So._)`${IX(t)}.call(${e}, ${A})`}jn.isOwnProperty=CR;function n9A(t,e,A,i){let n=(0,So._)`${e}${(0,So.getProperty)(A)} !== undefined`;return i?(0,So._)`${n} && ${CR(t,e,A)}`:n}jn.propertyInData=n9A;function dR(t,e,A,i){let n=(0,So._)`${e}${(0,So.getProperty)(A)} === undefined`;return i?(0,So.or)(n,(0,So.not)(CR(t,e,A))):n}jn.noPropertyInData=dR;function CX(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}jn.allSchemaProperties=CX;function o9A(t,e){return CX(e).filter(A=>!(0,IR.alwaysValidSchema)(t,e[A]))}jn.schemaProperties=o9A;function r9A({schemaCode:t,data:e,it:{gen:A,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let l=c?(0,So._)`${t}, ${e}, ${i}${n}`:e,I=[[c1.default.instancePath,(0,So.strConcat)(c1.default.instancePath,o)],[c1.default.parentData,r.parentData],[c1.default.parentDataProperty,r.parentDataProperty],[c1.default.rootData,c1.default.rootData]];r.opts.dynamicRef&&I.push([c1.default.dynamicAnchors,c1.default.dynamicAnchors]);let C=(0,So._)`${l}, ${A.object(...I)}`;return a!==So.nil?(0,So._)`${s}.call(${a}, ${C})`:(0,So._)`${s}(${C})`}jn.callValidateCode=r9A;var s9A=(0,So._)`new RegExp`;function a9A({gen:t,it:{opts:e}},A){let i=e.unicodeRegExp?"u":"",{regExp:n}=e.code,o=n(A,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,So._)`${n.code==="new RegExp"?s9A:(0,A9A.useFunc)(t,n)}(${A}, ${i})`})}jn.usePattern=a9A;function c9A(t){let{gen:e,data:A,keyword:i,it:n}=t,o=e.name("valid");if(n.allErrors){let s=e.let("valid",!0);return r(()=>e.assign(s,!1)),s}return e.var(o,!0),r(()=>e.break()),o;function r(s){let a=e.const("len",(0,So._)`${A}.length`);e.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:IR.Type.Num},o),e.if((0,So.not)(o),s)})}}jn.validateArray=c9A;function l9A(t){let{gen:e,schema:A,keyword:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(A.some(a=>(0,IR.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=e.let("valid",!1),s=e.name("_valid");e.block(()=>A.forEach((a,c)=>{let l=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);e.assign(r,(0,So._)`${r} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,So.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}jn.validateUnion=l9A});var EX=Le(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0});dg.validateKeywordUsage=dg.validSchemaType=dg.funcKeywordCode=dg.macroKeywordCode=void 0;var Js=Ji(),eC=x0(),g9A=Sc(),I9A=t4();function C9A(t,e){let{gen:A,keyword:i,schema:n,parentSchema:o,it:r}=t,s=e.macro.call(r.self,n,o,r),a=BX(A,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=A.name("valid");t.subschema({schema:s,schemaPath:Js.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}dg.macroKeywordCode=C9A;function d9A(t,e){var A;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;E9A(a,e);let c=!s&&e.compile?e.compile.call(a.self,o,r,a):e.validate,l=BX(i,n,c),I=i.let("valid");t.block$data(I,C),t.ok((A=e.valid)!==null&&A!==void 0?A:I);function C(){if(e.errors===!1)E(),e.modifying&&dX(t),Q(()=>t.error());else{let u=e.async?d():B();e.modifying&&dX(t),Q(()=>B9A(t,u))}}function d(){let u=i.let("ruleErrs",null);return i.try(()=>E((0,Js._)`await `),v=>i.assign(I,!1).if((0,Js._)`${v} instanceof ${a.ValidationError}`,()=>i.assign(u,(0,Js._)`${v}.errors`),()=>i.throw(v))),u}function B(){let u=(0,Js._)`${l}.errors`;return i.assign(u,null),E(Js.nil),u}function E(u=e.async?(0,Js._)`await `:Js.nil){let v=a.opts.passContext?eC.default.this:eC.default.self,L=!("compile"in e&&!s||e.schema===!1);i.assign(I,(0,Js._)`${u}${(0,g9A.callValidateCode)(t,l,v,L)}`,e.modifying)}function Q(u){var v;i.if((0,Js.not)((v=e.valid)!==null&&v!==void 0?v:I),u)}}dg.funcKeywordCode=d9A;function dX(t){let{gen:e,data:A,it:i}=t;e.if(i.parentData,()=>e.assign(A,(0,Js._)`${i.parentData}[${i.parentDataProperty}]`))}function B9A(t,e){let{gen:A}=t;A.if((0,Js._)`Array.isArray(${e})`,()=>{A.assign(eC.default.vErrors,(0,Js._)`${eC.default.vErrors} === null ? ${e} : ${eC.default.vErrors}.concat(${e})`).assign(eC.default.errors,(0,Js._)`${eC.default.vErrors}.length`),(0,I9A.extendErrors)(t)},()=>t.error())}function E9A({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function BX(t,e,A){if(A===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof A=="function"?{ref:A}:{ref:A,code:(0,Js.stringify)(A)})}function h9A(t,e,A=!1){return!e.length||e.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||A&&typeof t>"u")}dg.validSchemaType=h9A;function Q9A({schema:t,opts:e,self:A,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+A.errorsText(n.validateSchema.errors);if(e.validateSchema==="log")A.logger.error(a);else throw new Error(a)}}dg.validateKeywordUsage=Q9A});var QX=Le(l1=>{"use strict";Object.defineProperty(l1,"__esModule",{value:!0});l1.extendSubschemaMode=l1.extendSubschemaData=l1.getSubschema=void 0;var Bg=Ji(),hX=Cn();function u9A(t,{keyword:e,schemaProp:A,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(e!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return A===void 0?{schema:s,schemaPath:(0,Bg._)`${t.schemaPath}${(0,Bg.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[A],schemaPath:(0,Bg._)`${t.schemaPath}${(0,Bg.getProperty)(e)}${(0,Bg.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,hX.escapeFragment)(A)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}l1.getSubschema=u9A;function f9A(t,e,{dataProp:A,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(A!==void 0){let{errorPath:c,dataPathArr:l,opts:I}=e,C=s.let("data",(0,Bg._)`${e.data}${(0,Bg.getProperty)(A)}`,!0);a(C),t.errorPath=(0,Bg.str)`${c}${(0,hX.getErrorPath)(A,i,I.jsPropertySyntax)}`,t.parentDataProperty=(0,Bg._)`${A}`,t.dataPathArr=[...l,t.parentDataProperty]}if(n!==void 0){let c=n instanceof Bg.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,c]}}l1.extendSubschemaData=f9A;function m9A(t,{jtdDiscriminator:e,jtdMetadata:A,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=e,t.jtdMetadata=A}l1.extendSubschemaMode=m9A});var BR=Le((Afe,uX)=>{"use strict";uX.exports=function t(e,A){if(e===A)return!0;if(e&&A&&typeof e=="object"&&typeof A=="object"){if(e.constructor!==A.constructor)return!1;var i,n,o;if(Array.isArray(e)){if(i=e.length,i!=A.length)return!1;for(n=i;n--!==0;)if(!t(e[n],A[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===A.source&&e.flags===A.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===A.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===A.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(A).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(A,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(e[r],A[r]))return!1}return!0}return e!==e&&A!==A}});var mX=Le((efe,fX)=>{"use strict";var g1=fX.exports=function(t,e,A){typeof e=="function"&&(A=e,e={}),A=e.cb||A;var i=typeof A=="function"?A:A.pre||function(){},n=A.post||function(){};f5(e,i,n,t,"",t)};g1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};g1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};g1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};g1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function f5(t,e,A,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){e(i,n,o,r,s,a,c);for(var l in i){var I=i[l];if(Array.isArray(I)){if(l in g1.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.getSchemaRefs=fa.resolveUrl=fa.normalizeId=fa._getFullPath=fa.getFullPath=fa.inlineRef=void 0;var w9A=Cn(),D9A=BR(),y9A=mX(),v9A=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function b9A(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ER(t):e?pX(t)<=e:!1}fa.inlineRef=b9A;var M9A=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ER(t){for(let e in t){if(M9A.has(e))return!0;let A=t[e];if(Array.isArray(A)&&A.some(ER)||typeof A=="object"&&ER(A))return!0}return!1}function pX(t){let e=0;for(let A in t){if(A==="$ref")return 1/0;if(e++,!v9A.has(A)&&(typeof t[A]=="object"&&(0,w9A.eachItem)(t[A],i=>e+=pX(i)),e===1/0))return 1/0}return e}function wX(t,e="",A){A!==!1&&(e=eE(e));let i=t.parse(e);return DX(t,i)}fa.getFullPath=wX;function DX(t,e){return t.serialize(e).split("#")[0]+"#"}fa._getFullPath=DX;var k9A=/#\/?$/;function eE(t){return t?t.replace(k9A,""):""}fa.normalizeId=eE;function S9A(t,e,A){return A=eE(A),t.resolve(e,A)}fa.resolveUrl=S9A;var R9A=/^[a-z_][-a-z0-9._]*$/i;function L9A(t,e){if(typeof t=="boolean")return{};let{schemaId:A,uriResolver:i}=this.opts,n=eE(t[A]||e),o={"":n},r=wX(i,n,!1),s={},a=new Set;return y9A(t,{allKeys:!0},(I,C,d,B)=>{if(B===void 0)return;let E=r+C,Q=o[B];typeof I[A]=="string"&&(Q=u.call(this,I[A])),v.call(this,I.$anchor),v.call(this,I.$dynamicAnchor),o[C]=Q;function u(L){let x=this.opts.uriResolver.resolve;if(L=eE(Q?x(Q,L):L),a.has(L))throw l(L);a.add(L);let y=this.refs[L];return typeof y=="string"&&(y=this.refs[y]),typeof y=="object"?c(I,y.schema,L):L!==eE(E)&&(L[0]==="#"?(c(I,s[L],L),s[L]=I):this.refs[L]=E),L}function v(L){if(typeof L=="string"){if(!R9A.test(L))throw new Error(`invalid anchor "${L}"`);u.call(this,`#${L}`)}}}),s;function c(I,C,d){if(C!==void 0&&!D9A(I,C))throw l(d)}function l(I){return new Error(`reference "${I}" resolves to more than one schema`)}}fa.getSchemaRefs=L9A});var s4=Le(I1=>{"use strict";Object.defineProperty(I1,"__esModule",{value:!0});I1.getData=I1.KeywordCxt=I1.validateFunctionCode=void 0;var kX=nX(),yX=i4(),QR=aR(),m5=i4(),x9A=gX(),r4=EX(),hR=QX(),gt=Ji(),Xt=x0(),F9A=n4(),F0=Cn(),o4=t4();function N9A(t){if(LX(t)&&(xX(t),RX(t))){U9A(t);return}SX(t,()=>(0,kX.topBoolOrEmptySchema)(t))}I1.validateFunctionCode=N9A;function SX({gen:t,validateName:e,schema:A,schemaEnv:i,opts:n},o){n.code.es5?t.func(e,(0,gt._)`${Xt.default.data}, ${Xt.default.valCxt}`,i.$async,()=>{t.code((0,gt._)`"use strict"; ${vX(A,n)}`),G9A(t,n),t.code(o)}):t.func(e,(0,gt._)`${Xt.default.data}, ${_9A(n)}`,i.$async,()=>t.code(vX(A,n)).code(o))}function _9A(t){return(0,gt._)`{${Xt.default.instancePath}="", ${Xt.default.parentData}, ${Xt.default.parentDataProperty}, ${Xt.default.rootData}=${Xt.default.data}${t.dynamicRef?(0,gt._)`, ${Xt.default.dynamicAnchors}={}`:gt.nil}}={}`}function G9A(t,e){t.if(Xt.default.valCxt,()=>{t.var(Xt.default.instancePath,(0,gt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),t.var(Xt.default.parentData,(0,gt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),t.var(Xt.default.parentDataProperty,(0,gt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),t.var(Xt.default.rootData,(0,gt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),e.dynamicRef&&t.var(Xt.default.dynamicAnchors,(0,gt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{t.var(Xt.default.instancePath,(0,gt._)`""`),t.var(Xt.default.parentData,(0,gt._)`undefined`),t.var(Xt.default.parentDataProperty,(0,gt._)`undefined`),t.var(Xt.default.rootData,Xt.default.data),e.dynamicRef&&t.var(Xt.default.dynamicAnchors,(0,gt._)`{}`)})}function U9A(t){let{schema:e,opts:A,gen:i}=t;SX(t,()=>{A.$comment&&e.$comment&&NX(t),z9A(t),i.let(Xt.default.vErrors,null),i.let(Xt.default.errors,0),A.unevaluated&&K9A(t),FX(t),P9A(t)})}function K9A(t){let{gen:e,validateName:A}=t;t.evaluated=e.const("evaluated",(0,gt._)`${A}.evaluated`),e.if((0,gt._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,gt._)`${t.evaluated}.props`,(0,gt._)`undefined`)),e.if((0,gt._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,gt._)`${t.evaluated}.items`,(0,gt._)`undefined`))}function vX(t,e){let A=typeof t=="object"&&t[e.schemaId];return A&&(e.code.source||e.code.process)?(0,gt._)`/*# sourceURL=${A} */`:gt.nil}function Y9A(t,e){if(LX(t)&&(xX(t),RX(t))){J9A(t,e);return}(0,kX.boolOrEmptySchema)(t,e)}function RX({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let A in t)if(e.RULES.all[A])return!0;return!1}function LX(t){return typeof t.schema!="boolean"}function J9A(t,e){let{schema:A,gen:i,opts:n}=t;n.$comment&&A.$comment&&NX(t),H9A(t),O9A(t);let o=i.const("_errs",Xt.default.errors);FX(t,o),i.var(e,(0,gt._)`${o} === ${Xt.default.errors}`)}function xX(t){(0,F0.checkUnknownRules)(t),T9A(t)}function FX(t,e){if(t.opts.jtd)return bX(t,[],!1,e);let A=(0,yX.getSchemaTypes)(t.schema),i=(0,yX.coerceAndCheckDataType)(t,A);bX(t,A,!i,e)}function T9A(t){let{schema:e,errSchemaPath:A,opts:i,self:n}=t;e.$ref&&i.ignoreKeywordsWithRef&&(0,F0.schemaHasRulesButRef)(e,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${A}"`)}function z9A(t){let{schema:e,opts:A}=t;e.default!==void 0&&A.useDefaults&&A.strictSchema&&(0,F0.checkStrictMode)(t,"default is ignored in the schema root")}function H9A(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,F9A.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function O9A(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function NX({gen:t,schemaEnv:e,schema:A,errSchemaPath:i,opts:n}){let o=A.$comment;if(n.$comment===!0)t.code((0,gt._)`${Xt.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,gt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,gt._)`${Xt.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function P9A(t){let{gen:e,schemaEnv:A,validateName:i,ValidationError:n,opts:o}=t;A.$async?e.if((0,gt._)`${Xt.default.errors} === 0`,()=>e.return(Xt.default.data),()=>e.throw((0,gt._)`new ${n}(${Xt.default.vErrors})`)):(e.assign((0,gt._)`${i}.errors`,Xt.default.vErrors),o.unevaluated&&j9A(t),e.return((0,gt._)`${Xt.default.errors} === 0`))}function j9A({gen:t,evaluated:e,props:A,items:i}){A instanceof gt.Name&&t.assign((0,gt._)`${e}.props`,A),i instanceof gt.Name&&t.assign((0,gt._)`${e}.items`,i)}function bX(t,e,A,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:l}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,F0.schemaHasRulesButRef)(o,l))){n.block(()=>GX(t,"$ref",l.all.$ref.definition));return}a.jtd||q9A(t,e),n.block(()=>{for(let C of l.rules)I(C);I(l.post)});function I(C){(0,QR.shouldUseGroup)(o,C)&&(C.type?(n.if((0,m5.checkDataType)(C.type,r,a.strictNumbers)),MX(t,C),e.length===1&&e[0]===C.type&&A&&(n.else(),(0,m5.reportTypeError)(t)),n.endIf()):MX(t,C),s||n.if((0,gt._)`${Xt.default.errors} === ${i||0}`))}}function MX(t,e){let{gen:A,schema:i,opts:{useDefaults:n}}=t;n&&(0,x9A.assignDefaults)(t,e.type),A.block(()=>{for(let o of e.rules)(0,QR.shouldUseRule)(i,o)&&GX(t,o.keyword,o.definition,e.type)})}function q9A(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(V9A(t,e),t.opts.allowUnionTypes||Z9A(t,e),W9A(t,t.dataTypes))}function V9A(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(A=>{_X(t.dataTypes,A)||uR(t,`type "${A}" not allowed by context "${t.dataTypes.join(",")}"`)}),$9A(t,e)}}function Z9A(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&uR(t,"use allowUnionTypes to allow union type keyword")}function W9A(t,e){let A=t.self.RULES.all;for(let i in A){let n=A[i];if(typeof n=="object"&&(0,QR.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>X9A(e,r))&&uR(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function X9A(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function _X(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function $9A(t,e){let A=[];for(let i of t.dataTypes)_X(e,i)?A.push(i):e.includes("integer")&&i==="number"&&A.push("integer");t.dataTypes=A}function uR(t,e){let A=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${A}" (strictTypes)`,(0,F0.checkStrictMode)(t,e,t.opts.strictTypes)}var p5=class{constructor(e,A,i){if((0,r4.validateKeywordUsage)(e,A,i),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=i,this.data=e.data,this.schema=e.schema[i],this.$data=A.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,F0.schemaRefOrVal)(e,this.schema,i,this.$data),this.schemaType=A.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=A,this.$data)this.schemaCode=e.gen.const("vSchema",UX(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,r4.validSchemaType)(this.schema,A.schemaType,A.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(A.schemaType)}`);("code"in A?A.trackErrors:A.errors!==!1)&&(this.errsCount=e.gen.const("_errs",Xt.default.errors))}result(e,A,i){this.failResult((0,gt.not)(e),A,i)}failResult(e,A,i){this.gen.if(e),i?i():this.error(),A?(this.gen.else(),A(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,A){this.failResult((0,gt.not)(e),void 0,A)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:A}=this;this.fail((0,gt._)`${A} !== undefined && (${(0,gt.or)(this.invalid$data(),e)})`)}error(e,A,i){if(A){this.setParams(A),this._error(e,i),this.setParams({});return}this._error(e,i)}_error(e,A){(e?o4.reportExtraError:o4.reportError)(this,this.def.error,A)}$dataError(){(0,o4.reportError)(this,this.def.$dataError||o4.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,o4.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,A){A?Object.assign(this.params,e):this.params=e}block$data(e,A,i=gt.nil){this.gen.block(()=>{this.check$data(e,i),A()})}check$data(e=gt.nil,A=gt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,gt.or)((0,gt._)`${n} === undefined`,A)),e!==gt.nil&&i.assign(e,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),e!==gt.nil&&i.assign(e,!1)),i.else()}invalid$data(){let{gen:e,schemaCode:A,schemaType:i,def:n,it:o}=this;return(0,gt.or)(r(),s());function r(){if(i.length){if(!(A instanceof gt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,gt._)`${(0,m5.checkDataTypes)(a,A,o.opts.strictNumbers,m5.DataType.Wrong)}`}return gt.nil}function s(){if(n.validateSchema){let a=e.scopeValue("validate$data",{ref:n.validateSchema});return(0,gt._)`!${a}(${A})`}return gt.nil}}subschema(e,A){let i=(0,hR.getSubschema)(this.it,e);(0,hR.extendSubschemaData)(i,this.it,e),(0,hR.extendSubschemaMode)(i,e);let n=Ne(nA(nA({},this.it),i),{items:void 0,props:void 0});return Y9A(n,A),n}mergeEvaluated(e,A){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&e.props!==void 0&&(i.props=F0.mergeEvaluated.props(n,e.props,i.props,A)),i.items!==!0&&e.items!==void 0&&(i.items=F0.mergeEvaluated.items(n,e.items,i.items,A)))}mergeValidEvaluated(e,A){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(A,()=>this.mergeEvaluated(e,gt.Name)),!0}};I1.KeywordCxt=p5;function GX(t,e,A,i){let n=new p5(t,A,e);"code"in A?A.code(n,i):n.$data&&A.validate?(0,r4.funcKeywordCode)(n,A):"macro"in A?(0,r4.macroKeywordCode)(n,A):(A.compile||A.validate)&&(0,r4.funcKeywordCode)(n,A)}var AbA=/^\/(?:[^~]|~0|~1)*$/,ebA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function UX(t,{dataLevel:e,dataNames:A,dataPathArr:i}){let n,o;if(t==="")return Xt.default.rootData;if(t[0]==="/"){if(!AbA.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=Xt.default.rootData}else{let c=ebA.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+c[1];if(n=c[2],n==="#"){if(l>=e)throw new Error(a("property/index",l));return i[e-l]}if(l>e)throw new Error(a("data",l));if(o=A[e-l],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,gt._)`${o}${(0,gt.getProperty)((0,F0.unescapeJsonPointer)(c))}`,r=(0,gt._)`${r} && ${o}`);return r;function a(c,l){return`Cannot access ${c} ${l} levels up, current level is ${e}`}}I1.getData=UX});var w5=Le(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});var fR=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};mR.default=fR});var a4=Le(DR=>{"use strict";Object.defineProperty(DR,"__esModule",{value:!0});var pR=n4(),wR=class extends Error{constructor(e,A,i,n){super(n||`can't resolve reference ${i} from id ${A}`),this.missingRef=(0,pR.resolveUrl)(e,A,i),this.missingSchema=(0,pR.normalizeId)((0,pR.getFullPath)(e,this.missingRef))}};DR.default=wR});var y5=Le(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.resolveSchema=Rc.getCompilingSchema=Rc.resolveRef=Rc.compileSchema=Rc.SchemaEnv=void 0;var gl=Ji(),tbA=w5(),tC=x0(),Il=n4(),KX=Cn(),ibA=s4(),tE=class{constructor(e){var A;this.refs={},this.dynamicAnchors={};let i;typeof e.schema=="object"&&(i=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(A=e.baseId)!==null&&A!==void 0?A:(0,Il.normalizeId)(i?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=i?.$async,this.refs={}}};Rc.SchemaEnv=tE;function vR(t){let e=YX.call(this,t);if(e)return e;let A=(0,Il.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new gl.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:tbA.default,code:(0,gl._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:tC.default.data,parentData:tC.default.parentData,parentDataProperty:tC.default.parentDataProperty,dataNames:[tC.default.data],dataPathArr:[gl.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,gl.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:A,baseId:t.baseId||A,schemaPath:gl.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,gl._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,ibA.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let I=r.toString();l=`${r.scopeRefs(tC.default.scope)}return ${I}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let d=new Function(`${tC.default.self}`,`${tC.default.scope}`,l)(this,this.scope.get());if(this.scope.value(a,{ref:d}),d.errors=null,d.schema=t.schema,d.schemaEnv=t,t.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:a,validateCode:I,scopeValues:r._values}),this.opts.unevaluated){let{props:B,items:E}=c;d.evaluated={props:B instanceof gl.Name?void 0:B,items:E instanceof gl.Name?void 0:E,dynamicProps:B instanceof gl.Name,dynamicItems:E instanceof gl.Name},d.source&&(d.source.evaluated=(0,gl.stringify)(d.evaluated))}return t.validate=d,t}catch(I){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),I}finally{this._compilations.delete(t)}}Rc.compileSchema=vR;function nbA(t,e,A){var i;A=(0,Il.resolveUrl)(this.opts.uriResolver,e,A);let n=t.refs[A];if(n)return n;let o=sbA.call(this,t,A);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[A],{schemaId:s}=this.opts;r&&(o=new tE({schema:r,schemaId:s,root:t,baseId:e}))}if(o!==void 0)return t.refs[A]=obA.call(this,o)}Rc.resolveRef=nbA;function obA(t){return(0,Il.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:vR.call(this,t)}function YX(t){for(let e of this._compilations)if(rbA(e,t))return e}Rc.getCompilingSchema=YX;function rbA(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function sbA(t,e){let A;for(;typeof(A=this.refs[e])=="string";)e=A;return A||this.schemas[e]||D5.call(this,t,e)}function D5(t,e){let A=this.opts.uriResolver.parse(e),i=(0,Il._getFullPath)(this.opts.uriResolver,A),n=(0,Il.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return yR.call(this,A,t);let o=(0,Il.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=D5.call(this,t,r);return typeof s?.schema!="object"?void 0:yR.call(this,A,s)}if(typeof r?.schema=="object"){if(r.validate||vR.call(this,r),o===(0,Il.normalizeId)(e)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,Il.resolveUrl)(this.opts.uriResolver,n,c)),new tE({schema:s,schemaId:a,root:t,baseId:n})}return yR.call(this,A,r)}}Rc.resolveSchema=D5;var abA=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function yR(t,{baseId:e,schema:A,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof A=="boolean")return;let a=A[(0,KX.unescapeFragment)(s)];if(a===void 0)return;A=a;let c=typeof A=="object"&&A[this.opts.schemaId];!abA.has(s)&&c&&(e=(0,Il.resolveUrl)(this.opts.uriResolver,e,c))}let o;if(typeof A!="boolean"&&A.$ref&&!(0,KX.schemaHasRulesButRef)(A,this.RULES)){let s=(0,Il.resolveUrl)(this.opts.uriResolver,e,A.$ref);o=D5.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new tE({schema:A,schemaId:r,root:i,baseId:e}),o.schema!==o.root.schema)return o}});var JX=Le((afe,cbA)=>{cbA.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var zX=Le((cfe,TX)=>{"use strict";var lbA={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};TX.exports={HEX:lbA}});var WX=Le((lfe,ZX)=>{"use strict";var{HEX:gbA}=zX(),IbA=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function jX(t){if(VX(t,".")<3)return{host:t,isIPV4:!1};let e=t.match(IbA)||[],[A]=e;return A?{host:dbA(A,"."),isIPV4:!0}:{host:t,isIPV4:!1}}function bR(t,e=!1){let A="",i=!0;for(let n of t){if(gbA[n]===void 0)return;n!=="0"&&i===!0&&(i=!1),i||(A+=n)}return e&&A.length===0&&(A="0"),A}function CbA(t){let e=0,A={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=!1;function a(){if(n.length){if(o===!1){let c=bR(n);if(c!==void 0)i.push(c);else return A.error=!0,!1}n.length=0}return!0}for(let c=0;c7){A.error=!0;break}c-1>=0&&t[c-1]===":"&&(r=!0);continue}else if(l==="%"){if(!a())break;o=!0}else{n.push(l);continue}}return n.length&&(o?A.zone=n.join(""):s?i.push(n.join("")):i.push(bR(n))),A.address=i.join(""),A}function qX(t){if(VX(t,":")<2)return{host:t,isIPV6:!1};let e=CbA(t);if(e.error)return{host:t,isIPV6:!1};{let A=e.address,i=e.address;return e.zone&&(A+="%"+e.zone,i+="%25"+e.zone),{host:A,escapedHost:i,isIPV6:!0}}}function dbA(t,e){let A="",i=!0,n=t.length;for(let o=0;o{"use strict";var ubA=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,fbA=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function XX(t){return typeof t.secure=="boolean"?t.secure:String(t.scheme).toLowerCase()==="wss"}function $X(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function A$(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function mbA(t){return t.secure=XX(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function pbA(t){if((t.port===(XX(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,A]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=A,t.resourceName=void 0}return t.fragment=void 0,t}function wbA(t,e){if(!t.path)return t.error="URN can not be parsed",t;let A=t.path.match(fbA);if(A){let i=e.scheme||t.scheme||"urn";t.nid=A[1].toLowerCase(),t.nss=A[2];let n=`${i}:${e.nid||t.nid}`,o=MR[n];t.path=void 0,o&&(t=o.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function DbA(t,e){let A=e.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${A}:${e.nid||i}`,o=MR[n];o&&(t=o.serialize(t,e));let r=t,s=t.nss;return r.path=`${i||e.nid}:${s}`,e.skipEscape=!0,r}function ybA(t,e){let A=t;return A.uuid=A.nss,A.nss=void 0,!e.tolerant&&(!A.uuid||!ubA.test(A.uuid))&&(A.error=A.error||"UUID is not valid."),A}function vbA(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var e$={scheme:"http",domainHost:!0,parse:$X,serialize:A$},bbA={scheme:"https",domainHost:e$.domainHost,parse:$X,serialize:A$},v5={scheme:"ws",domainHost:!0,parse:mbA,serialize:pbA},MbA={scheme:"wss",domainHost:v5.domainHost,parse:v5.parse,serialize:v5.serialize},kbA={scheme:"urn",parse:wbA,serialize:DbA,skipNormalize:!0},SbA={scheme:"urn:uuid",parse:ybA,serialize:vbA,skipNormalize:!0},MR={http:e$,https:bbA,ws:v5,wss:MbA,urn:kbA,"urn:uuid":SbA};t$.exports=MR});var o$=Le((Ife,M5)=>{"use strict";var{normalizeIPv6:RbA,normalizeIPv4:LbA,removeDotSegments:c4,recomposeAuthority:xbA,normalizeComponentEncoding:b5}=WX(),kR=i$();function FbA(t,e){return typeof t=="string"?t=Eg(N0(t,e),e):typeof t=="object"&&(t=N0(Eg(t,e),e)),t}function NbA(t,e,A){let i=Object.assign({scheme:"null"},A),n=n$(N0(t,i),N0(e,i),i,!0);return Eg(n,Ne(nA({},i),{skipEscape:!0}))}function n$(t,e,A,i){let n={};return i||(t=N0(Eg(t,A),A),e=N0(Eg(e,A),A)),A=A||{},!A.tolerant&&e.scheme?(n.scheme=e.scheme,n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=c4(e.path||""),n.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=c4(e.path||""),n.query=e.query):(e.path?(e.path.charAt(0)==="/"?n.path=c4(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+e.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:n.path=e.path,n.path=c4(n.path)),n.query=e.query):(n.path=t.path,e.query!==void 0?n.query=e.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=e.fragment,n}function _bA(t,e,A){return typeof t=="string"?(t=unescape(t),t=Eg(b5(N0(t,A),!0),Ne(nA({},A),{skipEscape:!0}))):typeof t=="object"&&(t=Eg(b5(t,!0),Ne(nA({},A),{skipEscape:!0}))),typeof e=="string"?(e=unescape(e),e=Eg(b5(N0(e,A),!0),Ne(nA({},A),{skipEscape:!0}))):typeof e=="object"&&(e=Eg(b5(e,!0),Ne(nA({},A),{skipEscape:!0}))),t.toLowerCase()===e.toLowerCase()}function Eg(t,e){let A={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},e),n=[],o=kR[(i.scheme||A.scheme||"").toLowerCase()];o&&o.serialize&&o.serialize(A,i),A.path!==void 0&&(i.skipEscape?A.path=unescape(A.path):(A.path=escape(A.path),A.scheme!==void 0&&(A.path=A.path.split("%3A").join(":")))),i.reference!=="suffix"&&A.scheme&&n.push(A.scheme,":");let r=xbA(A);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),A.path&&A.path.charAt(0)!=="/"&&n.push("/")),A.path!==void 0){let s=A.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=c4(s)),r===void 0&&(s=s.replace(/^\/\//u,"/%2F")),n.push(s)}return A.query!==void 0&&n.push("?",A.query),A.fragment!==void 0&&n.push("#",A.fragment),n.join("")}var GbA=Array.from({length:127},(t,e)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(e)));function UbA(t){let e=0;for(let A=0,i=t.length;A126||GbA[e])return!0;return!1}var KbA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function N0(t,e){let A=Object.assign({},e),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=t.indexOf("%")!==-1,o=!1;A.reference==="suffix"&&(t=(A.scheme?A.scheme+":":"")+"//"+t);let r=t.match(KbA);if(r){if(i.scheme=r[1],i.userinfo=r[3],i.host=r[4],i.port=parseInt(r[5],10),i.path=r[6]||"",i.query=r[7],i.fragment=r[8],isNaN(i.port)&&(i.port=r[5]),i.host){let a=LbA(i.host);if(a.isIPV4===!1){let c=RbA(a.host);i.host=c.host.toLowerCase(),o=c.isIPV6}else i.host=a.host,o=!0}i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",A.reference&&A.reference!=="suffix"&&A.reference!==i.reference&&(i.error=i.error||"URI is not a "+A.reference+" reference.");let s=kR[(A.scheme||i.scheme||"").toLowerCase()];if(!A.unicodeSupport&&(!s||!s.unicodeSupport)&&i.host&&(A.domainHost||s&&s.domainHost)&&o===!1&&UbA(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(a){i.error=i.error||"Host's domain name can not be converted to ASCII: "+a}(!s||s&&!s.skipNormalize)&&(n&&i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),n&&i.host!==void 0&&(i.host=unescape(i.host)),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),s&&s.parse&&s.parse(i,A)}else i.error=i.error||"URI can not be parsed.";return i}var SR={SCHEMES:kR,normalize:FbA,resolve:NbA,resolveComponents:n$,equal:_bA,serialize:Eg,parse:N0};M5.exports=SR;M5.exports.default=SR;M5.exports.fastUri=SR});var s$=Le(RR=>{"use strict";Object.defineProperty(RR,"__esModule",{value:!0});var r$=o$();r$.code='require("ajv/dist/runtime/uri").default';RR.default=r$});var B$=Le(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.CodeGen=es.Name=es.nil=es.stringify=es.str=es._=es.KeywordCxt=void 0;var YbA=s4();Object.defineProperty(es,"KeywordCxt",{enumerable:!0,get:function(){return YbA.KeywordCxt}});var iE=Ji();Object.defineProperty(es,"_",{enumerable:!0,get:function(){return iE._}});Object.defineProperty(es,"str",{enumerable:!0,get:function(){return iE.str}});Object.defineProperty(es,"stringify",{enumerable:!0,get:function(){return iE.stringify}});Object.defineProperty(es,"nil",{enumerable:!0,get:function(){return iE.nil}});Object.defineProperty(es,"Name",{enumerable:!0,get:function(){return iE.Name}});Object.defineProperty(es,"CodeGen",{enumerable:!0,get:function(){return iE.CodeGen}});var JbA=w5(),I$=a4(),TbA=sR(),l4=y5(),zbA=Ji(),g4=n4(),k5=i4(),xR=Cn(),a$=JX(),HbA=s$(),C$=(t,e)=>new RegExp(t,e);C$.code="new RegExp";var ObA=["removeAdditional","useDefaults","coerceTypes"],PbA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),jbA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},qbA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},c$=200;function VbA(t){var e,A,i,n,o,r,s,a,c,l,I,C,d,B,E,Q,u,v,L,x,y,F,U,T,N;let K=t.strict,H=(e=t.code)===null||e===void 0?void 0:e.optimize,j=H===!0||H===void 0?1:H||0,IA=(i=(A=t.code)===null||A===void 0?void 0:A.regExp)!==null&&i!==void 0?i:C$,lA=(n=t.uriResolver)!==null&&n!==void 0?n:HbA.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:K)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:K)!==null&&a!==void 0?a:!0,strictTypes:(l=(c=t.strictTypes)!==null&&c!==void 0?c:K)!==null&&l!==void 0?l:"log",strictTuples:(C=(I=t.strictTuples)!==null&&I!==void 0?I:K)!==null&&C!==void 0?C:"log",strictRequired:(B=(d=t.strictRequired)!==null&&d!==void 0?d:K)!==null&&B!==void 0?B:!1,code:t.code?Ne(nA({},t.code),{optimize:j,regExp:IA}):{optimize:j,regExp:IA},loopRequired:(E=t.loopRequired)!==null&&E!==void 0?E:c$,loopEnum:(Q=t.loopEnum)!==null&&Q!==void 0?Q:c$,meta:(u=t.meta)!==null&&u!==void 0?u:!0,messages:(v=t.messages)!==null&&v!==void 0?v:!0,inlineRefs:(L=t.inlineRefs)!==null&&L!==void 0?L:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(y=t.addUsedSchema)!==null&&y!==void 0?y:!0,validateSchema:(F=t.validateSchema)!==null&&F!==void 0?F:!0,validateFormats:(U=t.validateFormats)!==null&&U!==void 0?U:!0,unicodeRegExp:(T=t.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(N=t.int32range)!==null&&N!==void 0?N:!0,uriResolver:lA}}var I4=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts=nA(nA({},e),VbA(e));let{es5:A,lines:i}=this.opts.code;this.scope=new zbA.ValueScope({scope:{},prefixes:PbA,es5:A,lines:i}),this.logger=eMA(e.logger);let n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,TbA.getRules)(),l$.call(this,jbA,e,"NOT SUPPORTED"),l$.call(this,qbA,e,"DEPRECATED","warn"),this._metaOpts=$bA.call(this),e.formats&&WbA.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&XbA.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),ZbA.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:A,schemaId:i}=this.opts,n=a$;i==="id"&&(n=nA({},a$),n.id=n.$id,delete n.$id),A&&e&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:e,schemaId:A}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[A]||e:void 0}validate(e,A){let i;if(typeof e=="string"){if(i=this.getSchema(e),!i)throw new Error(`no schema with key or ref "${e}"`)}else i=this.compile(e);let n=i(A);return"$async"in i||(this.errors=i.errors),n}compile(e,A){let i=this._addSchema(e,A);return i.validate||this._compileSchemaEnv(i)}compileAsync(e,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,e,A);function n(l,I){return _n(this,null,function*(){yield o.call(this,l.$schema);let C=this._addSchema(l,I);return C.validate||r.call(this,C)})}function o(l){return _n(this,null,function*(){l&&!this.getSchema(l)&&(yield n.call(this,{$ref:l},!0))})}function r(l){return _n(this,null,function*(){try{return this._compileSchemaEnv(l)}catch(I){if(!(I instanceof I$.default))throw I;return s.call(this,I),yield a.call(this,I.missingSchema),r.call(this,l)}})}function s({missingSchema:l,missingRef:I}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${I} cannot be resolved`)}function a(l){return _n(this,null,function*(){let I=yield c.call(this,l);this.refs[l]||(yield o.call(this,I.$schema)),this.refs[l]||this.addSchema(I,l,A)})}function c(l){return _n(this,null,function*(){let I=this._loading[l];if(I)return I;try{return yield this._loading[l]=i(l)}finally{delete this._loading[l]}})}}addSchema(e,A,i,n=this.opts.validateSchema){if(Array.isArray(e)){for(let r of e)this.addSchema(r,void 0,i,n);return this}let o;if(typeof e=="object"){let{schemaId:r}=this.opts;if(o=e[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return A=(0,g4.normalizeId)(A||o),this._checkUnique(A),this.schemas[A]=this._addSchema(e,i,A,n,!0),this}addMetaSchema(e,A,i=this.opts.validateSchema){return this.addSchema(e,A,!0,i),this}validateSchema(e,A){if(typeof e=="boolean")return!0;let i;if(i=e.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,e);if(!n&&A){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(e){let A;for(;typeof(A=g$.call(this,e))=="string";)e=A;if(A===void 0){let{schemaId:i}=this.opts,n=new l4.SchemaEnv({schema:{},schemaId:i});if(A=l4.resolveSchema.call(this,n,e),!A)return;this.refs[e]=A}return A.validate||this._compileSchemaEnv(A)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let A=g$.call(this,e);return typeof A=="object"&&this._cache.delete(A.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let A=e;this._cache.delete(A);let i=e[this.opts.schemaId];return i&&(i=(0,g4.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let A of e)this.addKeyword(A);return this}addKeyword(e,A){let i;if(typeof e=="string")i=e,typeof A=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=i);else if(typeof e=="object"&&A===void 0){if(A=e,i=A.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(iMA.call(this,i,A),!A)return(0,xR.eachItem)(i,o=>LR.call(this,o)),this;oMA.call(this,A);let n=Ne(nA({},A),{type:(0,k5.getJSONTypes)(A.type),schemaType:(0,k5.getJSONTypes)(A.schemaType)});return(0,xR.eachItem)(i,n.type.length===0?o=>LR.call(this,o,n):o=>n.type.forEach(r=>LR.call(this,o,n,r))),this}getKeyword(e){let A=this.RULES.all[e];return typeof A=="object"?A.definition:!!A}removeKeyword(e){let{RULES:A}=this;delete A.keywords[e],delete A.all[e];for(let i of A.rules){let n=i.rules.findIndex(o=>o.keyword===e);n>=0&&i.rules.splice(n,1)}return this}addFormat(e,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[e]=A,this}errorsText(e=this.errors,{separator:A=", ",dataVar:i="data"}={}){return!e||e.length===0?"No errors":e.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+A+o)}$dataMetaSchema(e,A){let i=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let n of A){let o=n.split("/").slice(1),r=e;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,l=r[s];c&&l&&(r[s]=d$(l))}}return e}_removeAllSchemas(e,A){for(let i in e){let n=e[i];(!A||A.test(i))&&(typeof n=="string"?delete e[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[i]))}}_addSchema(e,A,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof e=="object")r=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(a!==void 0)return a;i=(0,g4.normalizeId)(r||i);let c=g4.getSchemaRefs.call(this,e,i);return a=new l4.SchemaEnv({schema:e,schemaId:s,meta:A,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):l4.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let A=this.opts;this.opts=this._metaOpts;try{l4.compileSchema.call(this,e)}finally{this.opts=A}}};I4.ValidationError=JbA.default;I4.MissingRefError=I$.default;es.default=I4;function l$(t,e,A,i="error"){for(let n in t){let o=n;o in e&&this.logger[i](`${A}: option ${n}. ${t[o]}`)}}function g$(t){return t=(0,g4.normalizeId)(t),this.schemas[t]||this.refs[t]}function ZbA(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function WbA(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function XbA(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let A=t[e];A.keyword||(A.keyword=e),this.addKeyword(A)}}function $bA(){let t=nA({},this.opts);for(let e of ObA)delete t[e];return t}var AMA={log(){},warn(){},error(){}};function eMA(t){if(t===!1)return AMA;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var tMA=/^[a-z_$][a-z0-9_$:-]*$/i;function iMA(t,e){let{RULES:A}=this;if((0,xR.eachItem)(t,i=>{if(A.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!tMA.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function LR(t,e,A){var i;let n=e?.post;if(A&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===A);if(r||(r={type:A,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!e)return;let s={keyword:t,definition:Ne(nA({},e),{type:(0,k5.getJSONTypes)(e.type),schemaType:(0,k5.getJSONTypes)(e.schemaType)})};e.before?nMA.call(this,r,s,e.before):r.rules.push(s),o.all[t]=s,(i=e.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function nMA(t,e,A){let i=t.rules.findIndex(n=>n.keyword===A);i>=0?t.rules.splice(i,0,e):(t.rules.push(e),this.logger.warn(`rule ${A} is not defined`))}function oMA(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=d$(e)),t.validateSchema=this.compile(e,!0))}var rMA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function d$(t){return{anyOf:[t,rMA]}}});var E$=Le(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});var sMA={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};FR.default=sMA});var f$=Le(iC=>{"use strict";Object.defineProperty(iC,"__esModule",{value:!0});iC.callRef=iC.getValidate=void 0;var aMA=a4(),h$=Sc(),ma=Ji(),nE=x0(),Q$=y5(),S5=Cn(),cMA={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:A,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((A==="#"||A==="#/")&&n===c.baseId)return I();let l=Q$.resolveRef.call(a,c,n,A);if(l===void 0)throw new aMA.default(i.opts.uriResolver,n,A);if(l instanceof Q$.SchemaEnv)return C(l);return d(l);function I(){if(o===c)return R5(t,r,o,o.$async);let B=e.scopeValue("root",{ref:c});return R5(t,(0,ma._)`${B}.validate`,c,c.$async)}function C(B){let E=u$(t,B);R5(t,E,B,B.$async)}function d(B){let E=e.scopeValue("schema",s.code.source===!0?{ref:B,code:(0,ma.stringify)(B)}:{ref:B}),Q=e.name("valid"),u=t.subschema({schema:B,dataTypes:[],schemaPath:ma.nil,topSchemaRef:E,errSchemaPath:A},Q);t.mergeEvaluated(u),t.ok(Q)}}};function u$(t,e){let{gen:A}=t;return e.validate?A.scopeValue("validate",{ref:e.validate}):(0,ma._)`${A.scopeValue("wrapper",{ref:e})}.validate`}iC.getValidate=u$;function R5(t,e,A,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?nE.default.this:ma.nil;i?l():I();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let B=n.let("valid");n.try(()=>{n.code((0,ma._)`await ${(0,h$.callValidateCode)(t,e,c)}`),d(e),r||n.assign(B,!0)},E=>{n.if((0,ma._)`!(${E} instanceof ${o.ValidationError})`,()=>n.throw(E)),C(E),r||n.assign(B,!1)}),t.ok(B)}function I(){t.result((0,h$.callValidateCode)(t,e,c),()=>d(e),()=>C(e))}function C(B){let E=(0,ma._)`${B}.errors`;n.assign(nE.default.vErrors,(0,ma._)`${nE.default.vErrors} === null ? ${E} : ${nE.default.vErrors}.concat(${E})`),n.assign(nE.default.errors,(0,ma._)`${nE.default.vErrors}.length`)}function d(B){var E;if(!o.opts.unevaluated)return;let Q=(E=A?.validate)===null||E===void 0?void 0:E.evaluated;if(o.props!==!0)if(Q&&!Q.dynamicProps)Q.props!==void 0&&(o.props=S5.mergeEvaluated.props(n,Q.props,o.props));else{let u=n.var("props",(0,ma._)`${B}.evaluated.props`);o.props=S5.mergeEvaluated.props(n,u,o.props,ma.Name)}if(o.items!==!0)if(Q&&!Q.dynamicItems)Q.items!==void 0&&(o.items=S5.mergeEvaluated.items(n,Q.items,o.items));else{let u=n.var("items",(0,ma._)`${B}.evaluated.items`);o.items=S5.mergeEvaluated.items(n,u,o.items,ma.Name)}}}iC.callRef=R5;iC.default=cMA});var m$=Le(NR=>{"use strict";Object.defineProperty(NR,"__esModule",{value:!0});var lMA=E$(),gMA=f$(),IMA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",lMA.default,gMA.default];NR.default=IMA});var p$=Le(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});var L5=Ji(),C1=L5.operators,x5={maximum:{okStr:"<=",ok:C1.LTE,fail:C1.GT},minimum:{okStr:">=",ok:C1.GTE,fail:C1.LT},exclusiveMaximum:{okStr:"<",ok:C1.LT,fail:C1.GTE},exclusiveMinimum:{okStr:">",ok:C1.GT,fail:C1.LTE}},CMA={message:({keyword:t,schemaCode:e})=>(0,L5.str)`must be ${x5[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,L5._)`{comparison: ${x5[t].okStr}, limit: ${e}}`},dMA={keyword:Object.keys(x5),type:"number",schemaType:"number",$data:!0,error:CMA,code(t){let{keyword:e,data:A,schemaCode:i}=t;t.fail$data((0,L5._)`${A} ${x5[e].fail} ${i} || isNaN(${A})`)}};_R.default=dMA});var w$=Le(GR=>{"use strict";Object.defineProperty(GR,"__esModule",{value:!0});var C4=Ji(),BMA={message:({schemaCode:t})=>(0,C4.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,C4._)`{multipleOf: ${t}}`},EMA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:BMA,code(t){let{gen:e,data:A,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=e.let("res"),s=o?(0,C4._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,C4._)`${r} !== parseInt(${r})`;t.fail$data((0,C4._)`(${i} === 0 || (${r} = ${A}/${i}, ${s}))`)}};GR.default=EMA});var y$=Le(UR=>{"use strict";Object.defineProperty(UR,"__esModule",{value:!0});function D$(t){let e=t.length,A=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(KR,"__esModule",{value:!0});var nC=Ji(),hMA=Cn(),QMA=y$(),uMA={message({keyword:t,schemaCode:e}){let A=t==="maxLength"?"more":"fewer";return(0,nC.str)`must NOT have ${A} than ${e} characters`},params:({schemaCode:t})=>(0,nC._)`{limit: ${t}}`},fMA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:uMA,code(t){let{keyword:e,data:A,schemaCode:i,it:n}=t,o=e==="maxLength"?nC.operators.GT:nC.operators.LT,r=n.opts.unicode===!1?(0,nC._)`${A}.length`:(0,nC._)`${(0,hMA.useFunc)(t.gen,QMA.default)}(${A})`;t.fail$data((0,nC._)`${r} ${o} ${i}`)}};KR.default=fMA});var b$=Le(YR=>{"use strict";Object.defineProperty(YR,"__esModule",{value:!0});var mMA=Sc(),F5=Ji(),pMA={message:({schemaCode:t})=>(0,F5.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,F5._)`{pattern: ${t}}`},wMA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:pMA,code(t){let{data:e,$data:A,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=A?(0,F5._)`(new RegExp(${n}, ${r}))`:(0,mMA.usePattern)(t,i);t.fail$data((0,F5._)`!${s}.test(${e})`)}};YR.default=wMA});var M$=Le(JR=>{"use strict";Object.defineProperty(JR,"__esModule",{value:!0});var d4=Ji(),DMA={message({keyword:t,schemaCode:e}){let A=t==="maxProperties"?"more":"fewer";return(0,d4.str)`must NOT have ${A} than ${e} properties`},params:({schemaCode:t})=>(0,d4._)`{limit: ${t}}`},yMA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:DMA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxProperties"?d4.operators.GT:d4.operators.LT;t.fail$data((0,d4._)`Object.keys(${A}).length ${n} ${i}`)}};JR.default=yMA});var k$=Le(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});var B4=Sc(),E4=Ji(),vMA=Cn(),bMA={message:({params:{missingProperty:t}})=>(0,E4.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,E4._)`{missingProperty: ${t}}`},MMA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:bMA,code(t){let{gen:e,schema:A,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&A.length===0)return;let a=A.length>=s.loopRequired;if(r.allErrors?c():l(),s.strictRequired){let d=t.parentSchema.properties,{definedProperties:B}=t.it;for(let E of A)if(d?.[E]===void 0&&!B.has(E)){let Q=r.schemaEnv.baseId+r.errSchemaPath,u=`required property "${E}" is not defined at "${Q}" (strictRequired)`;(0,vMA.checkStrictMode)(r,u,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(E4.nil,I);else for(let d of A)(0,B4.checkReportMissingProp)(t,d)}function l(){let d=e.let("missing");if(a||o){let B=e.let("valid",!0);t.block$data(B,()=>C(d,B)),t.ok(B)}else e.if((0,B4.checkMissingProp)(t,A,d)),(0,B4.reportMissingProp)(t,d),e.else()}function I(){e.forOf("prop",i,d=>{t.setParams({missingProperty:d}),e.if((0,B4.noPropertyInData)(e,n,d,s.ownProperties),()=>t.error())})}function C(d,B){t.setParams({missingProperty:d}),e.forOf(d,i,()=>{e.assign(B,(0,B4.propertyInData)(e,n,d,s.ownProperties)),e.if((0,E4.not)(B),()=>{t.error(),e.break()})},E4.nil)}}};TR.default=MMA});var S$=Le(zR=>{"use strict";Object.defineProperty(zR,"__esModule",{value:!0});var h4=Ji(),kMA={message({keyword:t,schemaCode:e}){let A=t==="maxItems"?"more":"fewer";return(0,h4.str)`must NOT have ${A} than ${e} items`},params:({schemaCode:t})=>(0,h4._)`{limit: ${t}}`},SMA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:kMA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxItems"?h4.operators.GT:h4.operators.LT;t.fail$data((0,h4._)`${A}.length ${n} ${i}`)}};zR.default=SMA});var N5=Le(HR=>{"use strict";Object.defineProperty(HR,"__esModule",{value:!0});var R$=BR();R$.code='require("ajv/dist/runtime/equal").default';HR.default=R$});var L$=Le(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});var OR=i4(),ts=Ji(),RMA=Cn(),LMA=N5(),xMA={message:({params:{i:t,j:e}})=>(0,ts.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,ts._)`{i: ${t}, j: ${e}}`},FMA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:xMA,code(t){let{gen:e,data:A,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=e.let("valid"),c=o.items?(0,OR.getSchemaTypes)(o.items):[];t.block$data(a,l,(0,ts._)`${r} === false`),t.ok(a);function l(){let B=e.let("i",(0,ts._)`${A}.length`),E=e.let("j");t.setParams({i:B,j:E}),e.assign(a,!0),e.if((0,ts._)`${B} > 1`,()=>(I()?C:d)(B,E))}function I(){return c.length>0&&!c.some(B=>B==="object"||B==="array")}function C(B,E){let Q=e.name("item"),u=(0,OR.checkDataTypes)(c,Q,s.opts.strictNumbers,OR.DataType.Wrong),v=e.const("indices",(0,ts._)`{}`);e.for((0,ts._)`;${B}--;`,()=>{e.let(Q,(0,ts._)`${A}[${B}]`),e.if(u,(0,ts._)`continue`),c.length>1&&e.if((0,ts._)`typeof ${Q} == "string"`,(0,ts._)`${Q} += "_"`),e.if((0,ts._)`typeof ${v}[${Q}] == "number"`,()=>{e.assign(E,(0,ts._)`${v}[${Q}]`),t.error(),e.assign(a,!1).break()}).code((0,ts._)`${v}[${Q}] = ${B}`)})}function d(B,E){let Q=(0,RMA.useFunc)(e,LMA.default),u=e.name("outer");e.label(u).for((0,ts._)`;${B}--;`,()=>e.for((0,ts._)`${E} = ${B}; ${E}--;`,()=>e.if((0,ts._)`${Q}(${A}[${B}], ${A}[${E}])`,()=>{t.error(),e.assign(a,!1).break(u)})))}}};PR.default=FMA});var x$=Le(qR=>{"use strict";Object.defineProperty(qR,"__esModule",{value:!0});var jR=Ji(),NMA=Cn(),_MA=N5(),GMA={message:"must be equal to constant",params:({schemaCode:t})=>(0,jR._)`{allowedValue: ${t}}`},UMA={keyword:"const",$data:!0,error:GMA,code(t){let{gen:e,data:A,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,jR._)`!${(0,NMA.useFunc)(e,_MA.default)}(${A}, ${n})`):t.fail((0,jR._)`${o} !== ${A}`)}};qR.default=UMA});var F$=Le(VR=>{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});var Q4=Ji(),KMA=Cn(),YMA=N5(),JMA={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Q4._)`{allowedValues: ${t}}`},TMA={keyword:"enum",schemaType:"array",$data:!0,error:JMA,code(t){let{gen:e,data:A,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,KMA.useFunc)(e,YMA.default)),l;if(s||i)l=e.let("valid"),t.block$data(l,I);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let d=e.const("vSchema",o);l=(0,Q4.or)(...n.map((B,E)=>C(d,E)))}t.pass(l);function I(){e.assign(l,!1),e.forOf("v",o,d=>e.if((0,Q4._)`${c()}(${A}, ${d})`,()=>e.assign(l,!0).break()))}function C(d,B){let E=n[B];return typeof E=="object"&&E!==null?(0,Q4._)`${c()}(${A}, ${d}[${B}])`:(0,Q4._)`${A} === ${E}`}}};VR.default=TMA});var N$=Le(ZR=>{"use strict";Object.defineProperty(ZR,"__esModule",{value:!0});var zMA=p$(),HMA=w$(),OMA=v$(),PMA=b$(),jMA=M$(),qMA=k$(),VMA=S$(),ZMA=L$(),WMA=x$(),XMA=F$(),$MA=[zMA.default,HMA.default,OMA.default,PMA.default,jMA.default,qMA.default,VMA.default,ZMA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},WMA.default,XMA.default];ZR.default=$MA});var XR=Le(u4=>{"use strict";Object.defineProperty(u4,"__esModule",{value:!0});u4.validateAdditionalItems=void 0;var oC=Ji(),WR=Cn(),AkA={message:({params:{len:t}})=>(0,oC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,oC._)`{limit: ${t}}`},ekA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:AkA,code(t){let{parentSchema:e,it:A}=t,{items:i}=e;if(!Array.isArray(i)){(0,WR.checkStrictMode)(A,'"additionalItems" is ignored when "items" is not an array of schemas');return}_$(t,i)}};function _$(t,e){let{gen:A,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=A.const("len",(0,oC._)`${n}.length`);if(i===!1)t.setParams({len:e.length}),t.pass((0,oC._)`${s} <= ${e.length}`);else if(typeof i=="object"&&!(0,WR.alwaysValidSchema)(r,i)){let c=A.var("valid",(0,oC._)`${s} <= ${e.length}`);A.if((0,oC.not)(c),()=>a(c)),t.ok(c)}function a(c){A.forRange("i",e.length,s,l=>{t.subschema({keyword:o,dataProp:l,dataPropType:WR.Type.Num},c),r.allErrors||A.if((0,oC.not)(c),()=>A.break())})}}u4.validateAdditionalItems=_$;u4.default=ekA});var $R=Le(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});f4.validateTuple=void 0;var G$=Ji(),_5=Cn(),tkA=Sc(),ikA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:A}=t;if(Array.isArray(e))return U$(t,"additionalItems",e);A.items=!0,!(0,_5.alwaysValidSchema)(A,e)&&t.ok((0,tkA.validateArray)(t))}};function U$(t,e,A=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;l(n),s.opts.unevaluated&&A.length&&s.items!==!0&&(s.items=_5.mergeEvaluated.items(i,A.length,s.items));let a=i.name("valid"),c=i.const("len",(0,G$._)`${o}.length`);A.forEach((I,C)=>{(0,_5.alwaysValidSchema)(s,I)||(i.if((0,G$._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function l(I){let{opts:C,errSchemaPath:d}=s,B=A.length,E=B===I.minItems&&(B===I.maxItems||I[e]===!1);if(C.strictTuples&&!E){let Q=`"${r}" is ${B}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0,_5.checkStrictMode)(s,Q,C.strictTuples)}}}f4.validateTuple=U$;f4.default=ikA});var K$=Le(AL=>{"use strict";Object.defineProperty(AL,"__esModule",{value:!0});var nkA=$R(),okA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,nkA.validateTuple)(t,"items")};AL.default=okA});var J$=Le(eL=>{"use strict";Object.defineProperty(eL,"__esModule",{value:!0});var Y$=Ji(),rkA=Cn(),skA=Sc(),akA=XR(),ckA={message:({params:{len:t}})=>(0,Y$.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Y$._)`{limit: ${t}}`},lkA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:ckA,code(t){let{schema:e,parentSchema:A,it:i}=t,{prefixItems:n}=A;i.items=!0,!(0,rkA.alwaysValidSchema)(i,e)&&(n?(0,akA.validateAdditionalItems)(t,n):t.ok((0,skA.validateArray)(t)))}};eL.default=lkA});var T$=Le(tL=>{"use strict";Object.defineProperty(tL,"__esModule",{value:!0});var Lc=Ji(),G5=Cn(),gkA={message:({params:{min:t,max:e}})=>e===void 0?(0,Lc.str)`must contain at least ${t} valid item(s)`:(0,Lc.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Lc._)`{minContains: ${t}}`:(0,Lc._)`{minContains: ${t}, maxContains: ${e}}`},IkA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:gkA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let l=e.const("len",(0,Lc._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,G5.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,G5.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,G5.alwaysValidSchema)(o,A)){let E=(0,Lc._)`${l} >= ${r}`;s!==void 0&&(E=(0,Lc._)`${E} && ${l} <= ${s}`),t.pass(E);return}o.items=!0;let I=e.name("valid");s===void 0&&r===1?d(I,()=>e.if(I,()=>e.break())):r===0?(e.let(I,!0),s!==void 0&&e.if((0,Lc._)`${n}.length > 0`,C)):(e.let(I,!1),C()),t.result(I,()=>t.reset());function C(){let E=e.name("_valid"),Q=e.let("count",0);d(E,()=>e.if(E,()=>B(Q)))}function d(E,Q){e.forRange("i",0,l,u=>{t.subschema({keyword:"contains",dataProp:u,dataPropType:G5.Type.Num,compositeRule:!0},E),Q()})}function B(E){e.code((0,Lc._)`${E}++`),s===void 0?e.if((0,Lc._)`${E} >= ${r}`,()=>e.assign(I,!0).break()):(e.if((0,Lc._)`${E} > ${s}`,()=>e.assign(I,!1).break()),r===1?e.assign(I,!0):e.if((0,Lc._)`${E} >= ${r}`,()=>e.assign(I,!0)))}}};tL.default=IkA});var O$=Le(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});hg.validateSchemaDeps=hg.validatePropertyDeps=hg.error=void 0;var iL=Ji(),CkA=Cn(),m4=Sc();hg.error={message:({params:{property:t,depsCount:e,deps:A}})=>{let i=e===1?"property":"properties";return(0,iL.str)`must have ${i} ${A} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:A,missingProperty:i}})=>(0,iL._)`{property: ${t}, + missingProperty: ${i}, + depsCount: ${e}, + deps: ${A}}`};var dkA={keyword:"dependencies",type:"object",schemaType:"object",error:hg.error,code(t){let[e,A]=BkA(t);z$(t,e),H$(t,A)}};function BkA({schema:t}){let e={},A={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?e:A;n[i]=t[i]}return[e,A]}function z$(t,e=t.schema){let{gen:A,data:i,it:n}=t;if(Object.keys(e).length===0)return;let o=A.let("missing");for(let r in e){let s=e[r];if(s.length===0)continue;let a=(0,m4.propertyInData)(A,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?A.if(a,()=>{for(let c of s)(0,m4.checkReportMissingProp)(t,c)}):(A.if((0,iL._)`${a} && (${(0,m4.checkMissingProp)(t,s,o)})`),(0,m4.reportMissingProp)(t,o),A.else())}}hg.validatePropertyDeps=z$;function H$(t,e=t.schema){let{gen:A,data:i,keyword:n,it:o}=t,r=A.name("valid");for(let s in e)(0,CkA.alwaysValidSchema)(o,e[s])||(A.if((0,m4.propertyInData)(A,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>A.var(r,!0)),t.ok(r))}hg.validateSchemaDeps=H$;hg.default=dkA});var j$=Le(nL=>{"use strict";Object.defineProperty(nL,"__esModule",{value:!0});var P$=Ji(),EkA=Cn(),hkA={message:"property name must be valid",params:({params:t})=>(0,P$._)`{propertyName: ${t.propertyName}}`},QkA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:hkA,code(t){let{gen:e,schema:A,data:i,it:n}=t;if((0,EkA.alwaysValidSchema)(n,A))return;let o=e.name("valid");e.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),e.if((0,P$.not)(o),()=>{t.error(!0),n.allErrors||e.break()})}),t.ok(o)}};nL.default=QkA});var rL=Le(oL=>{"use strict";Object.defineProperty(oL,"__esModule",{value:!0});var U5=Sc(),Cl=Ji(),ukA=x0(),K5=Cn(),fkA={message:"must NOT have additional properties",params:({params:t})=>(0,Cl._)`{additionalProperty: ${t.additionalProperty}}`},mkA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:fkA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,K5.alwaysValidSchema)(r,A))return;let c=(0,U5.allSchemaProperties)(i.properties),l=(0,U5.allSchemaProperties)(i.patternProperties);I(),t.ok((0,Cl._)`${o} === ${ukA.default.errors}`);function I(){e.forIn("key",n,Q=>{!c.length&&!l.length?B(Q):e.if(C(Q),()=>B(Q))})}function C(Q){let u;if(c.length>8){let v=(0,K5.schemaRefOrVal)(r,i.properties,"properties");u=(0,U5.isOwnProperty)(e,v,Q)}else c.length?u=(0,Cl.or)(...c.map(v=>(0,Cl._)`${Q} === ${v}`)):u=Cl.nil;return l.length&&(u=(0,Cl.or)(u,...l.map(v=>(0,Cl._)`${(0,U5.usePattern)(t,v)}.test(${Q})`))),(0,Cl.not)(u)}function d(Q){e.code((0,Cl._)`delete ${n}[${Q}]`)}function B(Q){if(a.removeAdditional==="all"||a.removeAdditional&&A===!1){d(Q);return}if(A===!1){t.setParams({additionalProperty:Q}),t.error(),s||e.break();return}if(typeof A=="object"&&!(0,K5.alwaysValidSchema)(r,A)){let u=e.name("valid");a.removeAdditional==="failing"?(E(Q,u,!1),e.if((0,Cl.not)(u),()=>{t.reset(),d(Q)})):(E(Q,u),s||e.if((0,Cl.not)(u),()=>e.break()))}}function E(Q,u,v){let L={keyword:"additionalProperties",dataProp:Q,dataPropType:K5.Type.Str};v===!1&&Object.assign(L,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(L,u)}}};oL.default=mkA});var Z$=Le(aL=>{"use strict";Object.defineProperty(aL,"__esModule",{value:!0});var pkA=s4(),q$=Sc(),sL=Cn(),V$=rL(),wkA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&V$.default.code(new pkA.KeywordCxt(o,V$.default,"additionalProperties"));let r=(0,q$.allSchemaProperties)(A);for(let I of r)o.definedProperties.add(I);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=sL.mergeEvaluated.props(e,(0,sL.toHash)(r),o.props));let s=r.filter(I=>!(0,sL.alwaysValidSchema)(o,A[I]));if(s.length===0)return;let a=e.name("valid");for(let I of s)c(I)?l(I):(e.if((0,q$.propertyInData)(e,n,I,o.opts.ownProperties)),l(I),o.allErrors||e.else().var(a,!0),e.endIf()),t.it.definedProperties.add(I),t.ok(a);function c(I){return o.opts.useDefaults&&!o.compositeRule&&A[I].default!==void 0}function l(I){t.subschema({keyword:"properties",schemaProp:I,dataProp:I},a)}}};aL.default=wkA});var AAA=Le(cL=>{"use strict";Object.defineProperty(cL,"__esModule",{value:!0});var W$=Sc(),Y5=Ji(),X$=Cn(),$$=Cn(),DkA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,W$.allSchemaProperties)(A),a=s.filter(E=>(0,X$.alwaysValidSchema)(o,A[E]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,l=e.name("valid");o.props!==!0&&!(o.props instanceof Y5.Name)&&(o.props=(0,$$.evaluatedPropsToName)(e,o.props));let{props:I}=o;C();function C(){for(let E of s)c&&d(E),o.allErrors?B(E):(e.var(l,!0),B(E),e.if(l))}function d(E){for(let Q in c)new RegExp(E).test(Q)&&(0,X$.checkStrictMode)(o,`property ${Q} matches pattern ${E} (use allowMatchingProperties)`)}function B(E){e.forIn("key",i,Q=>{e.if((0,Y5._)`${(0,W$.usePattern)(t,E)}.test(${Q})`,()=>{let u=a.includes(E);u||t.subschema({keyword:"patternProperties",schemaProp:E,dataProp:Q,dataPropType:$$.Type.Str},l),o.opts.unevaluated&&I!==!0?e.assign((0,Y5._)`${I}[${Q}]`,!0):!u&&!o.allErrors&&e.if((0,Y5.not)(l),()=>e.break())})})}}};cL.default=DkA});var eAA=Le(lL=>{"use strict";Object.defineProperty(lL,"__esModule",{value:!0});var ykA=Cn(),vkA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:A,it:i}=t;if((0,ykA.alwaysValidSchema)(i,A)){t.fail();return}let n=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};lL.default=vkA});var tAA=Le(gL=>{"use strict";Object.defineProperty(gL,"__esModule",{value:!0});var bkA=Sc(),MkA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:bkA.validateUnion,error:{message:"must match a schema in anyOf"}};gL.default=MkA});var iAA=Le(IL=>{"use strict";Object.defineProperty(IL,"__esModule",{value:!0});var J5=Ji(),kkA=Cn(),SkA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,J5._)`{passingSchemas: ${t.passing}}`},RkA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:SkA,code(t){let{gen:e,schema:A,parentSchema:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=A,r=e.let("valid",!1),s=e.let("passing",null),a=e.name("_valid");t.setParams({passing:s}),e.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((l,I)=>{let C;(0,kkA.alwaysValidSchema)(n,l)?e.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:I,compositeRule:!0},a),I>0&&e.if((0,J5._)`${a} && ${r}`).assign(r,!1).assign(s,(0,J5._)`[${s}, ${I}]`).else(),e.if(a,()=>{e.assign(r,!0),e.assign(s,I),C&&t.mergeEvaluated(C,J5.Name)})})}}};IL.default=RkA});var nAA=Le(CL=>{"use strict";Object.defineProperty(CL,"__esModule",{value:!0});var LkA=Cn(),xkA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:A,it:i}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");let n=e.name("valid");A.forEach((o,r)=>{if((0,LkA.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};CL.default=xkA});var sAA=Le(dL=>{"use strict";Object.defineProperty(dL,"__esModule",{value:!0});var T5=Ji(),rAA=Cn(),FkA={message:({params:t})=>(0,T5.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,T5._)`{failingKeyword: ${t.ifClause}}`},NkA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:FkA,code(t){let{gen:e,parentSchema:A,it:i}=t;A.then===void 0&&A.else===void 0&&(0,rAA.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=oAA(i,"then"),o=oAA(i,"else");if(!n&&!o)return;let r=e.let("valid",!0),s=e.name("_valid");if(a(),t.reset(),n&&o){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,c("then",l),c("else",l))}else n?e.if(s,c("then")):e.if((0,T5.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(l)}function c(l,I){return()=>{let C=t.subschema({keyword:l},s);e.assign(r,s),t.mergeValidEvaluated(C,r),I?e.assign(I,(0,T5._)`${l}`):t.setParams({ifClause:l})}}}};function oAA(t,e){let A=t.schema[e];return A!==void 0&&!(0,rAA.alwaysValidSchema)(t,A)}dL.default=NkA});var aAA=Le(BL=>{"use strict";Object.defineProperty(BL,"__esModule",{value:!0});var _kA=Cn(),GkA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:A}){e.if===void 0&&(0,_kA.checkStrictMode)(A,`"${t}" without "if" is ignored`)}};BL.default=GkA});var cAA=Le(EL=>{"use strict";Object.defineProperty(EL,"__esModule",{value:!0});var UkA=XR(),KkA=K$(),YkA=$R(),JkA=J$(),TkA=T$(),zkA=O$(),HkA=j$(),OkA=rL(),PkA=Z$(),jkA=AAA(),qkA=eAA(),VkA=tAA(),ZkA=iAA(),WkA=nAA(),XkA=sAA(),$kA=aAA();function ASA(t=!1){let e=[qkA.default,VkA.default,ZkA.default,WkA.default,XkA.default,$kA.default,HkA.default,OkA.default,zkA.default,PkA.default,jkA.default];return t?e.push(KkA.default,JkA.default):e.push(UkA.default,YkA.default),e.push(TkA.default),e}EL.default=ASA});var lAA=Le(hL=>{"use strict";Object.defineProperty(hL,"__esModule",{value:!0});var gr=Ji(),eSA={message:({schemaCode:t})=>(0,gr.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,gr._)`{format: ${t}}`},tSA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:eSA,code(t,e){let{gen:A,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:l,self:I}=s;if(!a.validateFormats)return;n?C():d();function C(){let B=A.scopeValue("formats",{ref:I.formats,code:a.code.formats}),E=A.const("fDef",(0,gr._)`${B}[${r}]`),Q=A.let("fType"),u=A.let("format");A.if((0,gr._)`typeof ${E} == "object" && !(${E} instanceof RegExp)`,()=>A.assign(Q,(0,gr._)`${E}.type || "string"`).assign(u,(0,gr._)`${E}.validate`),()=>A.assign(Q,(0,gr._)`"string"`).assign(u,E)),t.fail$data((0,gr.or)(v(),L()));function v(){return a.strictSchema===!1?gr.nil:(0,gr._)`${r} && !${u}`}function L(){let x=l.$async?(0,gr._)`(${E}.async ? await ${u}(${i}) : ${u}(${i}))`:(0,gr._)`${u}(${i})`,y=(0,gr._)`(typeof ${u} == "function" ? ${x} : ${u}.test(${i}))`;return(0,gr._)`${u} && ${u} !== true && ${Q} === ${e} && !${y}`}}function d(){let B=I.formats[o];if(!B){v();return}if(B===!0)return;let[E,Q,u]=L(B);E===e&&t.pass(x());function v(){if(a.strictSchema===!1){I.logger.warn(y());return}throw new Error(y());function y(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function L(y){let F=y instanceof RegExp?(0,gr.regexpCode)(y):a.code.formats?(0,gr._)`${a.code.formats}${(0,gr.getProperty)(o)}`:void 0,U=A.scopeValue("formats",{key:o,ref:y,code:F});return typeof y=="object"&&!(y instanceof RegExp)?[y.type||"string",y.validate,(0,gr._)`${U}.validate`]:["string",y,U]}function x(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!l.$async)throw new Error("async format in sync schema");return(0,gr._)`await ${u}(${i})`}return typeof Q=="function"?(0,gr._)`${u}(${i})`:(0,gr._)`${u}.test(${i})`}}}};hL.default=tSA});var gAA=Le(QL=>{"use strict";Object.defineProperty(QL,"__esModule",{value:!0});var iSA=lAA(),nSA=[iSA.default];QL.default=nSA});var IAA=Le(oE=>{"use strict";Object.defineProperty(oE,"__esModule",{value:!0});oE.contentVocabulary=oE.metadataVocabulary=void 0;oE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];oE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var dAA=Le(uL=>{"use strict";Object.defineProperty(uL,"__esModule",{value:!0});var oSA=m$(),rSA=N$(),sSA=cAA(),aSA=gAA(),CAA=IAA(),cSA=[oSA.default,rSA.default,(0,sSA.default)(),aSA.default,CAA.metadataVocabulary,CAA.contentVocabulary];uL.default=cSA});var EAA=Le(z5=>{"use strict";Object.defineProperty(z5,"__esModule",{value:!0});z5.DiscrError=void 0;var BAA=function(t){return t.Tag="tag",t.Mapping="mapping",t}(BAA||(z5.DiscrError=BAA={}))});var QAA=Le(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});var rE=Ji(),fL=EAA(),hAA=y5(),lSA=a4(),gSA=Cn(),ISA={message:({params:{discrError:t,tagName:e}})=>t===fL.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:A}})=>(0,rE._)`{error: ${t}, tag: ${A}, tagValue: ${e}}`},CSA={keyword:"discriminator",type:"object",schemaType:"object",error:ISA,code(t){let{gen:e,data:A,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=e.let("valid",!1),c=e.const("tag",(0,rE._)`${A}${(0,rE.getProperty)(s)}`);e.if((0,rE._)`typeof ${c} == "string"`,()=>l(),()=>t.error(!1,{discrError:fL.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function l(){let d=C();e.if(!1);for(let B in d)e.elseIf((0,rE._)`${c} === ${B}`),e.assign(a,I(d[B]));e.else(),t.error(!1,{discrError:fL.DiscrError.Mapping,tag:c,tagName:s}),e.endIf()}function I(d){let B=e.name("valid"),E=t.subschema({keyword:"oneOf",schemaProp:d},B);return t.mergeEvaluated(E,rE.Name),B}function C(){var d;let B={},E=u(n),Q=!0;for(let x=0;x{dSA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var mAA=Le((Ro,pL)=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.MissingRefError=Ro.ValidationError=Ro.CodeGen=Ro.Name=Ro.nil=Ro.stringify=Ro.str=Ro._=Ro.KeywordCxt=Ro.Ajv=void 0;var BSA=B$(),ESA=dAA(),hSA=QAA(),fAA=uAA(),QSA=["/properties"],H5="http://json-schema.org/draft-07/schema",sE=class extends BSA.default{_addVocabularies(){super._addVocabularies(),ESA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(hSA.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(fAA,QSA):fAA;this.addMetaSchema(e,H5,!1),this.refs["http://json-schema.org/schema"]=H5}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(H5)?H5:void 0)}};Ro.Ajv=sE;pL.exports=Ro=sE;pL.exports.Ajv=sE;Object.defineProperty(Ro,"__esModule",{value:!0});Ro.default=sE;var uSA=s4();Object.defineProperty(Ro,"KeywordCxt",{enumerable:!0,get:function(){return uSA.KeywordCxt}});var aE=Ji();Object.defineProperty(Ro,"_",{enumerable:!0,get:function(){return aE._}});Object.defineProperty(Ro,"str",{enumerable:!0,get:function(){return aE.str}});Object.defineProperty(Ro,"stringify",{enumerable:!0,get:function(){return aE.stringify}});Object.defineProperty(Ro,"nil",{enumerable:!0,get:function(){return aE.nil}});Object.defineProperty(Ro,"Name",{enumerable:!0,get:function(){return aE.Name}});Object.defineProperty(Ro,"CodeGen",{enumerable:!0,get:function(){return aE.CodeGen}});var fSA=w5();Object.defineProperty(Ro,"ValidationError",{enumerable:!0,get:function(){return fSA.default}});var mSA=a4();Object.defineProperty(Ro,"MissingRefError",{enumerable:!0,get:function(){return mSA.default}})});var pAA=Le(O5=>{"use strict";(function(t){"use strict";function e(M){return M!==null?Object.prototype.toString.call(M)==="[object Array]":!1}function A(M){return M!==null?Object.prototype.toString.call(M)==="[object Object]":!1}function i(M,G){if(M===G)return!0;var Y=Object.prototype.toString.call(M);if(Y!==Object.prototype.toString.call(G))return!1;if(e(M)===!0){if(M.length!==G.length)return!1;for(var AA=0;AA",9:"Array"},L="EOF",x="UnquotedIdentifier",y="QuotedIdentifier",F="Rbracket",U="Rparen",T="Comma",N="Colon",K="Rbrace",H="Number",j="Current",IA="Expref",lA="Pipe",uA="Or",p="And",V="EQ",cA="GT",aA="LT",jA="GTE",VA="LTE",ce="NE",EA="Flatten",sA="Star",TA="Filter",Ke="Dot",Re="Not",hA="Lbrace",eA="Lbracket",RA="Lparen",oA="Literal",ne={".":Ke,"*":sA,",":T,":":N,"{":hA,"}":K,"]":F,"(":RA,")":U,"@":j},h={"<":!0,">":!0,"=":!0,"!":!0},f={" ":!0," ":!0,"\n":!0};function w(M){return M>="a"&&M<="z"||M>="A"&&M<="Z"||M==="_"}function D(M){return M>="0"&&M<="9"||M==="-"}function O(M){return M>="a"&&M<="z"||M>="A"&&M<="Z"||M>="0"&&M<="9"||M==="_"}function Z(){}Z.prototype={tokenize:function(M){var G=[];this._current=0;for(var Y,AA,dA;this._current")return M[this._current]==="="?(this._current++,{type:jA,value:">=",start:G}):{type:cA,value:">",start:G};if(Y==="="&&M[this._current]==="=")return this._current++,{type:V,value:"==",start:G}},_consumeLiteral:function(M){this._current++;for(var G=this._current,Y=M.length,AA;M[this._current]!=="`"&&this._current=0)return!0;if(Y.indexOf(M)>=0)return!0;if(AA.indexOf(M[0])>=0)try{return JSON.parse(M),!0}catch{return!1}else return!1}};var q={};q[L]=0,q[x]=0,q[y]=0,q[F]=0,q[U]=0,q[T]=0,q[K]=0,q[H]=0,q[j]=0,q[IA]=0,q[lA]=1,q[uA]=2,q[p]=3,q[V]=5,q[cA]=5,q[aA]=5,q[jA]=5,q[VA]=5,q[ce]=5,q[EA]=9,q[sA]=20,q[TA]=21,q[Ke]=40,q[Re]=45,q[hA]=50,q[eA]=55,q[RA]=60;function CA(){}CA.prototype={parse:function(M){this._loadTokens(M),this.index=0;var G=this.expression(0);if(this._lookahead(0)!==L){var Y=this._lookaheadToken(0),AA=new Error("Unexpected token type: "+Y.type+", value: "+Y.value);throw AA.name="ParserError",AA}return G},_loadTokens:function(M){var G=new Z,Y=G.tokenize(M);Y.push({type:L,value:"",start:M.length}),this.tokens=Y},expression:function(M){var G=this._lookaheadToken(0);this._advance();for(var Y=this.nud(G),AA=this._lookahead(0);M=0)return this.expression(M);if(G===eA)return this._match(eA),this._parseMultiselectList();if(G===hA)return this._match(hA),this._parseMultiselectHash()},_parseProjectionRHS:function(M){var G;if(q[this._lookahead(0)]<10)G={type:"Identity"};else if(this._lookahead(0)===eA)G=this.expression(M);else if(this._lookahead(0)===TA)G=this.expression(M);else if(this._lookahead(0)===Ke)this._match(Ke),G=this._parseDotRHS(M);else{var Y=this._lookaheadToken(0),AA=new Error("Sytanx error, unexpected token: "+Y.value+"("+Y.type+")");throw AA.name="ParserError",AA}return G},_parseMultiselectList:function(){for(var M=[];this._lookahead(0)!==F;){var G=this.expression(0);if(M.push(G),this._lookahead(0)===T&&(this._match(T),this._lookahead(0)===F))throw new Error("Unexpected token Rbracket")}return this._match(F),{type:"MultiSelectList",children:M}},_parseMultiselectHash:function(){for(var M=[],G=[x,y],Y,AA,dA,WA;;){if(Y=this._lookaheadToken(0),G.indexOf(Y.type)<0)throw new Error("Expecting an identifier token, got: "+Y.type);if(AA=Y.value,this._advance(),this._match(N),dA=this.expression(0),WA={type:"KeyValuePair",name:AA,value:dA},M.push(WA),this._lookahead(0)===T)this._match(T);else if(this._lookahead(0)===K){this._match(K);break}}return{type:"MultiSelectHash",children:M}}};function kA(M){this.runtime=M}kA.prototype={search:function(M,G){return this.visit(M,G)},visit:function(M,G){var Y,AA,dA,WA,Qe,yA,DA,We,be,qA;switch(M.type){case"Field":return G!==null&&A(G)?(yA=G[M.name],yA===void 0?null:yA):null;case"Subexpression":for(dA=this.visit(M.children[0],G),qA=1;qA0)for(qA=Hi;qACi;qA+=Zi)dA.push(G[qA]);return dA;case"Projection":var Qi=this.visit(M.children[0],G);if(!e(Qi))return null;for(be=[],qA=0;qAQe;break;case jA:dA=WA>=Qe;break;case aA:dA=WA=M&&(G=Y<0?M-1:M),G}};function KA(M){this._interpreter=M,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[Q]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[l,I]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[l]},{types:[l]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[l,I,C]}]},map:{_func:this._functionMap,_signature:[{types:[B]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[Q,u]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[B]}]},sum:{_func:this._functionSum,_signature:[{types:[Q]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[l]},{types:[l]}]},min:{_func:this._functionMin,_signature:[{types:[Q,u]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[B]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[u,Q]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[B]}]},join:{_func:this._functionJoin,_signature:[{types:[l]},{types:[u]}]},reverse:{_func:this._functionReverse,_signature:[{types:[l,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}KA.prototype={callFunction:function(M,G){var Y=this.functionTable[M];if(Y===void 0)throw new Error("Unknown function: "+M+"()");return this._validateArgs(M,G,Y._signature),Y._func.call(this,G)},_validateArgs:function(M,G,Y){var AA;if(Y[Y.length-1].variadic){if(G.length=0;dA--)AA+=Y[dA];return AA}else{var WA=M[0].slice(0);return WA.reverse(),WA}},_functionAbs:function(M){return Math.abs(M[0])},_functionCeil:function(M){return Math.ceil(M[0])},_functionAvg:function(M){for(var G=0,Y=M[0],AA=0;AA=0},_functionFloor:function(M){return Math.floor(M[0])},_functionLength:function(M){return A(M[0])?Object.keys(M[0]).length:M[0].length},_functionMap:function(M){for(var G=[],Y=this._interpreter,AA=M[0],dA=M[1],WA=0;WA0){var G=this._getTypeName(M[0][0]);if(G===a)return Math.max.apply(Math,M[0]);for(var Y=M[0],AA=Y[0],dA=1;dA0){var G=this._getTypeName(M[0][0]);if(G===a)return Math.min.apply(Math,M[0]);for(var Y=M[0],AA=Y[0],dA=1;dAIt?1:qAdA&&(dA=Qe,WA=Y[yA]);return WA},_functionMinBy:function(M){for(var G=M[1],Y=M[0],AA=this.createKeyFunction(G,[a,l]),dA=1/0,WA,Qe,yA=0;yA"u"?O5.jmespath={}:O5)});function k7(t,e){return Object.is(t,e)}var yr=null,Sf=!1,S7=1,js=Symbol("SIGNAL");function vi(t){let e=yr;return yr=t,e}function R7(){return yr}var id={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Nh(t){if(Sf)throw new Error("");if(yr===null)return;yr.consumerOnSignalRead(t);let e=yr.nextProducerIndex++;if(Nf(yr),et.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function xf(t){Nf(t);for(let e=0;e0}function Nf(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function xU(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function FU(t){return t.producerNode!==void 0}function _f(t,e){let A=Object.create(ggA);A.computation=t,e!==void 0&&(A.equal=e);let i=()=>{if(L7(A),Nh(A),A.value===Rf)throw A.error;return A.value};return i[js]=A,i}var v7=Symbol("UNSET"),b7=Symbol("COMPUTING"),Rf=Symbol("ERRORED"),ggA=Ne(nA({},id),{value:v7,dirty:!0,error:null,equal:k7,kind:"computed",producerMustRecompute(t){return t.value===v7||t.value===b7},producerRecomputeValue(t){if(t.value===b7)throw new Error("Detected cycle in computations.");let e=t.value;t.value=b7;let A=_h(t),i,n=!1;try{i=t.computation(),vi(null),n=e!==v7&&e!==Rf&&i!==Rf&&t.equal(e,i)}catch(o){i=Rf,t.error=o}finally{Lf(t,A)}if(n){t.value=e;return}t.value=i,t.version++}});function IgA(){throw new Error}var NU=IgA;function _U(t){NU(t)}function N7(t){NU=t}var CgA=null;function _7(t,e){let A=Object.create(Gf);A.value=t,e!==void 0&&(A.equal=e);let i=()=>(Nh(A),A.value);return i[js]=A,i}function Uh(t,e){F7()||_U(t),t.equal(t.value,e)||(t.value=e,dgA(t))}function G7(t,e){F7()||_U(t),Uh(t,e(t.value))}var Gf=Ne(nA({},id),{equal:k7,value:void 0,kind:"signal"});function dgA(t){t.version++,RU(),x7(t),CgA?.()}function U7(t){let e=vi(null);try{return t()}finally{vi(e)}}var K7;function Kh(){return K7}function Vg(t){let e=K7;return K7=t,e}var Uf=Symbol("NotFound");function Lt(t){return typeof t=="function"}function nd(t){let A=t(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var Kf=nd(t=>function(A){t(this),this.message=A?`${A.length} errors occurred during unsubscription: +${A.map((i,n)=>`${n+1}) ${i.toString()}`).join(` + `)}`:"",this.name="UnsubscriptionError",this.errors=A});function W1(t,e){if(t){let A=t.indexOf(e);0<=A&&t.splice(A,1)}}var _t=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;let{_parentage:A}=this;if(A)if(this._parentage=null,Array.isArray(A))for(let o of A)o.remove(this);else A.remove(this);let{initialTeardown:i}=this;if(Lt(i))try{i()}catch(o){e=o instanceof Kf?o.errors:[o]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let o of n)try{GU(o)}catch(r){e=e??[],r instanceof Kf?e=[...e,...r.errors]:e.push(r)}}if(e)throw new Kf(e)}}add(e){var A;if(e&&e!==this)if(this.closed)GU(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(e)}}_hasParent(e){let{_parentage:A}=this;return A===e||Array.isArray(A)&&A.includes(e)}_addParent(e){let{_parentage:A}=this;this._parentage=Array.isArray(A)?(A.push(e),A):A?[A,e]:e}_removeParent(e){let{_parentage:A}=this;A===e?this._parentage=null:Array.isArray(A)&&W1(A,e)}remove(e){let{_finalizers:A}=this;A&&W1(A,e),e instanceof t&&e._removeParent(this)}};_t.EMPTY=(()=>{let t=new _t;return t.closed=!0,t})();var Y7=_t.EMPTY;function Yf(t){return t instanceof _t||t&&"closed"in t&&Lt(t.remove)&&Lt(t.add)&&Lt(t.unsubscribe)}function GU(t){Lt(t)?t():t.unsubscribe()}var jc={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var od={setTimeout(t,e,...A){let{delegate:i}=od;return i?.setTimeout?i.setTimeout(t,e,...A):setTimeout(t,e,...A)},clearTimeout(t){let{delegate:e}=od;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Jf(t){od.setTimeout(()=>{let{onUnhandledError:e}=jc;if(e)e(t);else throw t})}function Yh(){}var UU=J7("C",void 0,void 0);function KU(t){return J7("E",void 0,t)}function YU(t){return J7("N",t,void 0)}function J7(t,e,A){return{kind:t,value:e,error:A}}var X1=null;function rd(t){if(jc.useDeprecatedSynchronousErrorHandling){let e=!X1;if(e&&(X1={errorThrown:!1,error:null}),t(),e){let{errorThrown:A,error:i}=X1;if(X1=null,A)throw i}}else t()}function JU(t){jc.useDeprecatedSynchronousErrorHandling&&X1&&(X1.errorThrown=!0,X1.error=t)}var Zg=class extends _t{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,Yf(e)&&e.add(this)):this.destination=fgA}static create(e,A,i){return new Wg(e,A,i)}next(e){this.isStopped?z7(YU(e),this):this._next(e)}error(e){this.isStopped?z7(KU(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?z7(UU,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},QgA=Function.prototype.bind;function T7(t,e){return QgA.call(t,e)}var H7=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:A}=this;if(A.next)try{A.next(e)}catch(i){Tf(i)}}error(e){let{partialObserver:A}=this;if(A.error)try{A.error(e)}catch(i){Tf(i)}else Tf(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(A){Tf(A)}}},Wg=class extends Zg{constructor(e,A,i){super();let n;if(Lt(e)||!e)n={next:e??void 0,error:A??void 0,complete:i??void 0};else{let o;this&&jc.useDeprecatedNextContext?(o=Object.create(e),o.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&T7(e.next,o),error:e.error&&T7(e.error,o),complete:e.complete&&T7(e.complete,o)}):n=e}this.destination=new H7(n)}};function Tf(t){jc.useDeprecatedSynchronousErrorHandling?JU(t):Jf(t)}function ugA(t){throw t}function z7(t,e){let{onStoppedNotification:A}=jc;A&&od.setTimeout(()=>A(t,e))}var fgA={closed:!0,next:Yh,error:ugA,complete:Yh};var sd=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Rs(t){return t}function O7(...t){return P7(t)}function P7(t){return t.length===0?Rs:t.length===1?t[0]:function(A){return t.reduce((i,n)=>n(i),A)}}var Ze=(()=>{class t{constructor(A){A&&(this._subscribe=A)}lift(A){let i=new t;return i.source=this,i.operator=A,i}subscribe(A,i,n){let o=pgA(A)?A:new Wg(A,i,n);return rd(()=>{let{operator:r,source:s}=this;o.add(r?r.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(A){try{return this._subscribe(A)}catch(i){A.error(i)}}forEach(A,i){return i=TU(i),new i((n,o)=>{let r=new Wg({next:s=>{try{A(s)}catch(a){o(a),r.unsubscribe()}},error:o,complete:n});this.subscribe(r)})}_subscribe(A){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(A)}[sd](){return this}pipe(...A){return P7(A)(this)}toPromise(A){return A=TU(A),new A((i,n)=>{let o;this.subscribe(r=>o=r,r=>n(r),()=>i(o))})}}return t.create=e=>new t(e),t})();function TU(t){var e;return(e=t??jc.Promise)!==null&&e!==void 0?e:Promise}function mgA(t){return t&&Lt(t.next)&&Lt(t.error)&&Lt(t.complete)}function pgA(t){return t&&t instanceof Zg||mgA(t)&&Yf(t)}function j7(t){return Lt(t?.lift)}function qt(t){return e=>{if(j7(e))return e.lift(function(A){try{return t(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function zt(t,e,A,i,n){return new q7(t,e,A,i,n)}var q7=class extends Zg{constructor(e,A,i,n,o,r){super(e),this.onFinalize=o,this.shouldUnsubscribe=r,this._next=A?function(s){try{A(s)}catch(a){e.error(a)}}:super._next,this._error=n?function(s){try{n(s)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){e.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:A}=this;super.unsubscribe(),!A&&((e=this.onFinalize)===null||e===void 0||e.call(this))}}};function ad(){return qt((t,e)=>{let A=null;t._refCount++;let i=zt(e,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount){A=null;return}let n=t._connection,o=A;A=null,n&&(!o||n===o)&&n.unsubscribe(),e.unsubscribe()});t.subscribe(i),i.closed||(A=t.connect())})}var r2=class extends Ze{constructor(e,A){super(),this.source=e,this.subjectFactory=A,this._subject=null,this._refCount=0,this._connection=null,j7(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){let e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new _t;let A=this.getSubject();e.add(this.source.subscribe(zt(A,void 0,()=>{this._teardown(),A.complete()},i=>{this._teardown(),A.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=_t.EMPTY)}return e}refCount(){return ad()(this)}};var zU=nd(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var HA=(()=>{class t extends Ze{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(A){let i=new cd(this,this);return i.operator=A,i}_throwIfClosed(){if(this.closed)throw new zU}next(A){rd(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(A)}})}error(A){rd(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=A;let{observers:i}=this;for(;i.length;)i.shift().error(A)}})}complete(){rd(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:A}=this;for(;A.length;)A.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0}_trySubscribe(A){return this._throwIfClosed(),super._trySubscribe(A)}_subscribe(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)}_innerSubscribe(A){let{hasError:i,isStopped:n,observers:o}=this;return i||n?Y7:(this.currentObservers=null,o.push(A),new _t(()=>{this.currentObservers=null,W1(o,A)}))}_checkFinalizedStatuses(A){let{hasError:i,thrownError:n,isStopped:o}=this;i?A.error(n):o&&A.complete()}asObservable(){let A=new Ze;return A.source=this,A}}return t.create=(e,A)=>new cd(e,A),t})(),cd=class extends HA{constructor(e,A){super(),this.destination=e,this.source=A}next(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.next)===null||i===void 0||i.call(A,e)}error(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.error)===null||i===void 0||i.call(A,e)}complete(){var e,A;(A=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||A===void 0||A.call(e)}_subscribe(e){var A,i;return(i=(A=this.source)===null||A===void 0?void 0:A.subscribe(e))!==null&&i!==void 0?i:Y7}};var li=class extends HA{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){let A=super._subscribe(e);return!A.closed&&e.next(this._value),A}getValue(){let{hasError:e,thrownError:A,_value:i}=this;if(e)throw A;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}};var Jh={now(){return(Jh.delegate||Date).now()},delegate:void 0};var qc=class extends HA{constructor(e=1/0,A=1/0,i=Jh){super(),this._bufferSize=e,this._windowTime=A,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=A===1/0,this._bufferSize=Math.max(1,e),this._windowTime=Math.max(1,A)}next(e){let{isStopped:A,_buffer:i,_infiniteTimeWindow:n,_timestampProvider:o,_windowTime:r}=this;A||(i.push(e),!n&&i.push(o.now()+r)),this._trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this._trimBuffer();let A=this._innerSubscribe(e),{_infiniteTimeWindow:i,_buffer:n}=this,o=n.slice();for(let r=0;rt.complete());function Pf(t){return t&&Lt(t.schedule)}function V7(t){return t[t.length-1]}function jf(t){return Lt(V7(t))?t.pop():void 0}function Kl(t){return Pf(V7(t))?t.pop():void 0}function OU(t,e){return typeof V7(t)=="number"?t.pop():e}function jU(t,e,A,i){function n(o){return o instanceof A?o:new A(function(r){r(o)})}return new(A||(A=Promise))(function(o,r){function s(l){try{c(i.next(l))}catch(I){r(I)}}function a(l){try{c(i.throw(l))}catch(I){r(I)}}function c(l){l.done?o(l.value):n(l.value).then(s,a)}c((i=i.apply(t,e||[])).next())})}function PU(t){var e=typeof Symbol=="function"&&Symbol.iterator,A=e&&t[e],i=0;if(A)return A.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function $1(t){return this instanceof $1?(this.v=t,this):new $1(t)}function qU(t,e,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(t,e||[]),n,o=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(d){return function(B){return Promise.resolve(B).then(d,I)}}function s(d,B){i[d]&&(n[d]=function(E){return new Promise(function(Q,u){o.push([d,E,Q,u])>1||a(d,E)})},B&&(n[d]=B(n[d])))}function a(d,B){try{c(i[d](B))}catch(E){C(o[0][3],E)}}function c(d){d.value instanceof $1?Promise.resolve(d.value.v).then(l,I):C(o[0][2],d)}function l(d){a("next",d)}function I(d){a("throw",d)}function C(d,B){d(B),o.shift(),o.length&&a(o[0][0],o[0][1])}}function VU(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],A;return e?e.call(t):(t=typeof PU=="function"?PU(t):t[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(o){A[o]=t[o]&&function(r){return new Promise(function(s,a){r=t[o](r),n(s,a,r.done,r.value)})}}function n(o,r,s,a){Promise.resolve(a).then(function(c){o({value:c,done:s})},r)}}var gd=t=>t&&typeof t.length=="number"&&typeof t!="function";function qf(t){return Lt(t?.then)}function Vf(t){return Lt(t[sd])}function Zf(t){return Symbol.asyncIterator&&Lt(t?.[Symbol.asyncIterator])}function Wf(t){return new TypeError(`You provided ${t!==null&&typeof t=="object"?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function wgA(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Xf=wgA();function $f(t){return Lt(t?.[Xf])}function Am(t){return qU(this,arguments,function*(){let A=t.getReader();try{for(;;){let{value:i,done:n}=yield $1(A.read());if(n)return yield $1(void 0);yield yield $1(i)}}finally{A.releaseLock()}})}function em(t){return Lt(t?.getReader)}function Gn(t){if(t instanceof Ze)return t;if(t!=null){if(Vf(t))return DgA(t);if(gd(t))return ygA(t);if(qf(t))return vgA(t);if(Zf(t))return ZU(t);if($f(t))return bgA(t);if(em(t))return MgA(t)}throw Wf(t)}function DgA(t){return new Ze(e=>{let A=t[sd]();if(Lt(A.subscribe))return A.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ygA(t){return new Ze(e=>{for(let A=0;A{t.then(A=>{e.closed||(e.next(A),e.complete())},A=>e.error(A)).then(null,Jf)})}function bgA(t){return new Ze(e=>{for(let A of t)if(e.next(A),e.closed)return;e.complete()})}function ZU(t){return new Ze(e=>{kgA(t,e).catch(A=>e.error(A))})}function MgA(t){return ZU(Am(t))}function kgA(t,e){var A,i,n,o;return jU(this,void 0,void 0,function*(){try{for(A=VU(t);i=yield A.next(),!i.done;){let r=i.value;if(e.next(r),e.closed)return}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=A.return)&&(yield o.call(A))}finally{if(n)throw n.error}}e.complete()})}function qs(t,e,A,i=0,n=!1){let o=e.schedule(function(){A(),n?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!n)return o}function tm(t,e=0){return qt((A,i)=>{A.subscribe(zt(i,n=>qs(i,t,()=>i.next(n),e),()=>qs(i,t,()=>i.complete(),e),n=>qs(i,t,()=>i.error(n),e)))})}function im(t,e=0){return qt((A,i)=>{i.add(t.schedule(()=>A.subscribe(i),e))})}function WU(t,e){return Gn(t).pipe(im(e),tm(e))}function XU(t,e){return Gn(t).pipe(im(e),tm(e))}function $U(t,e){return new Ze(A=>{let i=0;return e.schedule(function(){i===t.length?A.complete():(A.next(t[i++]),A.closed||this.schedule())})})}function AK(t,e){return new Ze(A=>{let i;return qs(A,e,()=>{i=t[Xf](),qs(A,e,()=>{let n,o;try{({value:n,done:o}=i.next())}catch(r){A.error(r);return}o?A.complete():A.next(n)},0,!0)}),()=>Lt(i?.return)&&i.return()})}function nm(t,e){if(!t)throw new Error("Iterable cannot be null");return new Ze(A=>{qs(A,e,()=>{let i=t[Symbol.asyncIterator]();qs(A,e,()=>{i.next().then(n=>{n.done?A.complete():A.next(n.value)})},0,!0)})})}function eK(t,e){return nm(Am(t),e)}function tK(t,e){if(t!=null){if(Vf(t))return WU(t,e);if(gd(t))return $U(t,e);if(qf(t))return XU(t,e);if(Zf(t))return nm(t,e);if($f(t))return AK(t,e);if(em(t))return eK(t,e)}throw Wf(t)}function On(t,e){return e?tK(t,e):Gn(t)}function ve(...t){let e=Kl(t);return On(t,e)}function s2(t,e){let A=Lt(t)?t:()=>t,i=n=>n.error(A());return new Ze(e?n=>e.schedule(i,0,n):i)}function a2(t){return!!t&&(t instanceof Ze||Lt(t.lift)&&Lt(t.subscribe))}var Xg=nd(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function iK(t){return t instanceof Date&&!isNaN(t)}function Je(t,e){return qt((A,i)=>{let n=0;A.subscribe(zt(i,o=>{i.next(t.call(e,o,n++))}))})}var{isArray:SgA}=Array;function RgA(t,e){return SgA(e)?t(...e):t(e)}function Id(t){return Je(e=>RgA(t,e))}var{isArray:LgA}=Array,{getPrototypeOf:xgA,prototype:FgA,keys:NgA}=Object;function om(t){if(t.length===1){let e=t[0];if(LgA(e))return{args:e,keys:null};if(_gA(e)){let A=NgA(e);return{args:A.map(i=>e[i]),keys:A}}}return{args:t,keys:null}}function _gA(t){return t&&typeof t=="object"&&xgA(t)===FgA}function rm(t,e){return t.reduce((A,i,n)=>(A[i]=e[n],A),{})}function Ls(...t){let e=Kl(t),A=jf(t),{args:i,keys:n}=om(t);if(i.length===0)return On([],e);let o=new Ze(GgA(i,e,n?r=>rm(n,r):Rs));return A?o.pipe(Id(A)):o}function GgA(t,e,A=Rs){return i=>{nK(e,()=>{let{length:n}=t,o=new Array(n),r=n,s=n;for(let a=0;a{let c=On(t[a],e),l=!1;c.subscribe(zt(i,I=>{o[a]=I,l||(l=!0,s--),s||i.next(A(o.slice()))},()=>{--r||i.complete()}))},i)},i)}}function nK(t,e,A){t?qs(A,t,e):e()}function oK(t,e,A,i,n,o,r,s){let a=[],c=0,l=0,I=!1,C=()=>{I&&!a.length&&!c&&e.complete()},d=E=>c{o&&e.next(E),c++;let Q=!1;Gn(A(E,l++)).subscribe(zt(e,u=>{n?.(u),o?d(u):e.next(u)},()=>{Q=!0},void 0,()=>{if(Q)try{for(c--;a.length&&cB(u)):B(u)}C()}catch(u){e.error(u)}}))};return t.subscribe(zt(e,d,()=>{I=!0,C()})),()=>{s?.()}}function qo(t,e,A=1/0){return Lt(e)?qo((i,n)=>Je((o,r)=>e(i,o,n,r))(Gn(t(i,n))),A):(typeof e=="number"&&(A=e),qt((i,n)=>oK(i,n,t,A)))}function c2(t=1/0){return qo(Rs,t)}function rK(){return c2(1)}function l2(...t){return rK()(On(t,Kl(t)))}function Yl(t){return new Ze(e=>{Gn(t()).subscribe(e)})}function Hh(...t){let e=jf(t),{args:A,keys:i}=om(t),n=new Ze(o=>{let{length:r}=A;if(!r){o.complete();return}let s=new Array(r),a=r,c=r;for(let l=0;l{I||(I=!0,c--),s[l]=C},()=>a--,void 0,()=>{(!a||!I)&&(c||o.next(i?rm(i,s):s),o.complete())}))}});return e?n.pipe(Id(e)):n}var UgA=["addListener","removeListener"],KgA=["addEventListener","removeEventListener"],YgA=["on","off"];function Oh(t,e,A,i){if(Lt(A)&&(i=A,A=void 0),i)return Oh(t,e,A).pipe(Id(i));let[n,o]=zgA(t)?KgA.map(r=>s=>t[r](e,s,A)):JgA(t)?UgA.map(sK(t,e)):TgA(t)?YgA.map(sK(t,e)):[];if(!n&&gd(t))return qo(r=>Oh(r,e,A))(Gn(t));if(!n)throw new TypeError("Invalid event target");return new Ze(r=>{let s=(...a)=>r.next(1o(s)})}function sK(t,e){return A=>i=>t[A](e,i)}function JgA(t){return Lt(t.addListener)&&Lt(t.removeListener)}function TgA(t){return Lt(t.on)&&Lt(t.off)}function zgA(t){return Lt(t.addEventListener)&&Lt(t.removeEventListener)}function AI(t=0,e,A=HU){let i=-1;return e!=null&&(Pf(e)?A=e:i=e),new Ze(n=>{let o=iK(t)?+t-A.now():t;o<0&&(o=0);let r=0;return A.schedule(function(){n.closed||(n.next(r++),0<=i?this.schedule(void 0,i):n.complete())},o)})}function ho(...t){let e=Kl(t),A=OU(t,1/0),i=t;return i.length?i.length===1?Gn(i[0]):c2(A)(On(i,e)):Ar}function pt(t,e){return qt((A,i)=>{let n=0;A.subscribe(zt(i,o=>t.call(e,o,n++)&&i.next(o)))})}function aK(t){return qt((e,A)=>{let i=!1,n=null,o=null,r=!1,s=()=>{if(o?.unsubscribe(),o=null,i){i=!1;let c=n;n=null,A.next(c)}r&&A.complete()},a=()=>{o=null,r&&A.complete()};e.subscribe(zt(A,c=>{i=!0,n=c,o||Gn(t(c)).subscribe(o=zt(A,s,a))},()=>{r=!0,(!i||!o||o.closed)&&A.complete()}))})}function Cd(t,e=zh){return aK(()=>AI(t,e))}function dr(t){return qt((e,A)=>{let i=null,n=!1,o;i=e.subscribe(zt(A,void 0,void 0,r=>{o=Gn(t(r,dr(t)(e))),i?(i.unsubscribe(),i=null,o.subscribe(A)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(A))})}function cK(t,e,A,i,n){return(o,r)=>{let s=A,a=e,c=0;o.subscribe(zt(r,l=>{let I=c++;a=s?t(a,l,I):(s=!0,l),i&&r.next(a)},n&&(()=>{s&&r.next(a),r.complete()})))}}function Jl(t,e){return Lt(e)?qo(t,e,1):qo(t,1)}function Vc(t,e=zh){return qt((A,i)=>{let n=null,o=null,r=null,s=()=>{if(n){n.unsubscribe(),n=null;let c=o;o=null,i.next(c)}};function a(){let c=r+t,l=e.now();if(l{o=c,r=e.now(),n||(n=e.schedule(a,t),i.add(n))},()=>{s(),i.complete()},void 0,()=>{o=n=null}))})}function g2(t){return qt((e,A)=>{let i=!1;e.subscribe(zt(A,n=>{i=!0,A.next(n)},()=>{i||A.next(t),A.complete()}))})}function Pn(t){return t<=0?()=>Ar:qt((e,A)=>{let i=0;e.subscribe(zt(A,n=>{++i<=t&&(A.next(n),t<=i&&A.complete())}))})}function dd(t){return Je(()=>t)}function Zc(t,e=Rs){return t=t??HgA,qt((A,i)=>{let n,o=!0;A.subscribe(zt(i,r=>{let s=e(r);(o||!t(n,s))&&(o=!1,n=s,i.next(r))}))})}function HgA(t,e){return t===e}function sm(t=OgA){return qt((e,A)=>{let i=!1;e.subscribe(zt(A,n=>{i=!0,A.next(n)},()=>i?A.complete():A.error(t())))})}function OgA(){return new Xg}function Tl(t){return qt((e,A)=>{try{e.subscribe(A)}finally{A.add(t)}})}function zl(t,e){let A=arguments.length>=2;return i=>i.pipe(t?pt((n,o)=>t(n,o,i)):Rs,Pn(1),A?g2(e):sm(()=>new Xg))}function Bd(t){return t<=0?()=>Ar:qt((e,A)=>{let i=[];e.subscribe(zt(A,n=>{i.push(n),t{for(let n of i)A.next(n);A.complete()},void 0,()=>{i=null}))})}function Z7(t,e){let A=arguments.length>=2;return i=>i.pipe(t?pt((n,o)=>t(n,o,i)):Rs,Bd(1),A?g2(e):sm(()=>new Xg))}function am(){return qt((t,e)=>{let A,i=!1;t.subscribe(zt(e,n=>{let o=A;A=n,i&&e.next([o,n]),i=!0}))})}function W7(t,e){return qt(cK(t,e,arguments.length>=2,!0))}function Ph(t={}){let{connector:e=()=>new HA,resetOnError:A=!0,resetOnComplete:i=!0,resetOnRefCountZero:n=!0}=t;return o=>{let r,s,a,c=0,l=!1,I=!1,C=()=>{s?.unsubscribe(),s=void 0},d=()=>{C(),r=a=void 0,l=I=!1},B=()=>{let E=r;d(),E?.unsubscribe()};return qt((E,Q)=>{c++,!I&&!l&&C();let u=a=a??e();Q.add(()=>{c--,c===0&&!I&&!l&&(s=X7(B,n))}),u.subscribe(Q),!r&&c>0&&(r=new Wg({next:v=>u.next(v),error:v=>{I=!0,C(),s=X7(d,A,v),u.error(v)},complete:()=>{l=!0,C(),s=X7(d,i),u.complete()}}),Gn(E).subscribe(r))})(o)}}function X7(t,e,...A){if(e===!0){t();return}if(e===!1)return;let i=new Wg({next:()=>{i.unsubscribe(),t()}});return Gn(e(...A)).subscribe(i)}function $g(t,e,A){let i,n=!1;return t&&typeof t=="object"?{bufferSize:i=1/0,windowTime:e=1/0,refCount:n=!1,scheduler:A}=t:i=t??1/0,Ph({connector:()=>new qc(i,e,A),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:n})}function eI(t){return pt((e,A)=>t<=A)}function Qo(...t){let e=Kl(t);return qt((A,i)=>{(e?l2(t,A,e):l2(t,A)).subscribe(i)})}function no(t,e){return qt((A,i)=>{let n=null,o=0,r=!1,s=()=>r&&!n&&i.complete();A.subscribe(zt(i,a=>{n?.unsubscribe();let c=0,l=o++;Gn(t(a,l)).subscribe(n=zt(i,I=>i.next(e?e(a,I,l,c++):I),()=>{n=null,s()}))},()=>{r=!0,s()}))})}function wt(t){return qt((e,A)=>{Gn(t).subscribe(zt(A,()=>A.complete(),Yh)),!A.closed&&e.subscribe(A)})}function $7(t,e=!1){return qt((A,i)=>{let n=0;A.subscribe(zt(i,o=>{let r=t(o,n++);(r||e)&&i.next(o),!r&&i.complete()}))})}function oo(t,e,A){let i=Lt(t)||e||A?{next:t,error:e,complete:A}:t;return i?qt((n,o)=>{var r;(r=i.subscribe)===null||r===void 0||r.call(i);let s=!0;n.subscribe(zt(o,a=>{var c;(c=i.next)===null||c===void 0||c.call(i,a),o.next(a)},()=>{var a;s=!1,(a=i.complete)===null||a===void 0||a.call(i),o.complete()},a=>{var c;s=!1,(c=i.error)===null||c===void 0||c.call(i,a),o.error(a)},()=>{var a,c;s&&((a=i.unsubscribe)===null||a===void 0||a.call(i)),(c=i.finalize)===null||c===void 0||c.call(i)}))}):Rs}var tY="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",ZA=class extends Error{code;constructor(e,A){super(w9(e,A)),this.code=e}};function PgA(t){return`NG0${Math.abs(t)}`}function w9(t,e){return`${PgA(t)}${e?": "+e:""}`}var iY=Symbol("InputSignalNode#UNSET"),jgA=Ne(nA({},Gf),{transformFn:void 0,applyValueToInputSignal(t,e){Uh(t,e)}});function nY(t,e){let A=Object.create(jgA);A.value=t,A.transformFn=e?.transform;function i(){if(Nh(A),A.value===iY){let n=null;throw new ZA(-950,n)}return A.value}return i[js]=A,i}function oQ(t){return{toString:t}.toString()}var cm="__parameters__";function qgA(t){return function(...A){if(t){let i=t(...A);for(let n in i)this[n]=i[n]}}}function oY(t,e,A){return oQ(()=>{let i=qgA(e);function n(...o){if(this instanceof n)return i.apply(this,o),this;let r=new n(...o);return s.annotation=r,s;function s(a,c,l){let I=a.hasOwnProperty(cm)?a[cm]:Object.defineProperty(a,cm,{value:[]})[cm];for(;I.length<=l;)I.push(null);return(I[l]=I[l]||[]).push(r),a}}return n.prototype.ngMetadataName=t,n.annotationCls=n,n})}var Ws=globalThis;function ro(t){for(let e in t)if(t[e]===ro)return e;throw Error("Could not find renamed property on target object.")}function VgA(t,e){for(let A in e)e.hasOwnProperty(A)&&!t.hasOwnProperty(A)&&(t[A]=e[A])}function Zs(t){if(typeof t=="string")return t;if(Array.isArray(t))return`[${t.map(Zs).join(", ")}]`;if(t==null)return""+t;let e=t.overriddenName||t.name;if(e)return`${e}`;let A=t.toString();if(A==null)return""+A;let i=A.indexOf(` +`);return i>=0?A.slice(0,i):A}function dv(t,e){return t?e?`${t} ${e}`:t:e||""}var ZgA=ro({__forward_ref__:ro});function nr(t){return t.__forward_ref__=nr,t.toString=function(){return Zs(this())},t}function Wr(t){return rY(t)?t():t}function rY(t){return typeof t=="function"&&t.hasOwnProperty(ZgA)&&t.__forward_ref__===nr}function SA(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function le(t){return{providers:t.providers||[],imports:t.imports||[]}}function Zm(t){return lK(t,aY)||lK(t,cY)}function sY(t){return Zm(t)!==null}function lK(t,e){return t.hasOwnProperty(e)?t[e]:null}function WgA(t){let e=t&&(t[aY]||t[cY]);return e||null}function gK(t){return t&&(t.hasOwnProperty(IK)||t.hasOwnProperty(XgA))?t[IK]:null}var aY=ro({\u0275prov:ro}),IK=ro({\u0275inj:ro}),cY=ro({ngInjectableDef:ro}),XgA=ro({ngInjectorDef:ro}),BA=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(e,A){this._desc=e,this.\u0275prov=void 0,typeof A=="number"?this.__NG_ELEMENT_ID__=A:A!==void 0&&(this.\u0275prov=SA({token:this,providedIn:A.providedIn||"root",factory:A.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function lY(t){return t&&!!t.\u0275providers}var $gA=ro({\u0275cmp:ro}),A0A=ro({\u0275dir:ro}),e0A=ro({\u0275pipe:ro}),t0A=ro({\u0275mod:ro}),fm=ro({\u0275fac:ro}),Zh=ro({__NG_ELEMENT_ID__:ro}),CK=ro({__NG_ENV_ID__:ro});function nI(t){return typeof t=="string"?t:t==null?"":String(t)}function i0A(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():nI(t)}function gY(t,e){throw new ZA(-200,t)}function D9(t,e){throw new ZA(-201,!1)}var _i=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(_i||{}),Bv;function IY(){return Bv}function Vs(t){let e=Bv;return Bv=t,e}function CY(t,e,A){let i=Zm(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(A&_i.Optional)return null;if(e!==void 0)return e;D9(t,"Injector")}var n0A={},tI=n0A,Ev="__NG_DI_FLAG__",mm=class{injector;constructor(e){this.injector=e}retrieve(e,A){let i=A;return this.injector.get(e,i.optional?Uf:tI,i)}},pm="ngTempTokenPath",o0A="ngTokenPath",r0A=/\n/gm,s0A="\u0275",dK="__source";function a0A(t,e=_i.Default){if(Kh()===void 0)throw new ZA(-203,!1);if(Kh()===null)return CY(t,void 0,e);{let A=Kh(),i;return A instanceof mm?i=A.injector:i=A,i.get(t,e&_i.Optional?null:void 0,e)}}function he(t,e=_i.Default){return(IY()||a0A)(Wr(t),e)}function m(t,e=_i.Default){return he(t,Wm(e))}function Wm(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function hv(t){let e=[];for(let A=0;A ");else if(typeof e=="object"){let o=[];for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];o.push(r+":"+(typeof s=="string"?JSON.stringify(s):Zs(s)))}n=`{${o.join(", ")}}`}return`${A}${i?"("+i+")":""}[${n}]: ${t.replace(r0A,` + `)}`}var hI=dY(oY("Optional"),8);var rQ=dY(oY("SkipSelf"),4);function oI(t,e){let A=t.hasOwnProperty(fm);return A?t[fm]:null}function I0A(t,e,A){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(A)?y9(A,e):e(A))}function BY(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}function wm(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function d0A(t,e){let A=[];for(let i=0;ie;){let o=n-2;t[n]=t[o],n--}t[e]=A,t[e+1]=i}}function Xm(t,e,A){let i=sQ(t,e);return i>=0?t[i|1]=A:(i=~i,B0A(t,i,e,A)),i}function Av(t,e){let A=sQ(t,e);if(A>=0)return t[A|1]}function sQ(t,e){return E0A(t,e,1)}function E0A(t,e,A){let i=0,n=t.length>>A;for(;n!==i;){let o=i+(n-i>>1),r=t[o<e?n=o:i=o+1}return~(n<{A.push(r)};return y9(e,r=>{let s=r;Qv(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&mY(n,o),A}function mY(t,e){for(let A=0;A{e(o,i)})}}function Qv(t,e,A,i){if(t=Wr(t),!t)return!1;let n=null,o=gK(t),r=!o&&d2(t);if(!o&&!r){let a=t.ngModule;if(o=gK(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)Qv(c,e,A,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{y9(o.imports,l=>{Qv(l,e,A,i)&&(c||=[],c.push(l))})}finally{}c!==void 0&&mY(c,e)}if(!s){let c=oI(n)||(()=>new n);e({provide:n,useFactory:c,deps:xs},n),e({provide:hY,useValue:n,multi:!0},n),e({provide:pd,useValue:()=>he(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;v9(a,l=>{e(l,c)})}}else return!1;return n!==t&&t.providers!==void 0}function v9(t,e){for(let A of t)lY(A)&&(A=A.\u0275providers),Array.isArray(A)?v9(A,e):e(A)}var u0A=ro({provide:String,useValue:ro});function pY(t){return t!==null&&typeof t=="object"&&u0A in t}function f0A(t){return!!(t&&t.useExisting)}function m0A(t){return!!(t&&t.useFactory)}function wd(t){return typeof t=="function"}function p0A(t){return!!t.useClass}var $m=new BA(""),Bm={},BK={},ev;function Ap(){return ev===void 0&&(ev=new Dm),ev}var Br=class{},Xh=class extends Br{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,n){super(),this.parent=A,this.source=i,this.scopes=n,fv(e,r=>this.processProvider(r)),this.records.set(EY,Ed(void 0,this)),n.has("environment")&&this.records.set(Br,Ed(void 0,this));let o=this.records.get($m);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(hY,xs,_i.Self))}retrieve(e,A){let i=A;return this.get(e,i.optional?Uf:tI,i)}destroy(){qh(this),this._destroyed=!0;let e=vi(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),vi(e)}}onDestroy(e){return qh(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){qh(this);let A=Vg(this),i=Vs(void 0),n;try{return e()}finally{Vg(A),Vs(i)}}get(e,A=tI,i=_i.Default){if(qh(this),e.hasOwnProperty(CK))return e[CK](this);i=Wm(i);let n,o=Vg(this),r=Vs(void 0);try{if(!(i&_i.SkipSelf)){let a=this.records.get(e);if(a===void 0){let c=b0A(e)&&Zm(e);c&&this.injectableDefInScope(c)?a=Ed(uv(e),Bm):a=null,this.records.set(e,a)}if(a!=null)return this.hydrate(e,a)}let s=i&_i.Self?Ap():this.parent;return A=i&_i.Optional&&A===tI?null:A,s.get(e,A)}catch(s){if(s.name==="NullInjectorError"){if((s[pm]=s[pm]||[]).unshift(Zs(e)),o)throw s;return l0A(s,e,"R3InjectorError",this.source)}else throw s}finally{Vs(r),Vg(o)}}resolveInjectorInitializers(){let e=vi(null),A=Vg(this),i=Vs(void 0),n;try{let o=this.get(pd,xs,_i.Self);for(let r of o)r()}finally{Vg(A),Vs(i),vi(e)}}toString(){let e=[],A=this.records;for(let i of A.keys())e.push(Zs(i));return`R3Injector[${e.join(", ")}]`}processProvider(e){e=Wr(e);let A=wd(e)?e:Wr(e&&e.provide),i=D0A(e);if(!wd(e)&&e.multi===!0){let n=this.records.get(A);n||(n=Ed(void 0,Bm,!0),n.factory=()=>hv(n.multi),this.records.set(A,n)),A=e,n.multi.push(e)}this.records.set(A,i)}hydrate(e,A){let i=vi(null);try{return A.value===BK?gY(Zs(e)):A.value===Bm&&(A.value=BK,A.value=A.factory()),typeof A.value=="object"&&A.value&&v0A(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{vi(i)}}injectableDefInScope(e){if(!e.providedIn)return!1;let A=Wr(e.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(e){let A=this._onDestroyHooks.indexOf(e);A!==-1&&this._onDestroyHooks.splice(A,1)}};function uv(t){let e=Zm(t),A=e!==null?e.factory:oI(t);if(A!==null)return A;if(t instanceof BA)throw new ZA(204,!1);if(t instanceof Function)return w0A(t);throw new ZA(204,!1)}function w0A(t){if(t.length>0)throw new ZA(204,!1);let A=WgA(t);return A!==null?()=>A.factory(t):()=>new t}function D0A(t){if(pY(t))return Ed(void 0,t.useValue);{let e=wY(t);return Ed(e,Bm)}}function wY(t,e,A){let i;if(wd(t)){let n=Wr(t);return oI(n)||uv(n)}else if(pY(t))i=()=>Wr(t.useValue);else if(m0A(t))i=()=>t.useFactory(...hv(t.deps||[]));else if(f0A(t))i=()=>he(Wr(t.useExisting));else{let n=Wr(t&&(t.useClass||t.provide));if(y0A(t))i=()=>new n(...hv(t.deps));else return oI(n)||uv(n)}return i}function qh(t){if(t.destroyed)throw new ZA(205,!1)}function Ed(t,e,A=!1){return{factory:t,value:e,multi:A?[]:void 0}}function y0A(t){return!!t.deps}function v0A(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function b0A(t){return typeof t=="function"||typeof t=="object"&&t instanceof BA}function fv(t,e){for(let A of t)Array.isArray(A)?fv(A,e):A&&lY(A)?fv(A.\u0275providers,e):e(A)}function $s(t,e){let A;t instanceof Xh?(qh(t),A=t):A=new mm(t);let i,n=Vg(A),o=Vs(void 0);try{return e()}finally{Vg(n),Vs(o)}}function DY(){return IY()!==void 0||Kh()!=null}function b9(t){if(!DY())throw new ZA(-203,!1)}function M0A(t){let e=Ws.ng;if(e&&e.\u0275compilerFacade)return e.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function k0A(t){return typeof t=="function"}var Zl=0,gi=1,Vt=2,Cs=3,$c=4,Aa=5,Dd=6,ym=7,vr=8,rI=9,A0=10,Uo=11,$h=12,EK=13,Sd=14,_a=15,sI=16,hd=17,e0=18,ep=19,yY=20,I2=21,tv=22,aI=23,Bc=24,fd=25,br=26,M9=1;var cI=7,vm=8,yd=9,Is=10;function C2(t){return Array.isArray(t)&&typeof t[M9]=="object"}function n0(t){return Array.isArray(t)&&t[M9]===!0}function k9(t){return(t.flags&4)!==0}function Rd(t){return t.componentOffset>-1}function tp(t){return(t.flags&1)===1}function Al(t){return!!t.template}function bm(t){return(t[Vt]&512)!==0}function Ld(t){return(t[Vt]&256)===256}var mv=class{previousValue;currentValue;firstChange;constructor(e,A,i){this.previousValue=e,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function vY(t,e,A,i){e!==null?e.applyValueToInputSignal(e,i):t[A]=i}var Kt=(()=>{let t=()=>bY;return t.ngInherit=!0,t})();function bY(t){return t.type.prototype.ngOnChanges&&(t.setInput=R0A),S0A}function S0A(){let t=kY(this),e=t?.current;if(e){let A=t.previous;if(A===Ol)t.previous=e;else for(let i in e)A[i]=e[i];t.current=null,this.ngOnChanges(e)}}function R0A(t,e,A,i,n){let o=this.declaredInputs[i],r=kY(t)||L0A(t,{previous:Ol,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new mv(c&&c.currentValue,A,a===Ol),vY(t,e,n,A)}var MY="__ngSimpleChanges__";function kY(t){return t[MY]||null}function L0A(t,e){return t[MY]=e}var hK=null;var uo=function(t,e=null,A){hK?.(t,e,A)},SY="svg",x0A="math";function Pl(t){for(;Array.isArray(t);)t=t[Zl];return t}function F0A(t){for(;Array.isArray(t);){if(typeof t[M9]=="object")return t;t=t[Zl]}return null}function RY(t,e){return Pl(e[t])}function Wl(t,e){return Pl(e[t.index])}function S9(t,e){return t.data[e]}function R9(t,e){return t[e]}function jl(t,e){let A=e[t];return C2(A)?A:A[Zl]}function N0A(t){return(t[Vt]&4)===4}function L9(t){return(t[Vt]&128)===128}function _0A(t){return n0(t[Cs])}function B2(t,e){return e==null?null:t[e]}function LY(t){t[hd]=0}function xY(t){t[Vt]&1024||(t[Vt]|=1024,L9(t)&&xd(t))}function G0A(t,e){for(;t>0;)e=e[Sd],t--;return e}function ip(t){return!!(t[Vt]&9216||t[Bc]?.dirty)}function pv(t){t[A0].changeDetectionScheduler?.notify(8),t[Vt]&64&&(t[Vt]|=1024),ip(t)&&xd(t)}function xd(t){t[A0].changeDetectionScheduler?.notify(0);let e=lI(t);for(;e!==null&&!(e[Vt]&8192||(e[Vt]|=8192,!L9(e)));)e=lI(e)}function FY(t,e){if(Ld(t))throw new ZA(911,!1);t[I2]===null&&(t[I2]=[]),t[I2].push(e)}function U0A(t,e){if(t[I2]===null)return;let A=t[I2].indexOf(e);A!==-1&&t[I2].splice(A,1)}function lI(t){let e=t[Cs];return n0(e)?e[Cs]:e}function x9(t){return t[ym]??=[]}function F9(t){return t.cleanup??=[]}function K0A(t,e,A,i){let n=x9(e);n.push(A),t.firstCreatePass&&F9(t).push(i,n.length-1)}var di={lFrame:YY(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var wv=!1;function Y0A(){return di.lFrame.elementDepthCount}function J0A(){di.lFrame.elementDepthCount++}function T0A(){di.lFrame.elementDepthCount--}function N9(){return di.bindingsEnabled}function NY(){return di.skipHydrationRootTNode!==null}function z0A(t){return di.skipHydrationRootTNode===t}function H0A(){di.skipHydrationRootTNode=null}function Ut(){return di.lFrame.lView}function yo(){return di.lFrame.tView}function LA(t){return di.lFrame.contextLView=t,t[vr]}function xA(t){return di.lFrame.contextLView=null,t}function Xr(){let t=_Y();for(;t!==null&&t.type===64;)t=t.parent;return t}function _Y(){return di.lFrame.currentTNode}function O0A(){let t=di.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function QI(t,e){let A=di.lFrame;A.currentTNode=t,A.isParent=e}function _9(){return di.lFrame.isParent}function G9(){di.lFrame.isParent=!1}function P0A(){return di.lFrame.contextLView}function GY(){return wv}function Mm(t){let e=wv;return wv=t,e}function cQ(){let t=di.lFrame,e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function j0A(){return di.lFrame.bindingIndex}function q0A(t){return di.lFrame.bindingIndex=t}function E2(){return di.lFrame.bindingIndex++}function U9(t){let e=di.lFrame,A=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,A}function V0A(){return di.lFrame.inI18n}function Z0A(t,e){let A=di.lFrame;A.bindingIndex=A.bindingRootIndex=t,Dv(e)}function W0A(){return di.lFrame.currentDirectiveIndex}function Dv(t){di.lFrame.currentDirectiveIndex=t}function K9(t){let e=di.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function Y9(){return di.lFrame.currentQueryIndex}function np(t){di.lFrame.currentQueryIndex=t}function X0A(t){let e=t[gi];return e.type===2?e.declTNode:e.type===1?t[Aa]:null}function UY(t,e,A){if(A&_i.SkipSelf){let n=e,o=t;for(;n=n.parent,n===null&&!(A&_i.Host);)if(n=X0A(o),n===null||(o=o[Sd],n.type&10))break;if(n===null)return!1;e=n,t=o}let i=di.lFrame=KY();return i.currentTNode=e,i.lView=t,!0}function J9(t){let e=KY(),A=t[gi];di.lFrame=e,e.currentTNode=A.firstChild,e.lView=t,e.tView=A,e.contextLView=t,e.bindingIndex=A.bindingStartIndex,e.inI18n=!1}function KY(){let t=di.lFrame,e=t===null?null:t.child;return e===null?YY(t):e}function YY(t){let e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function JY(){let t=di.lFrame;return di.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var TY=JY;function T9(){let t=JY();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function $0A(t){return(di.lFrame.contextLView=G0A(t,di.lFrame.contextLView))[vr]}function o0(){return di.lFrame.selectedIndex}function gI(t){di.lFrame.selectedIndex=t}function lQ(){let t=di.lFrame;return S9(t.tView,t.selectedIndex)}function hr(){di.lFrame.currentNamespace=SY}function uI(){A2A()}function A2A(){di.lFrame.currentNamespace=null}function e2A(){return di.lFrame.currentNamespace}var zY=!0;function op(){return zY}function rp(t){zY=t}function t2A(t,e,A){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=e.type.prototype;if(i){let r=bY(e);(A.preOrderHooks??=[]).push(t,r),(A.preOrderCheckHooks??=[]).push(t,r)}n&&(A.preOrderHooks??=[]).push(0-t,n),o&&((A.preOrderHooks??=[]).push(t,o),(A.preOrderCheckHooks??=[]).push(t,o))}function z9(t,e){for(let A=e.directiveStart,i=e.directiveEnd;A=i)break}else e[a]<0&&(t[hd]+=65536),(s>14>16&&(t[Vt]&3)===e&&(t[Vt]+=16384,QK(s,o)):QK(s,o)}var md=-1,II=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,A,i){this.factory=e,this.canSeeViewProviders=A,this.injectImpl=i}};function n2A(t){return(t.flags&8)!==0}function o2A(t){return(t.flags&16)!==0}function r2A(t,e,A){let i=0;for(;ie){r=o-1;break}}}for(;o>16}function Sm(t,e){let A=a2A(t),i=e;for(;A>0;)i=i[Sd],A--;return i}var yv=!0;function Rm(t){let e=yv;return yv=t,e}var c2A=256,jY=c2A-1,qY=5,l2A=0,Hl={};function g2A(t,e,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(Zh)&&(i=A[Zh]),i==null&&(i=A[Zh]=l2A++);let n=i&jY,o=1<>qY)]|=o}function Lm(t,e){let A=VY(t,e);if(A!==-1)return A;let i=e[gi];i.firstCreatePass&&(t.injectorIndex=e.length,nv(i.data,t),nv(e,null),nv(i.blueprint,null));let n=H9(t,e),o=t.injectorIndex;if(PY(n)){let r=km(n),s=Sm(n,e),a=s[gi].data;for(let c=0;c<8;c++)e[o+c]=s[r+c]|a[r+c]}return e[o+8]=n,o}function nv(t,e){t.push(0,0,0,0,0,0,0,0,e)}function VY(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function H9(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let A=0,i=null,n=e;for(;n!==null;){if(i=AJ(n),i===null)return md;if(A++,n=n[Sd],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return md}function vv(t,e,A){g2A(t,e,A)}function I2A(t,e){if(e==="class")return t.classes;if(e==="style")return t.styles;let A=t.attrs;if(A){let i=A.length,n=0;for(;n>20,I=i?s:s+l,C=n?s+l:c;for(let d=I;d=a&&B.type===A)return d}if(n){let d=r[a];if(d&&Al(d)&&d.type===A)return a}return null}function AQ(t,e,A,i){let n=t[A],o=e.data;if(n instanceof II){let r=n;r.resolving&&gY(i0A(o[A]));let s=Rm(r.canSeeViewProviders);r.resolving=!0;let a,c=r.injectImpl?Vs(r.injectImpl):null,l=UY(t,i,_i.Default);try{n=t[A]=r.factory(void 0,o,t,i),e.firstCreatePass&&A>=i.directiveStart&&t2A(A,o[A],e)}finally{c!==null&&Vs(c),Rm(s),r.resolving=!1,TY()}}return n}function d2A(t){if(typeof t=="string")return t.charCodeAt(0)||0;let e=t.hasOwnProperty(Zh)?t[Zh]:void 0;return typeof e=="number"?e>=0?e&jY:B2A:e}function fK(t,e,A){let i=1<>qY)]&i)}function mK(t,e){return!(t&_i.Self)&&!(t&_i.Host&&e)}var iI=class{_tNode;_lView;constructor(e,A){this._tNode=e,this._lView=A}get(e,A,i){return XY(this._tNode,this._lView,e,Wm(i),A)}};function B2A(){return new iI(Xr(),Ut())}function bi(t){return oQ(()=>{let e=t.prototype.constructor,A=e[fm]||bv(e),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[fm]||bv(n);if(o&&o!==A)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function bv(t){return rY(t)?()=>{let e=bv(Wr(t));return e&&e()}:oI(t)}function E2A(t,e,A,i,n){let o=t,r=e;for(;o!==null&&r!==null&&r[Vt]&2048&&!bm(r);){let s=$Y(o,r,A,i|_i.Self,Hl);if(s!==Hl)return s;let a=o.parent;if(!a){let c=r[yY];if(c){let l=c.get(A,Hl,i);if(l!==Hl)return l}a=AJ(r),r=r[Sd]}o=a}return n}function AJ(t){let e=t[gi],A=e.type;return A===2?e.declTNode:A===1?t[Aa]:null}function O9(t){return I2A(Xr(),t)}function pK(t,e=null,A=null,i){let n=eJ(t,e,A,i);return n.resolveInjectorInitializers(),n}function eJ(t,e=null,A=null,i,n=new Set){let o=[A||xs,Q0A(t)];return i=i||(typeof t=="object"?void 0:Zs(t)),new Xh(o,e||Ap(),i||null,n)}var Dt=class t{static THROW_IF_NOT_FOUND=tI;static NULL=new Dm;static create(e,A){if(Array.isArray(e))return pK({name:""},A,e,"");{let i=e.name??"";return pK({name:i},e.parent,e.providers,i)}}static \u0275prov=SA({token:t,providedIn:"any",factory:()=>he(EY)});static __NG_ELEMENT_ID__=-1};var Er=class{attributeName;constructor(e){this.attributeName=e}__NG_ELEMENT_ID__=()=>O9(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},h2A=new BA("");h2A.__NG_ELEMENT_ID__=t=>{let e=Xr();if(e===null)throw new ZA(204,!1);if(e.type&2)return e.value;if(t&_i.Optional)return null;throw new ZA(204,!1)};var tJ=!1,Fd=(()=>{class t{static __NG_ELEMENT_ID__=Q2A;static __NG_ENV_ID__=A=>A}return t})(),xm=class extends Fd{_lView;constructor(e){super(),this._lView=e}onDestroy(e){let A=this._lView;return Ld(A)?(e(),()=>{}):(FY(A,e),()=>U0A(A,e))}};function Q2A(){return new xm(Ut())}var CI=class{},P9=new BA("",{providedIn:"root",factory:()=>!1});var iJ=new BA(""),nJ=new BA(""),r0=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new li(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=SA({token:t,providedIn:"root",factory:()=>new t})}return t})();var Mv=class extends HA{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,DY()&&(this.destroyRef=m(Fd,{optional:!0})??void 0,this.pendingTasks=m(r0,{optional:!0})??void 0)}emit(e){let A=vi(null);try{super.next(e)}finally{vi(A)}}subscribe(e,A,i){let n=e,o=A||(()=>null),r=i;if(e&&typeof e=="object"){let a=e;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return e instanceof _t&&e.add(s),s}wrapInTimeout(e){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{e(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},XA=Mv;function eQ(...t){}function oJ(t){let e,A;function i(){t=eQ;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{t(),i()})),()=>i()}function wK(t){return queueMicrotask(()=>t()),()=>{t=eQ}}var j9="isAngularZone",Fm=j9+"_ID",u2A=0,de=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new XA(!1);onMicrotaskEmpty=new XA(!1);onStable=new XA(!1);onError=new XA(!1);constructor(e){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=tJ}=e;if(typeof Zone>"u")throw new ZA(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,p2A(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(j9)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new ZA(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new ZA(909,!1)}run(e,A,i){return this._inner.run(e,A,i)}runTask(e,A,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,e,f2A,eQ,eQ);try{return o.runTask(r,A,i)}finally{o.cancelTask(r)}}runGuarded(e,A,i){return this._inner.runGuarded(e,A,i)}runOutsideAngular(e){return this._outer.run(e)}},f2A={};function q9(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function m2A(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){oJ(()=>{t.callbackScheduled=!1,kv(t),t.isCheckStableRunning=!0,q9(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),kv(t)}function p2A(t){let e=()=>{m2A(t)},A=u2A++;t._inner=t._inner.fork({name:"angular",properties:{[j9]:!0,[Fm]:A,[Fm+A]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if(w2A(a))return i.invokeTask(o,r,s,a);try{return DK(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),yK(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return DK(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!D2A(a)&&e(),yK(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,kv(t),q9(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function kv(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function DK(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function yK(t){t._nesting--,q9(t)}var Nm=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new XA;onMicrotaskEmpty=new XA;onStable=new XA;onError=new XA;run(e,A,i){return e.apply(A,i)}runGuarded(e,A,i){return e.apply(A,i)}runOutsideAngular(e){return e()}runTask(e,A,i,n){return e.apply(A,i)}};function w2A(t){return rJ(t,"__ignore_ng_zone__")}function D2A(t){return rJ(t,"__scheduler_tick__")}function rJ(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}function y2A(t="zone.js",e){return t==="noop"?new Nm:t==="zone.js"?new de(e):t}var Xs=class{_console=console;handleError(e){this._console.error("ERROR",e)}},v2A=new BA("",{providedIn:"root",factory:()=>{let t=m(de),e=m(Xs);return A=>t.runOutsideAngular(()=>e.handleError(A))}});function vK(t,e){return nY(t,e)}function b2A(t){return nY(iY,t)}var sJ=(vK.required=b2A,vK);function M2A(){return Nd(Xr(),Ut())}function Nd(t,e){return new te(Wl(t,e))}var te=(()=>{class t{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=M2A}return t})();function aJ(t){return t instanceof te?t.nativeElement:t}function h2(t){return typeof t=="function"&&t[js]!==void 0}function Ko(t,e){let A=_7(t,e?.equal),i=A[js];return A.set=n=>Uh(i,n),A.update=n=>G7(i,n),A.asReadonly=k2A.bind(A),A}function k2A(){let t=this[js];if(t.readonlyFn===void 0){let e=()=>this();e[js]=t,t.readonlyFn=e}return t.readonlyFn}function cJ(t){return h2(t)&&typeof t.set=="function"}function S2A(){return this._results[Symbol.iterator]()}var Ec=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new HA}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,A){return this._results.reduce(e,A)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,A){this.dirty=!1;let i=C0A(e);(this._changesDetected=!I0A(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=S2A};function lJ(t){return(t.flags&128)===128}var gJ=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(gJ||{}),IJ=new Map,R2A=0;function L2A(){return R2A++}function x2A(t){IJ.set(t[ep],t)}function Sv(t){IJ.delete(t[ep])}var bK="__ngContext__";function _d(t,e){C2(e)?(t[bK]=e[ep],x2A(e)):t[bK]=e}function CJ(t){return BJ(t[$h])}function dJ(t){return BJ(t[$c])}function BJ(t){for(;t!==null&&!n0(t);)t=t[$c];return t}var Rv;function EJ(t){Rv=t}function hJ(){if(Rv!==void 0)return Rv;if(typeof document<"u")return document;throw new ZA(210,!1)}var fI=new BA("",{providedIn:"root",factory:()=>F2A}),F2A="ng",V9=new BA(""),hc=new BA("",{providedIn:"platform",factory:()=>"unknown"});var mi=new BA(""),gQ=new BA("",{providedIn:"root",factory:()=>hJ().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var N2A="h",_2A="b";var QJ=!1,G2A=new BA("",{providedIn:"root",factory:()=>QJ});var Z9=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(Z9||{}),Gd=new BA(""),MK=new Set;function s0(t){MK.has(t)||(MK.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var W9=(()=>{class t{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=U2A}return t})();function U2A(){return new W9(Ut(),Xr())}var Qd=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Qd||{}),uJ=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=SA({token:t,providedIn:"root",factory:()=>new t})}return t})(),K2A=[Qd.EarlyRead,Qd.Write,Qd.MixedReadWrite,Qd.Read],Y2A=(()=>{class t{ngZone=m(de);scheduler=m(CI);errorHandler=m(Xs,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){m(Gd,{optional:!0})}execute(){let A=this.sequences.size>0;A&&uo(16),this.executing=!0;for(let i of K2A)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&uo(17)}register(A){let{view:i}=A;i!==void 0?((i[fd]??=[]).push(A),xd(i),i[Vt]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(Z9.AFTER_NEXT_RENDER,A):A()}static \u0275prov=SA({token:t,providedIn:"root",factory:()=>new t})}return t})(),Lv=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,A,i,n,o,r=null){this.impl=e,this.hooks=A,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[fd];e&&(this.view[fd]=e.filter(A=>A!==this))}};function IQ(t,e){!e?.injector&&b9(IQ);let A=e?.injector??m(Dt);return s0("NgAfterRender"),fJ(t,A,e,!1)}function Vo(t,e){!e?.injector&&b9(Vo);let A=e?.injector??m(Dt);return s0("NgAfterNextRender"),fJ(t,A,e,!0)}function J2A(t,e){if(t instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[e]=t,A}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function fJ(t,e,A,i){let n=e.get(uJ);n.impl??=e.get(Y2A);let o=e.get(Gd,null,{optional:!0}),r=A?.phase??Qd.MixedReadWrite,s=A?.manualCleanup!==!0?e.get(Fd):null,a=e.get(W9,null,{optional:!0}),c=new Lv(n.impl,J2A(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var T2A=()=>null;function mJ(t,e,A=!1){return T2A(t,e,A)}function pJ(t,e){let A=t.contentQueries;if(A!==null){let i=vi(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return lm}function sp(t){return z2A()?.createHTML(t)||t}var gm;function H2A(){if(gm===void 0&&(gm=null,Ws.trustedTypes))try{gm=Ws.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return gm}function kK(t){return H2A()?.createHTML(t)||t}var t0=class{changingThisBreaksApplicationSecurity;constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${tY})`}},Fv=class extends t0{getTypeName(){return"HTML"}},Nv=class extends t0{getTypeName(){return"Style"}},_v=class extends t0{getTypeName(){return"Script"}},Gv=class extends t0{getTypeName(){return"URL"}},Uv=class extends t0{getTypeName(){return"ResourceURL"}};function el(t){return t instanceof t0?t.changingThisBreaksApplicationSecurity:t}function Q2(t,e){let A=O2A(t);if(A!=null&&A!==e){if(A==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${A} (see ${tY})`)}return A===e}function O2A(t){return t instanceof t0&&t.getTypeName()||null}function wJ(t){return new Fv(t)}function DJ(t){return new Nv(t)}function yJ(t){return new _v(t)}function vJ(t){return new Gv(t)}function bJ(t){return new Uv(t)}function P2A(t){let e=new Yv(t);return j2A()?new Kv(e):e}var Kv=class{inertDocumentHelper;constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{let A=new window.DOMParser().parseFromString(sp(e),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(e):(A.firstChild?.remove(),A)}catch{return null}}},Yv=class{defaultDoc;inertDocument;constructor(e){this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){let A=this.inertDocument.createElement("template");return A.innerHTML=sp(e),A}};function j2A(){try{return!!new window.DOMParser().parseFromString(sp(""),"text/html")}catch{return!1}}var q2A=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function ap(t){return t=String(t),t.match(q2A)?t:"unsafe:"+t}function a0(t){let e={};for(let A of t.split(","))e[A]=!0;return e}function CQ(...t){let e={};for(let A of t)for(let i in A)A.hasOwnProperty(i)&&(e[i]=!0);return e}var MJ=a0("area,br,col,hr,img,wbr"),kJ=a0("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),SJ=a0("rp,rt"),V2A=CQ(SJ,kJ),Z2A=CQ(kJ,a0("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),W2A=CQ(SJ,a0("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),SK=CQ(MJ,Z2A,W2A,V2A),RJ=a0("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),X2A=a0("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),$2A=a0("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),A1A=CQ(RJ,X2A,$2A),e1A=a0("script,style,template"),Jv=class{sanitizedSomething=!1;buf=[];sanitizeChildren(e){let A=e.firstChild,i=!0,n=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){n.push(A),A=n1A(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let o=i1A(A);if(o){A=o;break}A=n.pop()}}return this.buf.join("")}startElement(e){let A=RK(e).toLowerCase();if(!SK.hasOwnProperty(A))return this.sanitizedSomething=!0,!e1A.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=e.attributes;for(let n=0;n"),!0}endElement(e){let A=RK(e).toLowerCase();SK.hasOwnProperty(A)&&!MJ.hasOwnProperty(A)&&(this.buf.push(""))}chars(e){this.buf.push(LK(e))}};function t1A(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function i1A(t){let e=t.nextSibling;if(e&&t!==e.previousSibling)throw LJ(e);return e}function n1A(t){let e=t.firstChild;if(e&&t1A(t,e))throw LJ(e);return e}function RK(t){let e=t.nodeName;return typeof e=="string"?e:"FORM"}function LJ(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var o1A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,r1A=/([^\#-~ |!])/g;function LK(t){return t.replace(/&/g,"&").replace(o1A,function(e){let A=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(r1A,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}var Im;function $9(t,e){let A=null;try{Im=Im||P2A(t);let i=e?String(e):"";A=Im.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=A.innerHTML,A=Im.getInertBodyElement(i)}while(i!==o);let s=new Jv().sanitizeChildren(xK(A)||A);return sp(s)}finally{if(A){let i=xK(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function xK(t){return"content"in t&&s1A(t)?t.content:null}function s1A(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Kr=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Kr||{});function mI(t){let e=xJ();return e?kK(e.sanitize(Kr.HTML,t)||""):Q2(t,"HTML")?kK(el(t)):$9(hJ(),nI(t))}function Ka(t){let e=xJ();return e?e.sanitize(Kr.URL,t)||"":Q2(t,"URL")?el(t):ap(nI(t))}function xJ(){let t=Ut();return t&&t[A0].sanitizer}var a1A=/^>|^->||--!>|)/g,l1A="\u200B$1\u200B";function g1A(t){return t.replace(a1A,e=>e.replace(c1A,l1A))}function cp(t){return t.ownerDocument.defaultView}function Ud(t){return t.ownerDocument}function FJ(t){return t instanceof Function?t():t}function I1A(t,e,A){let i=t.length;for(;;){let n=t.indexOf(e,A);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=e.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}A=n+1}}var NJ="ng-template";function C1A(t,e,A,i){let n=0;if(i){for(;n-1){let o;for(;++no?I="":I=n[l+1].toLowerCase(),i&2&&c!==I){if(Wc(i))return!1;r=!0}}}}return Wc(i)||r}function Wc(t){return(t&1)===0}function E1A(t,e,A,i){if(e===null)return-1;let n=0;if(i||!A){let o=!1;for(;n-1)for(A++;A0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!Wc(r)&&(e+=FK(o,n),n=""),i=r,o=o||!Wc(i);A++}return n!==""&&(e+=FK(o,n)),e}function p1A(t){return t.map(m1A).join(",")}function w1A(t){let e=[],A=[],i=1,n=2;for(;ibr&&TJ(t,e,br,!1),uo(r?2:0,n),A(i,n)}finally{gI(o),uo(r?3:1,n)}}function gp(t,e,A){U1A(t,e,A),(A.flags&64)===64&&K1A(t,e,A)}function nb(t,e,A=Wl){let i=e.localNames;if(i!==null){let n=e.index+1;for(let o=0;onull;function _1A(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function Ip(t,e,A,i,n,o,r,s){if(!s&&rb(e,t,A,i,n)){Rd(e)&&G1A(A,e.index);return}if(e.type&3){let a=Wl(e,A);i=_1A(i),n=r!=null?r(n,e.value||"",i):n,o.setProperty(a,i,n)}else e.type&12}function G1A(t,e){let A=jl(e,t);A[Vt]&16||(A[Vt]|=64)}function U1A(t,e,A){let i=A.directiveStart,n=A.directiveEnd;Rd(A)&&L1A(e,A,t.data[i+A.componentOffset]),t.firstCreatePass||Lm(A,e);let o=A.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[A[r+1]];A[r].call(s)}i!==null&&(e[ym]=null);let n=e[I2];if(n!==null){e[I2]=null;for(let r=0;r{xd(t.lView)},consumerOnSignalRead(){this.lView[Bc]=this}});function gIA(t){let e=t[Bc]??Object.create(IIA);return e.lView=t,e}var IIA=Ne(nA({},id),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let e=lI(t.lView);for(;e&&!XJ(e[gi]);)e=lI(e);e&&xY(e)},consumerOnSignalRead(){this.lView[Bc]=this}});function XJ(t){return t.type!==2}function $J(t){if(t[aI]===null)return;let e=!0;for(;e;){let A=!1;for(let i of t[aI])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=A&&!!(t[Vt]&8192)}}var CIA=100;function AT(t,e=!0,A=0){let n=t[A0].rendererFactory,o=!1;o||n.begin?.();try{dIA(t,A)}catch(r){throw e&&H1A(t,r),r}finally{o||n.end?.()}}function dIA(t,e){let A=GY();try{Mm(!0),Hv(t,e);let i=0;for(;ip(t);){if(i===CIA)throw new ZA(103,!1);i++,Hv(t,1)}}finally{Mm(A)}}function BIA(t,e,A,i){if(Ld(e))return;let n=e[Vt],o=!1,r=!1;J9(e);let s=!0,a=null,c=null;o||(XJ(t)?(c=sIA(e),a=_h(c)):R7()===null?(s=!1,c=gIA(e),a=_h(c)):e[Bc]&&(Gh(e[Bc]),e[Bc]=null));try{LY(e),q0A(t.bindingStartIndex),A!==null&&zJ(t,e,A,2,i);let l=(n&3)===3;if(!o)if(l){let d=t.preOrderCheckHooks;d!==null&&Em(e,d,null)}else{let d=t.preOrderHooks;d!==null&&hm(e,d,0,null),iv(e,0)}if(r||EIA(e),$J(e),eT(e,0),t.contentQueries!==null&&pJ(t,e),!o)if(l){let d=t.contentCheckHooks;d!==null&&Em(e,d)}else{let d=t.contentHooks;d!==null&&hm(e,d,1),iv(e,1)}QIA(t,e);let I=t.components;I!==null&&iT(e,I,0);let C=t.viewQuery;if(C!==null&&xv(2,C,i),!o)if(l){let d=t.viewCheckHooks;d!==null&&Em(e,d)}else{let d=t.viewHooks;d!==null&&hm(e,d,2),iv(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[tv]){for(let d of e[tv])d();e[tv]=null}o||(ZJ(e),e[Vt]&=-73)}catch(l){throw o||xd(e),l}finally{c!==null&&(Lf(c,a),s&&cIA(c)),T9()}}function eT(t,e){for(let A=CJ(t);A!==null;A=dJ(A))for(let i=Is;i0&&(t[A-1][$c]=i[$c]);let o=wm(t,Is+e);V1A(i[gi],i);let r=o[e0];r!==null&&r.detachView(o[gi]),i[Cs]=null,i[$c]=null,i[Vt]&=-129}return i}function uIA(t,e,A,i){let n=Is+i,o=A.length;i>0&&(A[n-1][$c]=e),i-1&&(tQ(e,i),wm(A,i))}this._attachedToViewContainer=!1}Cp(this._lView[gi],this._lView)}onDestroy(e){FY(this._lView,e)}markForCheck(){Ib(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[Vt]&=-129}reattach(){pv(this._lView),this._lView[Vt]|=128}detectChanges(){this._lView[Vt]|=1024,AT(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ZA(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=bm(this._lView),A=this._lView[sI];A!==null&&!e&&lb(A,this._lView),OJ(this._lView[gi],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new ZA(902,!1);this._appRef=e;let A=bm(this._lView),i=this._lView[sI];i!==null&&!A&&sT(i,this._lView),pv(this._lView)}};var vn=(()=>{class t{static __NG_ELEMENT_ID__=pIA}return t})(),fIA=vn,mIA=class extends fIA{_declarationLView;_declarationTContainer;elementRef;constructor(e,A,i){super(),this._declarationLView=e,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,A){return this.createEmbeddedViewImpl(e,A)}createEmbeddedViewImpl(e,A,i){let n=dQ(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:A,dehydratedView:i});return new iQ(n)}};function pIA(){return Ep(Xr(),Ut())}function Ep(t,e){return t.type&4?new mIA(e,t,Nd(t,e)):null}function EQ(t,e,A,i,n){let o=t.data[e];if(o===null)o=wIA(t,e,A,i,n),V0A()&&(o.flags|=32);else if(o.type&64){o.type=A,o.value=i,o.attrs=n;let r=O0A();o.injectorIndex=r===null?-1:r.injectorIndex}return QI(o,!0),o}function wIA(t,e,A,i,n){let o=_Y(),r=_9(),s=r?o:o&&o.parent,a=t.data[e]=yIA(t,s,A,e,i,n);return DIA(t,a,o,r),a}function DIA(t,e,A,i){t.firstChild===null&&(t.firstChild=e),A!==null&&(i?A.child==null&&e.parent!==null&&(A.child=e):A.next===null&&(A.next=e,e.prev=A))}function yIA(t,e,A,i,n,o){let r=e?e.injectorIndex:-1,s=0;return NY()&&(s|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var Kte=new RegExp(`^(\\d+)*(${_2A}|${N2A})*(.*)`);var vIA=()=>null;function Md(t,e){return vIA(t,e)}var bIA=class{},aT=class{},Ov=class{resolveComponentFactory(e){throw Error(`No component factory found for ${Zs(e)}.`)}},hp=class{static NULL=new Ov},ds=class{},Gi=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>MIA()}return t})();function MIA(){let t=Ut(),e=Xr(),A=jl(e.index,t);return(C2(A)?A:t)[Uo]}var kIA=(()=>{class t{static \u0275prov=SA({token:t,providedIn:"root",factory:()=>null})}return t})();var rv={},Pv=class{injector;parentInjector;constructor(e,A){this.injector=e,this.parentInjector=A}get(e,A,i){i=Wm(i);let n=this.injector.get(e,rv,i);return n!==rv||A===rv?n:this.parentInjector.get(e,A,i)}};function jv(t,e,A){let i=A?t.styles:null,n=A?t.classes:null,o=0;if(e!==null)for(let r=0;r0&&(A.directiveToIndex=new Map);for(let C=0;C0;){let A=t[--e];if(typeof A=="number"&&A<0)return A}return 0}function KIA(t,e,A){if(A){if(e.exportAs)for(let i=0;i{let[A,i,n]=t[e],o={propName:A,templateName:e,isSignal:(i&lp.SignalBased)!==0};return n&&(o.transform=n),o})}function TIA(t){return Object.keys(t).map(e=>({propName:t[e],templateName:e}))}function zIA(t,e,A){let i=e instanceof Br?e:e?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new Pv(A,i):A}function HIA(t){let e=t.get(ds,null);if(e===null)throw new ZA(407,!1);let A=t.get(kIA,null),i=t.get(CI,null);return{rendererFactory:e,sanitizer:A,changeDetectionScheduler:i}}function OIA(t,e){let A=(t.selectors[0][0]||"div").toLowerCase();return GJ(e,A,A==="svg"?SY:A==="math"?x0A:null)}var dI=class extends aT{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=JIA(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=TIA(this.componentDef.outputs),this.cachedOutputs}constructor(e,A){super(),this.componentDef=e,this.ngModule=A,this.componentType=e.type,this.selector=p1A(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!A}create(e,A,i,n){uo(22);let o=vi(null);try{let r=this.componentDef,s=i?["ng-version","19.2.9"]:w1A(this.componentDef.selectors[0]),a=eb(0,null,null,1,0,null,null,null,null,[s],null),c=zIA(r,n||this.ngModule,e),l=HIA(c),I=l.rendererFactory.createRenderer(null,r),C=i?x1A(I,i,r.encapsulation,c):OIA(r,I),d=tb(null,a,null,512|YJ(r),null,null,l,I,c,null,mJ(C,c,!0));d[br]=C,J9(d);let B=null;try{let E=gT(br,a,d,"#host",()=>[this.componentDef],!0,0);C&&(KJ(I,C,E),_d(C,d)),gp(a,d,E),X9(a,E,d),IT(a,E),A!==void 0&&PIA(E,this.ngContentSelectors,A),B=jl(E.index,d),d[vr]=B[vr],sb(a,d,null)}catch(E){throw B!==null&&Sv(B),Sv(d),E}finally{uo(23),T9()}return new qv(this.componentType,d)}finally{vi(o)}}},qv=class extends bIA{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,A){super(),this._rootLView=A,this._tNode=S9(A[gi],br),this.location=Nd(this._tNode,A),this.instance=jl(this._tNode.index,A)[vr],this.hostView=this.changeDetectorRef=new iQ(A,void 0,!1),this.componentType=e}setInput(e,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),A))return;let n=this._rootLView,o=rb(i,n[gi],n,e,A);this.previousInputValues.set(e,A);let r=jl(i.index,n);Ib(r,1)}get injector(){return new iI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function PIA(t,e,A){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=jIA}return t})();function jIA(){let t=Xr();return dT(t,Ut())}var qIA=Un,CT=class extends qIA{_lContainer;_hostTNode;_hostLView;constructor(e,A,i){super(),this._lContainer=e,this._hostTNode=A,this._hostLView=i}get element(){return Nd(this._hostTNode,this._hostLView)}get injector(){return new iI(this._hostTNode,this._hostLView)}get parentInjector(){let e=H9(this._hostTNode,this._hostLView);if(PY(e)){let A=Sm(e,this._hostLView),i=km(e),n=A[gi].data[i+8];return new iI(n,A)}else return new iI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let A=YK(this._lContainer);return A!==null&&A[e]||null}get length(){return this._lContainer.length-Is}createEmbeddedView(e,A,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=Md(this._lContainer,e.ssrId),s=e.createEmbeddedViewImpl(A||{},o,r);return this.insertImpl(s,n,bd(this._hostTNode,r)),s}createComponent(e,A,i,n,o){let r=e&&!k0A(e),s;if(r)s=A;else{let B=A||{};s=B.index,i=B.injector,n=B.projectableNodes,o=B.environmentInjector||B.ngModuleRef}let a=r?e:new dI(d2(e)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let E=(r?c:this.parentInjector).get(Br,null);E&&(o=E)}let l=d2(a.componentType??{}),I=Md(this._lContainer,l?.id??null),C=I?.firstChild??null,d=a.create(c,n,C,o);return this.insertImpl(d.hostView,s,bd(this._hostTNode,I)),d}insert(e,A){return this.insertImpl(e,A,!0)}insertImpl(e,A,i){let n=e._lView;if(_0A(n)){let s=this.indexOf(e);if(s!==-1)this.detach(s);else{let a=n[Cs],c=new CT(a,a[Aa],a[Cs]);c.detach(c.indexOf(e))}}let o=this._adjustIndex(A),r=this._lContainer;return BQ(r,n,o,i),e.attachToViewContainerRef(),BY(sv(r),o,e),e}move(e,A){return this.insert(e,A)}indexOf(e){let A=YK(this._lContainer);return A!==null?A.indexOf(e):-1}remove(e){let A=this._adjustIndex(e,-1),i=tQ(this._lContainer,A);i&&(wm(sv(this._lContainer),A),Cp(i[gi],i))}detach(e){let A=this._adjustIndex(e,-1),i=tQ(this._lContainer,A);return i&&wm(sv(this._lContainer),A)!=null?new iQ(i):null}_adjustIndex(e,A=0){return e??this.length+A}};function YK(t){return t[vm]}function sv(t){return t[vm]||(t[vm]=[])}function dT(t,e){let A,i=e[t.index];return n0(i)?A=i:(A=nT(i,e,null,t),e[t.index]=A,ib(e,A)),ZIA(A,e,t,i),new CT(A,t,e)}function VIA(t,e){let A=t[Uo],i=A.createComment(""),n=Wl(e,t),o=A.parentNode(n);return _m(A,o,i,A.nextSibling(n),!1),i}var ZIA=$IA,WIA=()=>!1;function XIA(t,e,A){return WIA(t,e,A)}function $IA(t,e,A,i){if(t[cI])return;let n;A.type&8?n=Pl(i):n=VIA(e,A),t[cI]=n}var Vv=class t{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},Zv=class t{queries;constructor(e=[]){this.queries=e}createEmbeddedView(e){let A=e.queries;if(A!==null){let i=e.contentQueries!==null?e.contentQueries[0]:A.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],l=e[-a];for(let I=Is;Ie.trim())}function QT(t,e,A){t.queries===null&&(t.queries=new Wv),t.queries.track(new Xv(e,A))}function rCA(t,e){let A=t.contentQueries||(t.contentQueries=[]),i=A.length?A[A.length-1]:-1;e!==i&&A.push(t.queries.length-1,e)}function Bb(t,e){return t.queries.getByIndex(e)}function uT(t,e){let A=t[gi],i=Bb(A,e);return i.crossesNgTemplate?$v(A,t,e,[]):BT(A,t,i,e)}function fT(t,e,A){let i,n=_f(()=>{i._dirtyCounter();let o=lCA(i,t);if(e&&o===void 0)throw new ZA(-951,!1);return o});return i=n[js],i._dirtyCounter=Ko(0),i._flatValue=void 0,n}function sCA(t){return fT(!0,!1,t)}function aCA(t){return fT(!0,!0,t)}function cCA(t,e){let A=t[js];A._lView=Ut(),A._queryIndex=e,A._queryList=db(A._lView,e),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function lCA(t,e){let A=t._lView,i=t._queryIndex;if(A===void 0||i===void 0||A[Vt]&4)return e?void 0:xs;let n=db(A,i),o=uT(A,i);return n.reset(o,aJ),e?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function JK(t,e){return sCA(e)}function gCA(t,e){return aCA(e)}var mT=(JK.required=gCA,JK);function ICA(t){let e=[],A=new Map;function i(n){let o=A.get(n);if(!o){let r=t(n);A.set(n,o=r.then(ECA))}return o}return Ym.forEach((n,o)=>{let r=[];n.templateUrl&&r.push(i(n.templateUrl).then(c=>{n.template=c}));let s=typeof n.styles=="string"?[n.styles]:n.styles||[];if(n.styles=s,n.styleUrl&&n.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(n.styleUrls?.length){let c=n.styles.length,l=n.styleUrls;n.styleUrls.forEach((I,C)=>{s.push(""),r.push(i(I).then(d=>{s[c+C]=d,l.splice(l.indexOf(I),1),l.length==0&&(n.styleUrls=void 0)}))})}else n.styleUrl&&r.push(i(n.styleUrl).then(c=>{s.push(c),n.styleUrl=void 0}));let a=Promise.all(r).then(()=>hCA(o));e.push(a)}),dCA(),Promise.all(e).then(()=>{})}var Ym=new Map,CCA=new Set;function dCA(){let t=Ym;return Ym=new Map,t}function BCA(){return Ym.size===0}function ECA(t){return typeof t=="string"?t:t.text()}function hCA(t){CCA.delete(t)}var i0=class{},Eb=class{};var Jm=class extends i0{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Um(this);constructor(e,A,i,n=!0){super(),this.ngModuleType=e,this._parent=A;let o=QY(e);this._bootstrapComponents=FJ(o.bootstrap),this._r3Injector=eJ(e,A,[{provide:i0,useValue:this},{provide:hp,useValue:this.componentFactoryResolver},...i],Zs(e),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}},Tm=class extends Eb{moduleType;constructor(e){super(),this.moduleType=e}create(e){return new Jm(this.moduleType,e,[])}};function QCA(t,e,A){return new Jm(t,e,A,!1)}var A9=class extends i0{injector;componentFactoryResolver=new Um(this);instance=null;constructor(e){super();let A=new Xh([...e.providers,{provide:i0,useValue:this},{provide:hp,useValue:this.componentFactoryResolver}],e.parent||Ap(),e.debugName,new Set(["environment"]));this.injector=A,e.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function hQ(t,e,A=null){return new A9({providers:t,parent:e,debugName:A,runEnvironmentInitializers:!0}).injector}var uCA=(()=>{class t{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=fY(!1,A.type),n=i.length>0?hQ([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,n)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=SA({token:t,providedIn:"environment",factory:()=>new t(he(Br))})}return t})();function YA(t){return oQ(()=>{let e=pT(t),A=Ne(nA({},e),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===gJ.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?n=>n.get(uCA).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||ql.Emulated,styles:t.styles||xs,_:null,schemas:t.schemas||null,tView:null,id:""});e.standalone&&s0("NgStandalone"),wT(A);let i=t.dependencies;return A.directiveDefs=TK(i,!1),A.pipeDefs=TK(i,!0),A.id=DCA(A),A})}function fCA(t){return d2(t)||uY(t)}function mCA(t){return t!==null}function ge(t){return oQ(()=>({type:t.type,bootstrap:t.bootstrap||xs,declarations:t.declarations||xs,imports:t.imports||xs,exports:t.exports||xs,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function pCA(t,e){if(t==null)return Ol;let A={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=lp.None,a=null),A[o]=[i,s,a],e[o]=r}return A}function wCA(t){if(t==null)return Ol;let e={};for(let A in t)t.hasOwnProperty(A)&&(e[t[A]]=A);return e}function OA(t){return oQ(()=>{let e=pT(t);return wT(e),e})}function Qp(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function pT(t){let e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputConfig:t.inputs||Ol,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||xs,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:pCA(t.inputs,e),outputs:wCA(t.outputs),debugInfo:null}}function wT(t){t.features?.forEach(e=>e(t))}function TK(t,e){if(!t)return null;let A=e?h0A:fCA;return()=>(typeof t=="function"?t():t).map(i=>A(i)).filter(mCA)}function DCA(t){let e=0,A=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,A,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))e=Math.imul(31,e)+o.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function yCA(t){return Object.getPrototypeOf(t.prototype).constructor}function et(t){let e=yCA(t.type),A=!0,i=[t];for(;e;){let n;if(Al(t))n=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new ZA(903,!1);n=e.\u0275dir}if(n){if(A){i.push(n);let r=t;r.inputs=av(t.inputs),r.declaredInputs=av(t.declaredInputs),r.outputs=av(t.outputs);let s=n.hostBindings;s&&SCA(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&MCA(t,a),c&&kCA(t,c),vCA(t,n),VgA(t.outputs,n.outputs),Al(n)&&n.data.animation){let l=t.data;l.animation=(l.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=e+=n.hostVars,n.hostAttrs=vd(n.hostAttrs,A=vd(A,n.hostAttrs))}}function av(t){return t===Ol?{}:t===xs?[]:t}function MCA(t,e){let A=t.viewQuery;A?t.viewQuery=(i,n)=>{e(i,n),A(i,n)}:t.viewQuery=e}function kCA(t,e){let A=t.contentQueries;A?t.contentQueries=(i,n,o)=>{e(i,n,o),A(i,n,o)}:t.contentQueries=e}function SCA(t,e){let A=t.hostBindings;A?t.hostBindings=(i,n)=>{e(i,n),A(i,n)}:t.hostBindings=e}function DT(t){let e=A=>{let i=Array.isArray(t);A.hostDirectives===null?(A.findHostDirectiveDefs=yT,A.hostDirectives=i?t.map(e9):[t]):i?A.hostDirectives.unshift(...t.map(e9)):A.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function yT(t,e,A){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)zK(e9(o),e,A)}else zK(i,e,A)}function zK(t,e,A){let i=uY(t.directive);RCA(i.declaredInputs,t.inputs),yT(i,e,A),A.set(i,t),e.push(i)}function e9(t){return typeof t=="function"?{directive:Wr(t),inputs:Ol,outputs:Ol}:{directive:Wr(t.directive),inputs:HK(t.inputs),outputs:HK(t.outputs)}}function HK(t){if(t===void 0||t.length===0)return Ol;let e={};for(let A=0;A{class t{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var fb=new BA(""),QQ=new BA(""),up=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];taskTrackingZone=null;constructor(A,i,n){this._ngZone=A,this.registry=i,mb||(GCA(n),n.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{de.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),A()},i)),this._callbacks.push({doneCb:A,timeoutId:o,updateCb:n})}whenStable(A,i,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,n),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,n){return[]}static \u0275fac=function(i){return new(i||t)(he(de),he(fp),he(QQ))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),fp=(()=>{class t{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return mb?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function GCA(t){mb=t}var mb,MT=(()=>{class t{static \u0275prov=SA({token:t,providedIn:"root",factory:()=>new t9})}return t})(),t9=class{queuedEffectCount=0;queues=new Map;schedule(e){this.enqueue(e)}remove(e){let A=e.zone,i=this.queues.get(A);i.has(e)&&(i.delete(e),this.queuedEffectCount--)}enqueue(e){let A=e.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(let[e,A]of this.queues)e===null?this.flushQueue(A):e.run(()=>this.flushQueue(A))}flushQueue(e){for(let A of e)e.delete(A),this.queuedEffectCount--,A.run()}};function u2(t){return!!t&&typeof t.then=="function"}function pb(t){return!!t&&typeof t.subscribe=="function"}var kT=new BA("");function wb(t){return aQ([{provide:kT,multi:!0,useValue:t}])}var ST=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=m(kT,{optional:!0})??[];injector=m(Dt);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let n of this.appInits){let o=$s(this.injector,n);if(u2(o))A.push(o);else if(pb(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});A.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(n=>{this.reject(n)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Db=new BA("");function UCA(){N7(()=>{throw new ZA(600,!1)})}function KCA(t){return t.isBoundToModule}var YCA=10;function RT(t,e){return Array.isArray(e)?e.reduce(RT,t):nA(nA({},t),e)}var Ua=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=m(v2A);afterRenderManager=m(uJ);zonelessEnabled=m(P9);rootEffectScheduler=m(MT);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new HA;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=m(r0).hasPendingTasks.pipe(Je(A=>!A));constructor(){m(Gd,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=m(Br);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,n=Dt.NULL){uo(10);let o=A instanceof aT;if(!this._injector.get(ST).done){let d="";throw new ZA(405,d)}let s;o?s=A:s=this._injector.get(hp).resolveComponentFactory(A),this.componentTypes.push(s.componentType);let a=KCA(s)?void 0:this._injector.get(i0),c=i||s.selector,l=s.create(n,[],c,a),I=l.location.nativeElement,C=l.injector.get(fb,null);return C?.registerApplication(I),l.onDestroy(()=>{this.detachView(l.hostView),um(this.components,l),C?.unregisterApplication(I)}),this._loadComponent(l),uo(11,l),l}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){uo(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(Z9.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new ZA(101,!1);let A=vi(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,vi(A),this.afterTick.next(),uo(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(ds,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++ip(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;um(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(Db,[]).forEach(n=>n(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>um(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new ZA(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function um(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function JCA(t,e,A,i){if(!A&&!ip(t))return;AT(t,e,A&&!i?0:1)}function _e(t,e,A,i){let n=Ut(),o=E2();if(Ga(n,o,e)){let r=yo(),s=lQ();J1A(s,n,t,e,A,i)}return _e}function LT(t,e,A,i){return Ga(t,E2(),A)?e+nI(A)+i:Ya}function TCA(t,e,A,i,n,o){let r=j0A(),s=bT(t,r,A,n);return U9(2),s?e+nI(A)+i+nI(n)+o:Ya}function Cm(t,e){return t<<17|e<<2}function BI(t){return t>>17&32767}function zCA(t){return(t&2)==2}function HCA(t,e){return t&131071|e<<17}function i9(t){return t|2}function kd(t){return(t&131068)>>2}function cv(t,e){return t&-131069|e<<2}function OCA(t){return(t&1)===1}function n9(t){return t|1}function PCA(t,e,A,i,n,o){let r=o?e.classBindings:e.styleBindings,s=BI(r),a=kd(r);t[i]=A;let c=!1,l;if(Array.isArray(A)){let I=A;l=I[1],(l===null||sQ(I,l)>0)&&(c=!0)}else l=A;if(n)if(a!==0){let C=BI(t[s+1]);t[i+1]=Cm(C,s),C!==0&&(t[C+1]=cv(t[C+1],i)),t[s+1]=HCA(t[s+1],i)}else t[i+1]=Cm(s,0),s!==0&&(t[s+1]=cv(t[s+1],i)),s=i;else t[i+1]=Cm(a,0),s===0?s=i:t[a+1]=cv(t[a+1],i),a=i;c&&(t[i+1]=i9(t[i+1])),OK(t,l,i,!0),OK(t,l,i,!1),jCA(e,l,t,i,o),r=Cm(s,a),o?e.classBindings=r:e.styleBindings=r}function jCA(t,e,A,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof e=="string"&&sQ(o,e)>=0&&(A[i+1]=n9(A[i+1]))}function OK(t,e,A,i){let n=t[A+1],o=e===null,r=i?BI(n):kd(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];qCA(a,e)&&(s=!0,t[r+1]=i?n9(c):i9(c)),r=i?BI(c):kd(c)}s&&(t[A+1]=i?i9(n):n9(n))}function qCA(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?sQ(t,e)>=0:!1}var Xc={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function VCA(t){return t.substring(Xc.key,Xc.keyEnd)}function ZCA(t){return WCA(t),xT(t,FT(t,0,Xc.textEnd))}function xT(t,e){let A=Xc.textEnd;return A===e?-1:(e=Xc.keyEnd=XCA(t,Xc.key=e,A),FT(t,e,A))}function WCA(t){Xc.key=0,Xc.keyEnd=0,Xc.value=0,Xc.valueEnd=0,Xc.textEnd=t.length}function FT(t,e,A){for(;e32;)e++;return e}function vA(t,e,A){let i=Ut(),n=E2();if(Ga(i,n,e)){let o=yo(),r=lQ();Ip(o,r,i,t,e,i[Uo],A,!1)}return vA}function o9(t,e,A,i,n){rb(e,t,A,n?"class":"style",i)}function so(t,e,A){return _T(t,e,A,!1),so}function ue(t,e){return _T(t,e,null,!0),ue}function vo(t){GT(ndA,NT,t,!0)}function NT(t,e){for(let A=ZCA(e);A>=0;A=xT(e,A))Xm(t,VCA(e),!0)}function _T(t,e,A,i){let n=Ut(),o=yo(),r=U9(2);if(o.firstUpdatePass&&KT(o,t,r,i),e!==Ya&&Ga(n,r,e)){let s=o.data[o0()];YT(o,s,n,n[Uo],t,n[r+1]=rdA(e,A),i,r)}}function GT(t,e,A,i){let n=yo(),o=U9(2);n.firstUpdatePass&&KT(n,null,o,i);let r=Ut();if(A!==Ya&&Ga(r,o,A)){let s=n.data[o0()];if(JT(s,i)&&!UT(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(A=dv(a,A||"")),o9(n,s,r,A,i)}else odA(n,s,r,r[Uo],r[o+1],r[o+1]=idA(t,e,A),i,o)}}function UT(t,e){return e>=t.expandoStartIndex}function KT(t,e,A,i){let n=t.data;if(n[A+1]===null){let o=n[o0()],r=UT(t,A);JT(o,i)&&e===null&&!r&&(e=!1),e=$CA(n,o,e,i),PCA(n,o,e,A,r,i)}}function $CA(t,e,A,i){let n=K9(t),o=i?e.residualClasses:e.residualStyles;if(n===null)(i?e.classBindings:e.styleBindings)===0&&(A=lv(null,t,e,A,i),A=nQ(A,e.attrs,i),o=null);else{let r=e.directiveStylingLast;if(r===-1||t[r]!==n)if(A=lv(n,t,e,A,i),o===null){let a=AdA(t,e,i);a!==void 0&&Array.isArray(a)&&(a=lv(null,t,e,a[1],i),a=nQ(a,e.attrs,i),edA(t,e,i,a))}else o=tdA(t,e,i)}return o!==void 0&&(i?e.residualClasses=o:e.residualStyles=o),A}function AdA(t,e,A){let i=A?e.classBindings:e.styleBindings;if(kd(i)!==0)return t[BI(i)]}function edA(t,e,A,i){let n=A?e.classBindings:e.styleBindings;t[BI(n)]=i}function tdA(t,e,A){let i,n=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),l=c?a[1]:a,I=l===null,C=A[n+1];C===Ya&&(C=I?xs:void 0);let d=I?Av(C,i):l===i?C:void 0;if(c&&!Hm(d)&&(d=Av(a,i)),Hm(d)&&(s=d,r))return s;let B=t[n+1];n=r?BI(B):kd(B)}if(e!==null){let a=o?e.residualClasses:e.residualStyles;a!=null&&(s=Av(a,i))}return s}function Hm(t){return t!==void 0}function rdA(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=Zs(el(t)))),t}function JT(t,e){return(t.flags&(e?8:16))!==0}function TT(t,e,A){let i=Ut(),n=LT(i,t,e,A);GT(Xm,NT,n,!0)}var r9=class{destroy(e){}updateValue(e,A){}swap(e,A){let i=Math.min(e,A),n=Math.max(e,A),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(e,A){this.attach(A,this.detach(e))}};function gv(t,e,A,i,n){return t===A&&Object.is(e,i)?1:Object.is(n(t,e),n(A,i))?-1:0}function sdA(t,e,A){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(e)){let a=e.length-1;for(;o<=r&&o<=a;){let c=t.at(o),l=e[o],I=gv(o,c,o,l,A);if(I!==0){I<0&&t.updateValue(o,l),o++;continue}let C=t.at(r),d=e[a],B=gv(r,C,a,d,A);if(B!==0){B<0&&t.updateValue(r,d),r--,a--;continue}let E=A(o,c),Q=A(r,C),u=A(o,l);if(Object.is(u,Q)){let v=A(a,d);Object.is(v,E)?(t.swap(o,r),t.updateValue(r,d),a--,r--):t.move(r,o),t.updateValue(o,l),o++;continue}if(i??=new Om,n??=qK(t,o,r,A),s9(t,i,o,u))t.updateValue(o,l),o++,r++;else if(n.has(u))i.set(E,t.detach(o)),r--;else{let v=t.create(o,e[o]);t.attach(o,v),o++,r++}}for(;o<=a;)jK(t,i,A,o,e[o]),o++}else if(e!=null){let a=e[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let l=t.at(o),I=c.value,C=gv(o,l,o,I,A);if(C!==0)C<0&&t.updateValue(o,I),o++,c=a.next();else{i??=new Om,n??=qK(t,o,r,A);let d=A(o,I);if(s9(t,i,o,d))t.updateValue(o,I),o++,r++,c=a.next();else if(!n.has(d))t.attach(o,t.create(o,I)),o++,r++,c=a.next();else{let B=A(o,l);i.set(B,t.detach(o)),r--}}}for(;!c.done;)jK(t,i,A,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function s9(t,e,A,i){return e!==void 0&&e.has(i)?(t.attach(A,e.get(i)),e.delete(i),!0):!1}function jK(t,e,A,i,n){if(s9(t,e,i,A(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function qK(t,e,A,i){let n=new Set;for(let o=e;o<=A;o++)n.add(i(o,t.at(o)));return n}var Om=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let A=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(e,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,A){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,A)}else this.kvMap.set(e,A)}forEach(e){for(let[A,i]of this.kvMap)if(e(i,A),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),e(i,A)}}};function FA(t,e){s0("NgControlFlow");let A=Ut(),i=E2(),n=A[i]!==Ya?A[i]:-1,o=n!==-1?Pm(A,br+n):void 0,r=0;if(Ga(A,i,t)){let s=vi(null);try{if(o!==void 0&&rT(o,r),t!==-1){let a=br+t,c=Pm(A,a),l=g9(A[gi],a),I=Md(c,l.tView.ssrId),C=dQ(A,l,e,{dehydratedView:I});BQ(c,C,r,bd(l,I))}}finally{vi(s)}}else if(o!==void 0){let s=oT(o,r);s!==void 0&&(s[vr]=e)}}var a9=class{lContainer;$implicit;$index;constructor(e,A,i){this.lContainer=e,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-Is}};function Kd(t){return t}function Kn(t,e){return e}var c9=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,A,i){this.hasEmptyBlock=e,this.trackByFn=A,this.liveCollection=i}};function ln(t,e,A,i,n,o,r,s,a,c,l,I,C){s0("NgControlFlow");let d=Ut(),B=yo(),E=a!==void 0,Q=Ut(),u=s?r.bind(Q[_a][vr]):r,v=new c9(E,u);Q[br+t]=v,zm(d,B,t+1,e,A,i,n,B2(B.consts,o)),E&&zm(d,B,t+2,a,c,l,I,B2(B.consts,C))}var l9=class extends r9{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,A,i){super(),this.lContainer=e,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-Is}at(e){return this.getLView(e)[vr].$implicit}attach(e,A){let i=A[Dd];this.needsIndexUpdate||=e!==this.length,BQ(this.lContainer,A,e,bd(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,adA(this.lContainer,e)}create(e,A){let i=Md(this.lContainer,this.templateTNode.tView.ssrId),n=dQ(this.hostLView,this.templateTNode,new a9(this.lContainer,A,e),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(e){Cp(e[gi],e),this.operationsCounter?.recordDestroy()}updateValue(e,A){this.getLView(e)[vr].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(rp(!0),GJ(i,n,e2A()));function gdA(t,e,A,i,n){let o=e.consts,r=B2(o,i),s=EQ(e,t,8,"ng-container",r);r!==null&&jv(s,r,!0);let a=B2(o,n);return N9()&&Cb(e,A,s,a,ob),s.mergedAttrs=vd(s.mergedAttrs,s.attrs),e.queries!==null&&e.queries.elementStart(e,s),s}function f2(t,e,A){let i=Ut(),n=yo(),o=t+br,r=n.firstCreatePass?gdA(o,n,i,e,A):n.data[o];QI(r,!0);let s=IdA(n,i,r,t);return i[o]=s,op()&&dp(n,i,s,r),_d(s,i),tp(r)&&(gp(n,i,r),X9(n,r,i)),A!=null&&nb(i,r),f2}function m2(){let t=Xr(),e=yo();return _9()?G9():(t=t.parent,QI(t,!1)),e.firstCreatePass&&(z9(e,t),k9(t)&&e.queries.elementEnd(t)),m2}function Mr(t,e,A){return f2(t,e,A),m2(),Mr}var IdA=(t,e,A,i)=>(rp(!0),v1A(e[Uo],""));function De(){return Ut()}function Fs(t,e,A){let i=Ut(),n=E2();if(Ga(i,n,e)){let o=yo(),r=lQ();Ip(o,r,i,t,e,i[Uo],A,!0)}return Fs}function yb(t,e,A){let i=Ut(),n=E2();if(Ga(i,n,e)){let o=yo(),r=lQ(),s=K9(o.data),a=HJ(s,r,i);Ip(o,r,i,t,e,a,A,!0)}return yb}var jm="en-US";var CdA=jm;function ddA(t){typeof t=="string"&&(CdA=t.toLowerCase().replace(/_/g,"-"))}function VK(t,e,A){return function i(n){if(n===Function)return A;let o=Rd(t)?jl(t.index,e):e;Ib(o,5);let r=e[vr],s=ZK(e,r,A,n),a=i.__ngNextListenerFn__;for(;a;)s=ZK(e,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function ZK(t,e,A,i){let n=vi(null);try{return uo(6,e,A),A(i)!==!1}catch(o){return BdA(t,o),!1}finally{uo(7,e,A),vi(n)}}function BdA(t,e){let A=t[rI],i=A?A.get(Xs,null):null;i&&i.handleError(e)}function WK(t,e,A,i,n,o){let r=e[A],s=e[gi],c=s.data[A].outputs[i],l=r[c],I=s.firstCreatePass?F9(s):null,C=x9(e),d=l.subscribe(o),B=C.length;C.push(o,d),I&&I.push(n,t.index,B,-(B+1))}var EdA=new Map;function mA(t,e,A,i){let n=Ut(),o=yo(),r=Xr();return bb(o,n,n[Uo],r,t,e,i),mA}function vb(t,e){let A=Xr(),i=Ut(),n=yo(),o=K9(n.data),r=HJ(o,A,i);return bb(n,i,r,A,t,e),vb}function hdA(t,e,A,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function bb(t,e,A,i,n,o,r){let s=tp(i),c=t.firstCreatePass?F9(t):null,l=x9(e),I=!0;if(i.type&3||r){let C=Wl(i,e),d=r?r(C):C,B=l.length,E=r?u=>r(Pl(u[i.index])):i.index,Q=null;if(!r&&s&&(Q=hdA(t,e,n,i.index)),Q!==null){let u=Q.__ngLastListenerFn__||Q;u.__ngNextListenerFn__=o,Q.__ngLastListenerFn__=o,I=!1}else{o=VK(i,e,o);let u=e[rI].get(fI);EdA.get(u)?.(d,n,o);let L=A.listen(d,n,o);l.push(o,L),c&&c.push(n,E,B,B+1)}}else o=VK(i,e,o);if(I){let C=i.outputs?.[n],d=i.hostDirectiveOutputs?.[n];if(d&&d.length)for(let B=0;B=t.data.length&&(t.data[A]=null,t.blueprint[A]=null),e[A]=i}function or(t){let e=P0A();return R9(e,br+t)}function tA(t,e=""){let A=Ut(),i=yo(),n=t+br,o=i.firstCreatePass?EQ(i,n,1,e,null):i.data[n],r=mdA(i,A,o,e,t);A[n]=r,op()&&dp(i,A,r,o),QI(o,!1)}var mdA=(t,e,A,i,n)=>(rp(!0),D1A(e[Uo],i));function Mt(t){return ot("",t,""),Mt}function ot(t,e,A){let i=Ut(),n=LT(i,t,e,A);return n!==Ya&&OT(i,o0(),n),ot}function Mb(t,e,A,i,n){let o=Ut(),r=TCA(o,t,e,A,i,n);return r!==Ya&&OT(o,o0(),r),Mb}function OT(t,e,A){let i=RY(e,t);y1A(t[Uo],i,A)}function ea(t,e,A){cJ(e)&&(e=e());let i=Ut(),n=E2();if(Ga(i,n,e)){let o=yo(),r=lQ();Ip(o,r,i,t,e,i[Uo],A,!1)}return ea}function Ja(t,e){let A=cJ(t);return A&&t.set(e),A}function ta(t,e){let A=Ut(),i=yo(),n=Xr();return bb(i,A,A[Uo],n,t,e),ta}function pdA(t,e,A){let i=yo();if(i.firstCreatePass){let n=Al(t);I9(A,i.data,i.blueprint,n,!0),I9(e,i.data,i.blueprint,n,!1)}}function I9(t,e,A,i,n){if(t=Wr(t),Array.isArray(t))for(let o=0;o>20;if(wd(t)||!t.multi){let d=new II(c,n,zA),B=Cv(a,e,n?l:l+C,I);B===-1?(vv(Lm(s,r),o,a),Iv(o,t,e.length),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(d),r.push(d)):(A[B]=d,r[B]=d)}else{let d=Cv(a,e,l+C,I),B=Cv(a,e,l,l+C),E=d>=0&&A[d],Q=B>=0&&A[B];if(n&&!Q||!n&&!E){vv(Lm(s,r),o,a);let u=ydA(n?DdA:wdA,A.length,n,i,c);!n&&Q&&(A[B].providerFactory=u),Iv(o,t,e.length,0),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(u),r.push(u)}else{let u=PT(A[n?B:d],c,!n&&i);Iv(o,t,d>-1?d:B,u)}!n&&i&&Q&&A[B].componentProviders++}}}function Iv(t,e,A,i){let n=wd(e),o=p0A(e);if(n||o){let a=(o?Wr(e.useClass):e).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&e.multi){let l=c.indexOf(A);l===-1?c.push(A,[i,a]):c[l+1].push(i,a)}else c.push(A,a)}}}function PT(t,e,A){return A&&t.componentProviders++,t.multi.push(e)-1}function Cv(t,e,A,i){for(let n=A;n{A.providersResolver=(i,n)=>pdA(i,n?n(t):t,e)}}function jT(t,e,A){let i=cQ()+t,n=Ut();return n[i]===Ya?Qb(n,i,A?e.call(A):e()):xCA(n,i)}function Yr(t,e,A,i){return VT(Ut(),cQ(),t,e,A,i)}function p2(t,e,A,i,n){return ZT(Ut(),cQ(),t,e,A,i,n)}function qT(t,e){let A=t[e];return A===Ya?void 0:A}function VT(t,e,A,i,n,o){let r=e+A;return Ga(t,r,n)?Qb(t,r+1,o?i.call(o,n):i(n)):qT(t,r+1)}function ZT(t,e,A,i,n,o,r){let s=e+A;return bT(t,s,n,o)?Qb(t,s+2,r?i.call(r,n,o):i(n,o)):qT(t,s+2)}function Ta(t,e){let A=yo(),i,n=t+br;A.firstCreatePass?(i=vdA(e,A.pipeRegistry),A.data[n]=i,i.onDestroy&&(A.destroyHooks??=[]).push(n,i.onDestroy)):i=A.data[n];let o=i.factory||(i.factory=oI(i.type,!0)),r,s=Vs(zA);try{let a=Rm(!1),c=o();return Rm(a),fdA(A,Ut(),n,c),c}finally{Vs(s)}}function vdA(t,e){if(e)for(let A=e.length-1;A>=0;A--){let i=e[A];if(t===i.name)return i}}function w2(t,e,A){let i=t+br,n=Ut(),o=R9(n,i);return WT(n,i)?VT(n,cQ(),e,o.transform,A,o):o.transform(A)}function uQ(t,e,A,i){let n=t+br,o=Ut(),r=R9(o,n);return WT(o,n)?ZT(o,cQ(),e,r.transform,A,i,r):r.transform(A,i)}function WT(t,e){return t[gi].data[e].pure}function fQ(t,e){return Ep(t,e)}var dm=null;function bdA(t){dm!==null&&(t.defaultEncapsulation!==dm.defaultEncapsulation||t.preserveWhitespaces!==dm.preserveWhitespaces)||(dm=t)}var EI=class{full;major;minor;patch;constructor(e){this.full=e;let A=e.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},kb=new EI("19.2.9"),d9=class{ngModuleFactory;componentFactories;constructor(e,A){this.ngModuleFactory=e,this.componentFactories=A}},XT=(()=>{class t{compileModuleSync(A){return new Tm(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),n=QY(A),o=FJ(n.declarations).reduce((r,s)=>{let a=d2(s);return a&&r.push(new dI(a)),r},[]);return new d9(i,o)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MdA=new BA("");function kdA(t,e,A){let i=new Tm(A);return Promise.resolve(i)}function XK(t){for(let e=t.length-1;e>=0;e--)if(t[e]!==void 0)return t[e]}var SdA=(()=>{class t{zone=m(de);changeDetectionScheduler=m(CI);applicationRef=m(Ua);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function RdA({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:A}){return t??=()=>new de(Ne(nA({},$T()),{scheduleInRootZone:A})),[{provide:de,useFactory:t},{provide:pd,multi:!0,useFactory:()=>{let i=m(SdA,{optional:!0});return()=>i.initialize()}},{provide:pd,multi:!0,useFactory:()=>{let i=m(LdA);return()=>{i.initialize()}}},e===!0?{provide:iJ,useValue:!0}:[],{provide:nJ,useValue:A??tJ}]}function $T(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var LdA=(()=>{class t{subscription=new _t;initialized=!1;zone=m(de);pendingTasks=m(r0);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{de.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{de.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var xdA=(()=>{class t{appRef=m(Ua);taskService=m(r0);ngZone=m(de);zonelessEnabled=m(P9);tracing=m(Gd,{optional:!0});disableScheduling=m(iJ,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new _t;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Fm):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(m(nJ,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Nm||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?wK:oJ;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Fm+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,wK(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function FdA(){return typeof $localize<"u"&&$localize.locale||jm}var mp=new BA("",{providedIn:"root",factory:()=>m(mp,_i.Optional|_i.SkipSelf)||FdA()});var qm=new BA(""),NdA=new BA("");function jh(t){return!t.moduleRef}function _dA(t){let e=jh(t)?t.r3Injector:t.moduleRef.injector,A=e.get(de);return A.run(()=>{jh(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=e.get(Xs,null),n;if(A.runOutsideAngular(()=>{n=A.onError.subscribe({next:o=>{i.handleError(o)}})}),jh(t)){let o=()=>e.destroy(),r=t.platformInjector.get(qm);r.add(o),e.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(qm);r.add(o),t.moduleRef.onDestroy(()=>{um(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return UdA(i,A,()=>{let o=e.get(ST);return o.runInitializers(),o.donePromise.then(()=>{let r=e.get(mp,jm);if(ddA(r||jm),!e.get(NdA,!0))return jh(t)?e.get(Ua):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(jh(t)){let a=e.get(Ua);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return GdA(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function GdA(t,e){let A=t.injector.get(Ua);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(A);else throw new ZA(-403,!1);e.push(t)}function UdA(t,e,A){try{let i=A();return u2(i)?i.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}var Az=(()=>{class t{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(A){this._injector=A}bootstrapModuleFactory(A,i){let n=i?.scheduleInRootZone,o=()=>y2A(i?.ngZone,Ne(nA({},$T({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing})),{scheduleInRootZone:n})),r=i?.ignoreChangesOutsideZone,s=[RdA({ngZoneFactory:o,ignoreChangesOutsideZone:r}),{provide:CI,useExisting:xdA}],a=QCA(A.moduleType,this.injector,s);return _dA({moduleRef:a,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(A,i=[]){let n=RT({},i);return kdA(this.injector,n,A).then(o=>this.bootstrapModuleFactory(o,n))}onDestroy(A){this._destroyListeners.push(A)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ZA(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());let A=this._injector.get(qm,null);A&&(A.forEach(i=>i()),A.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||t)(he(Dt))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Wh=null,ez=new BA("");function KdA(t){if(Wh&&!Wh.get(ez,!1))throw new ZA(400,!1);UCA(),Wh=t;let e=t.get(Az);return TdA(t),e}function Sb(t,e,A=[]){let i=`Platform: ${e}`,n=new BA(i);return(o=[])=>{let r=tz();if(!r||r.injector.get(ez,!1)){let s=[...A,...o,{provide:n,useValue:!0}];t?t(s):KdA(YdA(s,i))}return JdA(n)}}function YdA(t=[],e){return Dt.create({name:e,providers:[{provide:$m,useValue:"platform"},{provide:qm,useValue:new Set([()=>Wh=null])},...t]})}function JdA(t){let e=tz();if(!e)throw new ZA(401,!1);return e}function tz(){return Wh?.get(Az)??null}function TdA(t){let e=t.get(V9,null);$s(t,()=>{e?.forEach(A=>A())})}var lt=(()=>{class t{static __NG_ELEMENT_ID__=zdA}return t})();function zdA(t){return HdA(Xr(),Ut(),(t&16)===16)}function HdA(t,e,A){if(Rd(t)&&!A){let i=jl(t.index,e);return new iQ(i,i)}else if(t.type&175){let i=e[_a];return new iQ(i,e)}return null}var B9=class{constructor(){}supports(e){return vT(e)}create(e){return new E9(e)}},OdA=(t,e)=>e,E9=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(e){this._trackByFn=e||OdA}forEachItem(e){let A;for(A=this._itHead;A!==null;A=A._next)e(A)}forEachOperation(e){let A=this._itHead,i=this._removalsHead,n=0,o=null;for(;A||i;){let r=!i||A&&A.currentIndex<$K(i,n,o)?A:i,s=$K(r,n,o),a=r.currentIndex;if(r===i)n--,i=i._nextRemoved;else if(A=A._next,r.previousIndex==null)n++;else{o||(o=[]);let c=s-n,l=a-n;if(c!=l){for(let C=0;C{r=this._trackByFn(n,s),A===null||!Object.is(A.trackById,r)?(A=this._mismatch(A,s,r,n),i=!0):(i&&(A=this._verifyReinsertion(A,s,r,n)),Object.is(A.item,s)||this._addIdentityChange(A,s)),A=A._next,n++}),this.length=n;return this._truncate(A),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,A,i,n){let o;return e===null?o=this._itTail:(o=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._reinsertAfter(e,o,n)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,n),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._moveAfter(e,o,n)):e=this._addAfter(new h9(A,i),o,n)),e}_verifyReinsertion(e,A,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?e=this._reinsertAfter(o,e._prev,n):e.currentIndex!=n&&(e.currentIndex=n,this._addToMoves(e,n)),e}_truncate(e){for(;e!==null;){let A=e._next;this._addToRemovals(this._unlink(e)),e=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);let n=e._prevRemoved,o=e._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(e,A,i),this._addToMoves(e,i),e}_moveAfter(e,A,i){return this._unlink(e),this._insertAfter(e,A,i),this._addToMoves(e,i),e}_addAfter(e,A,i){return this._insertAfter(e,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,A,i){let n=A===null?this._itHead:A._next;return e._next=n,e._prev=A,n===null?this._itTail=e:n._prev=e,A===null?this._itHead=e:A._next=e,this._linkedRecords===null&&(this._linkedRecords=new Vm),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);let A=e._prev,i=e._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,e}_addToMoves(e,A){return e.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new Vm),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,A){return e.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}},h9=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(e,A){this.item=e,this.trackById=A}},Q9=class{_head=null;_tail=null;add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){let A=e._prevDup,i=e._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},Vm=class{map=new Map;put(e){let A=e.trackById,i=this.map.get(A);i||(i=new Q9,this.map.set(A,i)),i.add(e)}get(e,A){let i=e,n=this.map.get(i);return n?n.get(e,A):null}remove(e){let A=e.trackById;return this.map.get(A).remove(e)&&this.map.delete(A),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function $K(t,e,A){let i=t.previousIndex;if(i===null)return i;let n=0;return A&&i{if(A&&A.key===n)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let o=this._getOrCreateRecordForKey(n,i);A=this._insertBeforeOrAppend(A,o)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,A){if(e){let i=e._prev;return A._next=e,A._prev=i,e._prev=A,i&&(i._next=A),e===this._mapHead&&(this._mapHead=A),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(e,A){if(this._records.has(e)){let n=this._records.get(e);this._maybeAddToChanges(n,A);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new m9(e);return this._records.set(e,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;e!==null;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;e!=null;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,A){Object.is(A,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=A,this._addToChanges(e))}_addToAdditions(e){this._additionsHead===null?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){this._changesHead===null?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,A){e instanceof Map?e.forEach(A):Object.keys(e).forEach(i=>A(e[i],i))}},m9=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(e){this.key=e}};function AY(){return new Xl([new B9])}var Xl=(()=>{class t{factories;static \u0275prov=SA({token:t,providedIn:"root",factory:AY});constructor(A){this.factories=A}static create(A,i){if(i!=null){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||AY()),deps:[[t,new rQ,new hI]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i!=null)return i;throw new ZA(901,!1)}}return t})();function eY(){return new pp([new u9])}var pp=(()=>{class t{static \u0275prov=SA({token:t,providedIn:"root",factory:eY});factories;constructor(A){this.factories=A}static create(A,i){if(i){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||eY()),deps:[[t,new rQ,new hI]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i)return i;throw new ZA(901,!1)}}return t})();var iz=Sb(null,"core",[]),nz=(()=>{class t{constructor(A){}static \u0275fac=function(i){return new(i||t)(he(Ua))};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();function ae(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function Mi(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function ia(t){return U7(t)}function c0(t,e){return _f(t,e?.equal)}var p9=class{[js];constructor(e){this[js]=e}destroy(){this[js].destroy()}};function mQ(t,e){!e?.injector&&b9(mQ);let A=e?.injector??m(Dt),i=e?.manualCleanup!==!0?A.get(Fd):null,n,o=A.get(W9,null,{optional:!0}),r=A.get(CI);return o!==null&&!e?.forceRoot?(n=qdA(o.view,r,t),i instanceof xm&&i._lView===o.view&&(i=null)):n=VdA(t,A.get(MT),r),n.injector=A,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new p9(n)}var oz=Ne(nA({},id),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:eQ,run(){if(this.dirty=!1,this.hasRun&&!xf(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),e=_h(this),A=Mm(!1);try{this.maybeCleanup(),this.fn(t)}finally{Mm(A),Lf(this,e)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),PdA=Ne(nA({},oz),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){Gh(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),jdA=Ne(nA({},oz),{consumerMarkedDirty(){this.view[Vt]|=8192,xd(this.view),this.notifier.notify(13)},destroy(){Gh(this),this.onDestroyFn(),this.maybeCleanup(),this.view[aI]?.delete(this)}});function qdA(t,e,A){let i=Object.create(jdA);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=e,i.fn=A,t[aI]??=new Set,t[aI].add(i),i.consumerMarkedDirty(i),i}function VdA(t,e,A){let i=Object.create(PdA);return i.fn=t,i.scheduler=e,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function wp(t,e){let A=d2(t),i=e.elementInjector||Ap();return new dI(A).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}function rz(t){let e=d2(t);if(!e)return null;let A=new dI(e);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}var tt=new BA("");var cz=null;function za(){return cz}function Rb(t){cz??=t}var pQ=class{},wQ=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>m(lz),providedIn:"platform"})}return t})(),Lb=new BA(""),lz=(()=>{class t extends wQ{_location;_history;_doc=m(tt);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return za().getBaseHref(this._doc)}onPopState(A){let i=za().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=za().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,n){this._history.pushState(A,i,n)}replaceState(A,i,n){this._history.replaceState(A,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Dp(t,e){return t?e?t.endsWith("/")?e.startsWith("/")?t+e.slice(1):t+e:e.startsWith("/")?t+e:`${t}/${e}`:t:e}function sz(t){let e=t.search(/#|\?|$/);return t[e-1]==="/"?t.slice(0,e-1)+t.slice(e):t}function tl(t){return t&&t[0]!=="?"?`?${t}`:t}var l0=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>m(vp),providedIn:"root"})}return t})(),yp=new BA(""),vp=(()=>{class t extends l0{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??m(tt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return Dp(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+tl(this._platformLocation.search),n=this._platformLocation.hash;return n&&A?`${i}${n}`:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+tl(o));this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+tl(o));this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(he(wQ),he(yp,8))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Qc=(()=>{class t{_subject=new HA;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=XdA(sz(az(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+tl(i))}normalize(A){return t.stripTrailingSlash(WdA(this._basePath,az(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",n=null){this._locationStrategy.pushState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+tl(i)),n)}replaceState(A,i="",n=null){this._locationStrategy.replaceState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+tl(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(n=>n(A,i))}subscribe(A,i,n){return this._subject.subscribe({next:A,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=tl;static joinWithSlash=Dp;static stripTrailingSlash=sz;static \u0275fac=function(i){return new(i||t)(he(l0))};static \u0275prov=SA({token:t,factory:()=>ZdA(),providedIn:"root"})}return t})();function ZdA(){return new Qc(he(l0))}function WdA(t,e){if(!t||!e.startsWith(t))return e;let A=e.substring(t.length);return A===""||["/",";","?","#"].includes(A[0])?A:e}function az(t){return t.replace(/\/index.html$/,"")}function XdA(t){if(new RegExp("^(https?:)?//").test(t)){let[,A]=t.split(/\/\/[^\/]+/);return A}return t}var _b=(()=>{class t extends l0{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=Dp(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+tl(o))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+tl(o))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(he(wQ),he(yp,8))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();var xb=/\s+/,gz=[],Ha=(()=>{class t{_ngEl;_renderer;initialClasses=gz;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(xb):gz}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(xb):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let n=this.stateMap.get(A);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],n=A[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(xb).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(zA(te),zA(Gi))};static \u0275dir=OA({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})();var bp=class{$implicit;ngForOf;index;count;constructor(e,A,i,n){this.$implicit=e,this.ngForOf=A,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},kp=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,n){this._viewContainer=A,this._template=i,this._differs=n}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new bp(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),Iz(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);Iz(o,n)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(zA(Un),zA(vn),zA(Xl))};static \u0275dir=OA({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function Iz(t,e){t.context.$implicit=e.item}var DQ=(()=>{class t{_viewContainer;_context=new Mp;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){Cz(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){Cz(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(zA(Un),zA(vn))};static \u0275dir=OA({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Mp=class{$implicit=null;ngIf=null};function Cz(t,e){if(t&&!t.createEmbeddedView)throw new ZA(2020,!1)}var yQ=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,n){this._ngEl=A,this._differs=i,this._renderer=n}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[n,o]=A.split("."),r=n.indexOf("-")===-1?void 0:Vl.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(zA(te),zA(pp),zA(Gi))};static \u0275dir=OA({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),vQ=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(A,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(zA(Un))};static \u0275dir=OA({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[Kt]})}return t})();function $dA(t,e){return new ZA(2100,!1)}var Fb=class{createSubscription(e,A){return ia(()=>e.subscribe({next:A,error:i=>{throw i}}))}dispose(e){ia(()=>e.unsubscribe())}},Nb=class{createSubscription(e,A){return e.then(A,i=>{throw i})}dispose(e){}},ABA=new Nb,eBA=new Fb,bQ=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(u2(A))return ABA;if(pb(A))return eBA;throw $dA(t,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(zA(lt,16))};static \u0275pipe=Qp({name:"async",type:t,pure:!1})}return t})();function tBA(t,e){return{key:t,value:e}}var MQ=(()=>{class t{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=dz;transform(A,i=dz){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let n=this.differ.diff(A),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(tBA(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(zA(pp,16))};static \u0275pipe=Qp({name:"keyvalue",type:t,pure:!1})}return t})();function dz(t,e){let A=t.key,i=e.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();function kQ(t,e){e=encodeURIComponent(e);for(let A of t.split(";")){let i=A.indexOf("="),[n,o]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(n.trim()===e)return decodeURIComponent(o)}return null}var Sp="browser",Bz="server";function $l(t){return t===Sp}function Rp(t){return t===Bz}var pI=class{};var Ez=(()=>{class t{static \u0275prov=SA({token:t,providedIn:"root",factory:()=>new Gb(m(tt),window)})}return t})(),Gb=class{document;window;offset=()=>[0,0];constructor(e,A){this.document=e,this.window=A}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){let A=iBA(this.document,e);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){let A=e.getBoundingClientRect(),i=A.left+this.window.pageXOffset,n=A.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function iBA(t,e){let A=t.getElementById(e)||t.getElementsByName(e)[0];if(A)return A;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(r)return r}n=i.nextNode()}}return null}var Fp=new BA(""),Jb=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(n=>{n.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,n,o){return this._findPluginFor(i).addEventListener(A,i,n,o)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(o=>o.supports(A)),!i)throw new ZA(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||t)(he(Fp),he(de))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),SQ=class{_doc;constructor(e){this._doc=e}manager},Lp="ng-app-id";function hz(t){for(let e of t)e.remove()}function Qz(t,e){let A=e.createElement("style");return A.textContent=t,A}function nBA(t,e,A,i){let n=t.head?.querySelectorAll(`style[${Lp}="${e}"],link[${Lp}="${e}"]`);if(n)for(let o of n)o.removeAttribute(Lp),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&A.set(o.textContent,{usage:0,elements:[o]})}function Kb(t,e){let A=e.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",t),A}var Tb=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,n,o={}){this.doc=A,this.appId=i,this.nonce=n,this.isServer=Rp(o),nBA(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let n of A)this.addUsage(n,this.inline,Qz);i?.forEach(n=>this.addUsage(n,this.external,Kb))}removeStyles(A,i){for(let n of A)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(A,i,n){let o=i.get(A);o?o.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(A,this.doc)))})}removeUsage(A,i){let n=i.get(A);n&&(n.usage--,n.usage<=0&&(hz(n.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])hz(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(A,Qz(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(A,Kb(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(Lp,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||t)(he(tt),he(fI),he(gQ,8),he(hc))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),Ub={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},zb=/%COMP%/g;var fz="%COMP%",oBA=`_nghost-${fz}`,rBA=`_ngcontent-${fz}`,sBA=!0,aBA=new BA("",{providedIn:"root",factory:()=>sBA});function cBA(t){return rBA.replace(zb,t)}function lBA(t){return oBA.replace(zb,t)}function mz(t,e){return e.map(A=>A.replace(zb,t))}var xQ=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,n,o,r,s,a,c=null,l=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=l,this.platformIsServer=Rp(s),this.defaultRenderer=new RQ(A,r,a,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===ql.ShadowDom&&(i=Ne(nA({},i),{encapsulation:ql.Emulated}));let n=this.getOrCreateRenderer(A,i);return n instanceof xp?n.applyToHost(A):n instanceof LQ&&n.applyStyles(),n}getOrCreateRenderer(A,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,I=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case ql.Emulated:o=new xp(a,c,i,this.appId,l,r,s,I,C);break;case ql.ShadowDom:return new Yb(a,c,A,i,r,s,this.nonce,I,C);default:o=new LQ(a,c,i,l,r,s,I,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||t)(he(Jb),he(Tb),he(fI),he(aBA),he(tt),he(hc),he(de),he(gQ),he(Gd,8))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),RQ=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,A,i,n,o){this.eventManager=e,this.doc=A,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(e,A){return A?this.doc.createElementNS(Ub[A]||A,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,A){(uz(e)?e.content:e).appendChild(A)}insertBefore(e,A,i){e&&(uz(e)?e.content:e).insertBefore(A,i)}removeChild(e,A){A.remove()}selectRootElement(e,A){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new ZA(-5104,!1);return A||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,A,i,n){if(n){A=n+":"+A;let o=Ub[n];o?e.setAttributeNS(o,A,i):e.setAttribute(A,i)}else e.setAttribute(A,i)}removeAttribute(e,A,i){if(i){let n=Ub[i];n?e.removeAttributeNS(n,A):e.removeAttribute(`${i}:${A}`)}else e.removeAttribute(A)}addClass(e,A){e.classList.add(A)}removeClass(e,A){e.classList.remove(A)}setStyle(e,A,i,n){n&(Vl.DashCase|Vl.Important)?e.style.setProperty(A,i,n&Vl.Important?"important":""):e.style[A]=i}removeStyle(e,A,i){i&Vl.DashCase?e.style.removeProperty(A):e.style[A]=""}setProperty(e,A,i){e!=null&&(e[A]=i)}setValue(e,A){e.nodeValue=A}listen(e,A,i,n){if(typeof e=="string"&&(e=za().getGlobalEventTarget(this.doc,e),!e))throw new ZA(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(e,A,o)),this.eventManager.addEventListener(e,A,o,n)}decoratePreventDefault(e){return A=>{if(A==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(A)):e(A))===!1&&A.preventDefault()}}};function uz(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var Yb=class extends RQ{sharedStylesHost;hostEl;shadowRoot;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,a,c),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let l=n.styles;l=mz(n.id,l);for(let C of l){let d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=C,this.shadowRoot.appendChild(d)}let I=n.getExternalStyles?.();if(I)for(let C of I){let d=Kb(C,o);s&&d.setAttribute("nonce",s),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,A){return super.appendChild(this.nodeOrShadowRoot(e),A)}insertBefore(e,A,i){return super.insertBefore(this.nodeOrShadowRoot(e),A,i)}removeChild(e,A){return super.removeChild(null,A)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},LQ=class extends RQ{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,s,a),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=n;let l=i.styles;this.styles=c?mz(c,l):l,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},xp=class extends LQ{contentAttr;hostAttr;constructor(e,A,i,n,o,r,s,a,c){let l=n+"-"+i.id;super(e,A,i,o,r,s,a,c,l),this.contentAttr=cBA(l),this.hostAttr=lBA(l)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,A){let i=super.createElement(e,A);return super.setAttribute(i,this.contentAttr,""),i}};var Np=class t extends pQ{supportsDOMEvents=!0;static makeCurrent(){Rb(new t)}onAndCancel(e,A,i,n){return e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)}}dispatchEvent(e,A){e.dispatchEvent(A)}remove(e){e.remove()}createElement(e,A){return A=A||this.getDefaultDocument(),A.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,A){return A==="window"?window:A==="document"?e:A==="body"?e.body:null}getBaseHref(e){let A=gBA();return A==null?null:IBA(A)}resetBaseElement(){FQ=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return kQ(document.cookie,e)}},FQ=null;function gBA(){return FQ=FQ||document.querySelector("base"),FQ?FQ.getAttribute("href"):null}function IBA(t){return new URL(t,document.baseURI).pathname}var _p=class{addToWindow(e){Ws.getAngularTestability=(i,n=!0)=>{let o=e.findTestabilityInTree(i,n);if(o==null)throw new ZA(5103,!1);return o},Ws.getAllAngularTestabilities=()=>e.getAllTestabilities(),Ws.getAllAngularRootElements=()=>e.getAllRootElements();let A=i=>{let n=Ws.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};Ws.frameworkStabilizers||(Ws.frameworkStabilizers=[]),Ws.frameworkStabilizers.push(A)}findTestabilityInTree(e,A,i){if(A==null)return null;let n=e.getTestability(A);return n??(i?za().isShadowRoot(A)?this.findTestabilityInTree(e,A.host,!0):this.findTestabilityInTree(e,A.parentElement,!0):null)}},CBA=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),wz=(()=>{class t extends SQ{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,n,o){return A.addEventListener(i,n,o),()=>this.removeEventListener(A,i,n,o)}removeEventListener(A,i,n,o){return A.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(he(tt))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),pz=["alt","control","meta","shift"],dBA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},BBA={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},Dz=(()=>{class t extends SQ{constructor(A){super(A)}supports(A){return t.parseEventName(A)!=null}addEventListener(A,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>za().onAndCancel(A,r.domEventName,s,o))}static parseEventName(A){let i=A.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),pz.forEach(c=>{let l=i.indexOf(c);l>-1&&(i.splice(l,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(A,i){let n=dBA[A.key]||A.key,o="";return i.indexOf("code.")>-1&&(n=A.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),pz.forEach(r=>{if(r!==n){let s=BBA[r];s(A)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(A,i,n){return o=>{t.matchEventFullKeyCode(o,A)&&n.runGuarded(()=>i(o))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||t)(he(tt))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();function EBA(){Np.makeCurrent()}function hBA(){return new Xs}function QBA(){return EJ(document),document}var uBA=[{provide:hc,useValue:Sp},{provide:V9,useValue:EBA,multi:!0},{provide:tt,useFactory:QBA}],Gp=Sb(iz,"browser",uBA);var fBA=[{provide:QQ,useClass:_p},{provide:fb,useClass:up,deps:[de,fp,QQ]},{provide:up,useClass:up,deps:[de,fp,QQ]}],mBA=[{provide:$m,useValue:"root"},{provide:Xs,useFactory:hBA},{provide:Fp,useClass:wz,multi:!0,deps:[tt]},{provide:Fp,useClass:Dz,multi:!0,deps:[tt]},xQ,Tb,Jb,{provide:ds,useExisting:xQ},{provide:pI,useClass:CBA},[]],NQ=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[...mBA,...fBA],imports:[g0,nz]})}return t})();var Jd=class{},_Q=class{},y2=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(e){e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` +`).forEach(A=>{let i=A.indexOf(":");if(i>0){let n=A.slice(0,i),o=A.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();let A=this.headers.get(e.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,A){return this.clone({name:e,value:A,op:"a"})}set(e,A){return this.clone({name:e,value:A,op:"s"})}delete(e,A){return this.clone({name:e,value:A,op:"d"})}maybeSetNormalizedName(e,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,e)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(A=>{this.headers.set(A,e.headers.get(A)),this.normalizedNames.set(A,e.normalizedNames.get(A))})}clone(e){let A=new t;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([e]),A}applyUpdate(e){let A=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,A);let n=(e.op==="a"?this.headers.get(A):void 0)||[];n.push(...i),this.headers.set(A,n);break;case"d":let o=e.value;if(!o)this.headers.delete(A),this.normalizedNames.delete(A);else{let r=this.headers.get(A);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,r)}break}}addHeaderEntry(e,A){let i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(e,A){let i=(Array.isArray(A)?A:[A]).map(o=>o.toString()),n=e.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(e,n)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>e(this.normalizedNames.get(A),this.headers.get(A)))}};var Kp=class{encodeKey(e){return yz(e)}encodeValue(e){return yz(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}};function pBA(t,e){let A=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[e.decodeKey(n),""]:[e.decodeKey(n.slice(0,o)),e.decodeValue(n.slice(o+1))],a=A.get(r)||[];a.push(s),A.set(r,a)}),A}var wBA=/%(\d[a-f0-9])/gi,DBA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function yz(t){return encodeURIComponent(t).replace(wBA,(e,A)=>DBA[A]??e)}function Up(t){return`${t}`}var I0=class t{map;encoder;updates=null;cloneFrom=null;constructor(e={}){if(this.encoder=e.encoder||new Kp,e.fromString){if(e.fromObject)throw new ZA(2805,!1);this.map=pBA(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(A=>{let i=e.fromObject[A],n=Array.isArray(i)?i.map(Up):[Up(i)];this.map.set(A,n)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();let A=this.map.get(e);return A?A[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,A){return this.clone({param:e,value:A,op:"a"})}appendAll(e){let A=[];return Object.keys(e).forEach(i=>{let n=e[i];Array.isArray(n)?n.forEach(o=>{A.push({param:i,value:o,op:"a"})}):A.push({param:i,value:n,op:"a"})}),this.clone(A)}set(e,A){return this.clone({param:e,value:A,op:"s"})}delete(e,A){return this.clone({param:e,value:A,op:"d"})}toString(){return this.init(),this.keys().map(e=>{let A=this.encoder.encodeKey(e);return this.map.get(e).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){let A=new t({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(e),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":let A=(e.op==="a"?this.map.get(e.param):void 0)||[];A.push(Up(e.value)),this.map.set(e.param,A);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[],n=i.indexOf(Up(e.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}};var Yp=class{map=new Map;set(e,A){return this.map.set(e,A),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}};function yBA(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function vz(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function bz(t){return typeof Blob<"u"&&t instanceof Blob}function Mz(t){return typeof FormData<"u"&&t instanceof FormData}function vBA(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var kz="Content-Type",Sz="Accept",Lz="X-Request-URL",xz="text/plain",Fz="application/json",bBA=`${Fz}, ${xz}, */*`,Yd=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(e,A,i,n){this.url=A,this.method=e.toUpperCase();let o;if(yBA(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new y2,this.context??=new Yp,!this.params)this.params=new I0,this.urlWithParams=A;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=A;else{let s=A.indexOf("?"),a=s===-1?"?":sC.set(d,e.setHeaders[d]),c)),e.setParams&&(l=Object.keys(e.setParams).reduce((C,d)=>C.set(d,e.setParams[d]),l)),new t(A,i,r,{params:l,headers:c,context:I,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},wI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(wI||{}),Td=class{headers;status;statusText;url;ok;type;constructor(e,A=200,i="OK"){this.headers=e.headers||new y2,this.status=e.status!==void 0?e.status:A,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}},Jp=class t extends Td{constructor(e={}){super(e)}type=wI.ResponseHeader;clone(e={}){return new t({headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},GQ=class t extends Td{body;constructor(e={}){super(e),this.body=e.body!==void 0?e.body:null}type=wI.Response;clone(e={}){return new t({body:e.body!==void 0?e.body:this.body,headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},UQ=class extends Td{name="HttpErrorResponse";message;error;ok=!1;constructor(e){super(e,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${e.url||"(unknown url)"}`:this.message=`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}},MBA=200,kBA=204;function Hb(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var Bs=(()=>{class t{handler;constructor(A){this.handler=A}request(A,i,n={}){let o;if(A instanceof Yd)o=A;else{let a;n.headers instanceof y2?a=n.headers:a=new y2(n.headers);let c;n.params&&(n.params instanceof I0?c=n.params:c=new I0({fromObject:n.params})),o=new Yd(A,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=ve(o).pipe(Jl(a=>this.handler.handle(a)));if(A instanceof Yd||n.observe==="events")return r;let s=r.pipe(pt(a=>a instanceof GQ));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(Je(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new ZA(2806,!1);return a.body}));case"blob":return s.pipe(Je(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new ZA(2807,!1);return a.body}));case"text":return s.pipe(Je(a=>{if(a.body!==null&&typeof a.body!="string")throw new ZA(2808,!1);return a.body}));case"json":default:return s.pipe(Je(a=>a.body))}case"response":return s;default:throw new ZA(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new I0().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,n={}){return this.request("PATCH",A,Hb(n,i))}post(A,i,n={}){return this.request("POST",A,Hb(n,i))}put(A,i,n={}){return this.request("PUT",A,Hb(n,i))}static \u0275fac=function(i){return new(i||t)(he(Jd))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();var SBA=new BA("");function Nz(t,e){return e(t)}function RBA(t,e){return(A,i)=>e.intercept(A,{handle:n=>t(n,i)})}function LBA(t,e,A){return(i,n)=>$s(A,()=>e(i,o=>t(o,n)))}var _z=new BA(""),Pb=new BA(""),Gz=new BA(""),jb=new BA("",{providedIn:"root",factory:()=>!0});function xBA(){let t=null;return(e,A)=>{t===null&&(t=(m(_z,{optional:!0})??[]).reduceRight(RBA,Nz));let i=m(r0);if(m(jb)){let o=i.add();return t(e,A).pipe(Tl(()=>i.remove(o)))}else return t(e,A)}}var Tp=(()=>{class t extends Jd{backend;injector;chain=null;pendingTasks=m(r0);contributeToStability=m(jb);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(Pb),...this.injector.get(Gz,[])]));this.chain=i.reduceRight((n,o)=>LBA(n,o,this.injector),Nz)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,n=>this.backend.handle(n)).pipe(Tl(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(he(_Q),he(Br))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();var FBA=/^\)\]\}',?\n/,NBA=RegExp(`^${Lz}:`,"m");function _BA(t){return"responseURL"in t&&t.responseURL?t.responseURL:NBA.test(t.getAllResponseHeaders())?t.getResponseHeader(Lz):null}var Ob=(()=>{class t{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new ZA(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?On(i.\u0275loadImpl()):ve(null)).pipe(no(()=>new Ze(o=>{let r=i.build();if(r.open(A.method,A.urlWithParams),A.withCredentials&&(r.withCredentials=!0),A.headers.forEach((E,Q)=>r.setRequestHeader(E,Q.join(","))),A.headers.has(Sz)||r.setRequestHeader(Sz,bBA),!A.headers.has(kz)){let E=A.detectContentTypeHeader();E!==null&&r.setRequestHeader(kz,E)}if(A.responseType){let E=A.responseType.toLowerCase();r.responseType=E!=="json"?E:"text"}let s=A.serializeBody(),a=null,c=()=>{if(a!==null)return a;let E=r.statusText||"OK",Q=new y2(r.getAllResponseHeaders()),u=_BA(r)||A.url;return a=new Jp({headers:Q,status:r.status,statusText:E,url:u}),a},l=()=>{let{headers:E,status:Q,statusText:u,url:v}=c(),L=null;Q!==kBA&&(L=typeof r.response>"u"?r.responseText:r.response),Q===0&&(Q=L?MBA:0);let x=Q>=200&&Q<300;if(A.responseType==="json"&&typeof L=="string"){let y=L;L=L.replace(FBA,"");try{L=L!==""?JSON.parse(L):null}catch(F){L=y,x&&(x=!1,L={error:F,text:L})}}x?(o.next(new GQ({body:L,headers:E,status:Q,statusText:u,url:v||void 0})),o.complete()):o.error(new UQ({error:L,headers:E,status:Q,statusText:u,url:v||void 0}))},I=E=>{let{url:Q}=c(),u=new UQ({error:E,status:r.status||0,statusText:r.statusText||"Unknown Error",url:Q||void 0});o.error(u)},C=!1,d=E=>{C||(o.next(c()),C=!0);let Q={type:wI.DownloadProgress,loaded:E.loaded};E.lengthComputable&&(Q.total=E.total),A.responseType==="text"&&r.responseText&&(Q.partialText=r.responseText),o.next(Q)},B=E=>{let Q={type:wI.UploadProgress,loaded:E.loaded};E.lengthComputable&&(Q.total=E.total),o.next(Q)};return r.addEventListener("load",l),r.addEventListener("error",I),r.addEventListener("timeout",I),r.addEventListener("abort",I),A.reportProgress&&(r.addEventListener("progress",d),s!==null&&r.upload&&r.upload.addEventListener("progress",B)),r.send(s),o.next({type:wI.Sent}),()=>{r.removeEventListener("error",I),r.removeEventListener("abort",I),r.removeEventListener("load",l),r.removeEventListener("timeout",I),A.reportProgress&&(r.removeEventListener("progress",d),s!==null&&r.upload&&r.upload.removeEventListener("progress",B)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(he(pI))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),Uz=new BA(""),GBA="XSRF-TOKEN",UBA=new BA("",{providedIn:"root",factory:()=>GBA}),KBA="X-XSRF-TOKEN",YBA=new BA("",{providedIn:"root",factory:()=>KBA}),KQ=class{},JBA=(()=>{class t{doc;platform;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i,n){this.doc=A,this.platform=i,this.cookieName=n}getToken(){if(this.platform==="server")return null;let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=kQ(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||t)(he(tt),he(hc),he(UBA))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();function TBA(t,e){let A=t.url.toLowerCase();if(!m(Uz)||t.method==="GET"||t.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return e(t);let i=m(KQ).getToken(),n=m(YBA);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),e(t)}var qb=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(qb||{});function zBA(t,e){return{\u0275kind:t,\u0275providers:e}}function Kz(...t){let e=[Bs,Ob,Tp,{provide:Jd,useExisting:Tp},{provide:_Q,useFactory:()=>m(SBA,{optional:!0})??m(Ob)},{provide:Pb,useValue:TBA,multi:!0},{provide:Uz,useValue:!0},{provide:KQ,useClass:JBA}];for(let A of t)e.push(...A.\u0275providers);return aQ(e)}var Rz=new BA("");function Yz(){return zBA(qb.LegacyInterceptors,[{provide:Rz,useFactory:xBA},{provide:Pb,useExisting:Rz,multi:!0}])}var Vb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[Kz(Yz())]})}return t})();var Jz=(()=>{class t{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||t)(he(tt))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var il=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=he(HBA),n},providedIn:"root"})}return t})(),HBA=(()=>{class t extends il{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case Kr.NONE:return i;case Kr.HTML:return Q2(i,"HTML")?el(i):$9(this._doc,String(i)).toString();case Kr.STYLE:return Q2(i,"Style")?el(i):i;case Kr.SCRIPT:if(Q2(i,"Script"))return el(i);throw new ZA(5200,!1);case Kr.URL:return Q2(i,"URL")?el(i):ap(String(i));case Kr.RESOURCE_URL:if(Q2(i,"ResourceURL"))return el(i);throw new ZA(5201,!1);default:throw new ZA(5202,!1)}}bypassSecurityTrustHtml(A){return wJ(A)}bypassSecurityTrustStyle(A){return DJ(A)}bypassSecurityTrustScript(A){return yJ(A)}bypassSecurityTrustUrl(A){return vJ(A)}bypassSecurityTrustResourceUrl(A){return bJ(A)}static \u0275fac=function(i){return new(i||t)(he(tt))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Vz=(()=>{class t{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||t)(zA(Gi),zA(te))};static \u0275dir=OA({type:t})}return t})(),OBA=(()=>{class t extends Vz{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,features:[et]})}return t})(),uc=new BA("");var PBA={provide:uc,useExisting:nr(()=>fc),multi:!0};function jBA(){let t=za()?za().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var qBA=new BA(""),fc=(()=>{class t extends Vz{_compositionMode;_composing=!1;constructor(A,i,n){super(A,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!jBA())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||t)(zA(Gi),zA(te),zA(qBA,8))};static \u0275dir=OA({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&mA("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[ct([PBA]),et]})}return t})();function $b(t){return t==null||AM(t)===0}function AM(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var d0=new BA(""),PQ=new BA(""),VBA=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Oa=class{static min(e){return ZBA(e)}static max(e){return WBA(e)}static required(e){return XBA(e)}static requiredTrue(e){return $BA(e)}static email(e){return AEA(e)}static minLength(e){return eEA(e)}static maxLength(e){return tEA(e)}static pattern(e){return iEA(e)}static nullValidator(e){return Zz()}static compose(e){return tH(e)}static composeAsync(e){return iH(e)}};function ZBA(t){return e=>{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A>t?{max:{max:t,actual:e.value}}:null}}function XBA(t){return $b(t.value)?{required:!0}:null}function $BA(t){return t.value===!0?null:{required:!0}}function AEA(t){return $b(t.value)||VBA.test(t.value)?null:{email:!0}}function eEA(t){return e=>{let A=e.value?.length??AM(e.value);return A===null||A===0?null:A{let A=e.value?.length??AM(e.value);return A!==null&&A>t?{maxlength:{requiredLength:t,actualLength:A}}:null}}function iEA(t){if(!t)return Zz;let e,A;return typeof t=="string"?(A="",t.charAt(0)!=="^"&&(A+="^"),A+=t,t.charAt(t.length-1)!=="$"&&(A+="$"),e=new RegExp(A)):(A=t.toString(),e=t),i=>{if($b(i.value))return null;let n=i.value;return e.test(n)?null:{pattern:{requiredPattern:A,actualValue:n}}}}function Zz(t){return null}function Wz(t){return t!=null}function Xz(t){return u2(t)?On(t):t}function $z(t){let e={};return t.forEach(A=>{e=A!=null?nA(nA({},e),A):e}),Object.keys(e).length===0?null:e}function AH(t,e){return e.map(A=>A(t))}function nEA(t){return!t.validate}function eH(t){return t.map(e=>nEA(e)?e:A=>e.validate(A))}function tH(t){if(!t)return null;let e=t.filter(Wz);return e.length==0?null:function(A){return $z(AH(A,e))}}function eM(t){return t!=null?tH(eH(t)):null}function iH(t){if(!t)return null;let e=t.filter(Wz);return e.length==0?null:function(A){let i=AH(A,e).map(Xz);return Hh(i).pipe(Je($z))}}function tM(t){return t!=null?iH(eH(t)):null}function Tz(t,e){return t===null?[e]:Array.isArray(t)?[...t,e]:[t,e]}function nH(t){return t._rawValidators}function oH(t){return t._rawAsyncValidators}function Zb(t){return t?Array.isArray(t)?t:[t]:[]}function Hp(t,e){return Array.isArray(t)?t.includes(e):t===e}function zz(t,e){let A=Zb(e);return Zb(t).forEach(n=>{Hp(A,n)||A.push(n)}),A}function Hz(t,e){return Zb(e).filter(A=>!Hp(t,A))}var Op=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=eM(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=tM(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,A){return this.control?this.control.hasError(e,A):!1}getError(e,A){return this.control?this.control.getError(e,A):null}},C0=class extends Op{name;get formDirective(){return null}get path(){return null}},Pa=class extends Op{_parent=null;name=null;valueAccessor=null},Pp=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},oEA={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},ore=Ne(nA({},oEA),{"[class.ng-submitted]":"isSubmitted"}),na=(()=>{class t extends Pp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(zA(Pa,2))};static \u0275dir=OA({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&ue("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[et]})}return t})(),rH=(()=>{class t extends Pp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(zA(C0,10))};static \u0275dir=OA({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&ue("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[et]})}return t})();var YQ="VALID",zp="INVALID",zd="PENDING",JQ="DISABLED",v2=class{},jp=class extends v2{value;source;constructor(e,A){super(),this.value=e,this.source=A}},zQ=class extends v2{pristine;source;constructor(e,A){super(),this.pristine=e,this.source=A}},HQ=class extends v2{touched;source;constructor(e,A){super(),this.touched=e,this.source=A}},Hd=class extends v2{status;source;constructor(e,A){super(),this.status=e,this.source=A}},qp=class extends v2{source;constructor(e){super(),this.source=e}},Vp=class extends v2{source;constructor(e){super(),this.source=e}};function iM(t){return($p(t)?t.validators:t)||null}function rEA(t){return Array.isArray(t)?eM(t):t||null}function nM(t,e){return($p(e)?e.asyncValidators:t)||null}function sEA(t){return Array.isArray(t)?tM(t):t||null}function $p(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function sH(t,e,A){let i=t.controls;if(!(e?Object.keys(i):i).length)throw new ZA(1e3,"");if(!i[A])throw new ZA(1001,"")}function aH(t,e,A){t._forEachChild((i,n)=>{if(A[n]===void 0)throw new ZA(1002,"")})}var Od=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,A){this._assignValidators(e),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return ia(this.statusReactive)}set status(e){ia(()=>this.statusReactive.set(e))}_status=c0(()=>this.statusReactive());statusReactive=Ko(void 0);get valid(){return this.status===YQ}get invalid(){return this.status===zp}get pending(){return this.status==zd}get disabled(){return this.status===JQ}get enabled(){return this.status!==JQ}errors;get pristine(){return ia(this.pristineReactive)}set pristine(e){ia(()=>this.pristineReactive.set(e))}_pristine=c0(()=>this.pristineReactive());pristineReactive=Ko(!0);get dirty(){return!this.pristine}get touched(){return ia(this.touchedReactive)}set touched(e){ia(()=>this.touchedReactive.set(e))}_touched=c0(()=>this.touchedReactive());touchedReactive=Ko(!1);get untouched(){return!this.touched}_events=new HA;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(zz(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(zz(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(Hz(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(Hz(e,this._rawAsyncValidators))}hasValidator(e){return Hp(this._rawValidators,e)}hasAsyncValidator(e){return Hp(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let A=this.touched===!1;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(Ne(nA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new HQ(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(e))}markAsUntouched(e={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),A&&e.emitEvent!==!1&&this._events.next(new HQ(!1,i))}markAsDirty(e={}){let A=this.pristine===!0;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(Ne(nA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new zQ(!1,i))}markAsPristine(e={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),A&&e.emitEvent!==!1&&this._events.next(new zQ(!0,i))}markAsPending(e={}){this.status=zd;let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Hd(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(Ne(nA({},e),{sourceControl:A}))}disable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=JQ,this.errors=null,this._forEachChild(n=>{n.disable(Ne(nA({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new jp(this.value,i)),this._events.next(new Hd(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Ne(nA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=YQ,this._forEachChild(i=>{i.enable(Ne(nA({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Ne(nA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e,A){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===YQ||this.status===zd)&&this._runAsyncValidator(i,e.emitEvent)}let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new jp(this.value,A)),this._events.next(new Hd(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(Ne(nA({},e),{sourceControl:A}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?JQ:YQ}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,A){if(this.asyncValidator){this.status=zd,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=Xz(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:A,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,A={}){this.errors=e,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(e){let A=e;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,n)=>i&&i._find(n),this)}getError(e,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[e]:null}hasError(e,A){return!!this.getError(e,A)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,A,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new Hd(this.status,A)),this._parent&&this._parent._updateControlsErrors(e,A,i)}_initObservables(){this.valueChanges=new XA,this.statusChanges=new XA}_calculateStatus(){return this._allControlsDisabled()?JQ:this.errors?zp:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(zd)?zd:this._anyControlsHaveStatus(zp)?zp:YQ}_anyControlsHaveStatus(e){return this._anyControls(A=>A.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,A){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,A),n&&this._events.next(new zQ(this.pristine,A))}_updateTouched(e={},A){this.touched=this._anyControlsTouched(),this._events.next(new HQ(this.touched,A)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,A)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){$p(e)&&e.updateOn!=null&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let A=this._parent&&this._parent.dirty;return!e&&!!A&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=rEA(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=sEA(this._rawAsyncValidators)}},Pd=class extends Od{constructor(e,A,i){super(iM(A),nM(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(e,A){return this.controls[e]?this.controls[e]:(this.controls[e]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(e,A,i={}){this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(e,A={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(e,A,i={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],A&&this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,A={}){aH(this,!0,e),Object.keys(e).forEach(i=>{sH(this,!0,i),this.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(Object.keys(e).forEach(i=>{let n=this.controls[i];n&&n.patchValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e={},A={}){this._forEachChild((i,n)=>{i.reset(e?e[n]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(e,A,i)=>(e[i]=A.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&e(i,A)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&e(i))return!0;return!1}_reduceValue(){let e={};return this._reduceChildren(e,(A,i,n)=>((i.enabled||this.disabled)&&(A[n]=i.value),A))}_reduceChildren(e,A){let i=e;return this._forEachChild((n,o)=>{i=A(i,n,o)}),i}_allControlsDisabled(){for(let e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}};var Wb=class extends Pd{};var jd=new BA("",{providedIn:"root",factory:()=>A6}),A6="always";function cH(t,e){return[...e.path,t]}function OQ(t,e,A=A6){oM(t,e),e.valueAccessor.writeValue(t.value),(t.disabled||A==="always")&&e.valueAccessor.setDisabledState?.(t.disabled),cEA(t,e),gEA(t,e),lEA(t,e),aEA(t,e)}function Zp(t,e,A=!0){let i=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(i),e.valueAccessor.registerOnTouched(i)),Xp(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function Wp(t,e){t.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(e)})}function aEA(t,e){if(e.valueAccessor.setDisabledState){let A=i=>{e.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(A),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(A)})}}function oM(t,e){let A=nH(t);e.validator!==null?t.setValidators(Tz(A,e.validator)):typeof A=="function"&&t.setValidators([A]);let i=oH(t);e.asyncValidator!==null?t.setAsyncValidators(Tz(i,e.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();Wp(e._rawValidators,n),Wp(e._rawAsyncValidators,n)}function Xp(t,e){let A=!1;if(t!==null){if(e.validator!==null){let n=nH(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.validator);o.length!==n.length&&(A=!0,t.setValidators(o))}}if(e.asyncValidator!==null){let n=oH(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.asyncValidator);o.length!==n.length&&(A=!0,t.setAsyncValidators(o))}}}let i=()=>{};return Wp(e._rawValidators,i),Wp(e._rawAsyncValidators,i),A}function cEA(t,e){e.valueAccessor.registerOnChange(A=>{t._pendingValue=A,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&lH(t,e)})}function lEA(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&lH(t,e),t.updateOn!=="submit"&&t.markAsTouched()})}function lH(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function gEA(t,e){let A=(i,n)=>{e.valueAccessor.writeValue(i),n&&e.viewToModelUpdate(i)};t.registerOnChange(A),e._registerOnDestroy(()=>{t._unregisterOnChange(A)})}function gH(t,e){t==null,oM(t,e)}function IEA(t,e){return Xp(t,e)}function rM(t,e){if(!t.hasOwnProperty("model"))return!1;let A=t.model;return A.isFirstChange()?!0:!Object.is(e,A.currentValue)}function CEA(t){return Object.getPrototypeOf(t.constructor)===OBA}function IH(t,e){t._syncPendingControls(),e.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sM(t,e){if(!e)return null;Array.isArray(e);let A,i,n;return e.forEach(o=>{o.constructor===fc?A=o:CEA(o)?i=o:n=o}),n||i||A||null}function dEA(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}var BEA={provide:C0,useExisting:nr(()=>jQ)},TQ=Promise.resolve(),jQ=(()=>{class t extends C0{callSetDisabledState;get submitted(){return ia(this.submittedReactive)}_submitted=c0(()=>this.submittedReactive());submittedReactive=Ko(!1);_directives=new Set;form;ngSubmit=new XA;options;constructor(A,i,n){super(),this.callSetDisabledState=n,this.form=new Pd({},eM(A),tM(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){TQ.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),OQ(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){TQ.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){TQ.then(()=>{let i=this._findContainer(A.path),n=new Pd({});gH(n,A),i.registerControl(A.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){TQ.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){TQ.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),IH(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new qp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new Vp(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||t)(zA(d0,10),zA(PQ,10),zA(jd,8))};static \u0275dir=OA({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ct([BEA]),et]})}return t})();function Oz(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function Pz(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var vI=class extends Od{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,A,i){super(iM(A),nM(i,A)),this._applyFormState(e),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),$p(A)&&(A.nonNullable||A.initialValueIsDefault)&&(Pz(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,A={}){this.value=this._pendingValue=e,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(e,A={}){this.setValue(e,A)}reset(e=this.defaultValue,A={}){this._applyFormState(e),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){Oz(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){Oz(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(e){Pz(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}};var EEA=t=>t instanceof vI;var hEA={provide:Pa,useExisting:nr(()=>ja)},jz=Promise.resolve(),ja=(()=>{class t extends Pa{_changeDetectorRef;callSetDisabledState;control=new vI;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new XA;constructor(A,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sM(this,o)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),rM(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){OQ(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){jz.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,n=i!==0&&ae(i);jz.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?cH(A,this._parent):[A]}static \u0275fac=function(i){return new(i||t)(zA(C0,9),zA(d0,10),zA(PQ,10),zA(uc,10),zA(lt,8),zA(jd,8))};static \u0275dir=OA({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ct([hEA]),et,Kt]})}return t})();var CH=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();var aM=new BA(""),QEA={provide:Pa,useExisting:nr(()=>cM)},cM=(()=>{class t extends Pa{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new XA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=sM(this,n)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&Zp(i,this,!1),OQ(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rM(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Zp(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(zA(d0,10),zA(PQ,10),zA(uc,10),zA(aM,8),zA(jd,8))};static \u0275dir=OA({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[ct([QEA]),et,Kt]})}return t})(),uEA={provide:C0,useExisting:nr(()=>bI)},bI=(()=>{class t extends C0{callSetDisabledState;get submitted(){return ia(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=c0(()=>this._submittedReactive());_submittedReactive=Ko(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new XA;constructor(A,i,n){super(),this.callSetDisabledState=n,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Xp(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return OQ(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){Zp(A.control||null,A,!1),dEA(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),IH(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new qp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new Vp(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,n=this.form.get(A.path);i!==n&&(Zp(i||null,A),EEA(n)&&(OQ(n,A,this.callSetDisabledState),A.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);gH(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&IEA(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){oM(this.form,this),this._oldForm&&Xp(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(zA(d0,10),zA(PQ,10),zA(jd,8))};static \u0275dir=OA({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ct([uEA]),et,Kt]})}return t})();var fEA={provide:Pa,useExisting:nr(()=>lM)},lM=(()=>{class t extends Pa{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new XA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sM(this,o)}ngOnChanges(A){this._added||this._setUpControl(),rM(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return cH(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(zA(C0,13),zA(d0,10),zA(PQ,10),zA(uc,10),zA(aM,8))};static \u0275dir=OA({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ct([fEA]),et,Kt]})}return t})();var dH=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})(),Xb=class extends Od{constructor(e,A,i){super(iM(A),nM(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(e){return this.controls[this._adjustIndex(e)]}push(e,A={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(e,A,i={}){this.controls.splice(e,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(e,A={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(e,A,i={}){let n=this._adjustIndex(e);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),A&&(this.controls.splice(n,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,A={}){aH(this,!1,e),e.forEach((i,n)=>{sH(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(e.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e=[],A={}){this._forEachChild((i,n)=>{i.reset(e[n],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((A,i)=>{e(A,i)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(A=>A.enabled&&e(A))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(let e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}};function qz(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var BH=(()=>{class t{useNonNullable=!1;get nonNullable(){let A=new t;return A.useNonNullable=!0,A}group(A,i=null){let n=this._reduceControls(A),o={};return qz(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new Pd(n,o)}record(A,i=null){let n=this._reduceControls(A);return new Wb(n,i)}control(A,i,n){let o={};return this.useNonNullable?(qz(i)?o=i:(o.validators=i,o.asyncValidators=n),new vI(A,Ne(nA({},o),{nonNullable:!0}))):new vI(A,i,n)}array(A,i,n){let o=A.map(r=>this._createControl(r));return new Xb(o,i,n)}_reduceControls(A){let i={};return Object.keys(A).forEach(n=>{i[n]=this._createControl(A[n])}),i}_createControl(A){if(A instanceof vI)return A;if(A instanceof Od)return A;if(Array.isArray(A)){let i=A[0],n=A.length>1?A[1]:null,o=A.length>2?A[2]:null;return this.control(i,n,o)}else return this.control(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var e6=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:jd,useValue:A.callSetDisabledState??A6}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[dH]})}return t})(),EH=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:aM,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:jd,useValue:A.callSetDisabledState??A6}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[dH]})}return t})();var Bi="primary",ru=Symbol("RouteTitle"),BM=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A[0]:A}return null}getAll(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function RI(t){return new BM(t)}function DH(t,e,A){let i=A.path.split("/");if(i.length>t.length||A.pathMatch==="full"&&(e.hasChildren()||i.lengthi[o]===n)}else return t===e}function vH(t){return t.length>0?t[t.length-1]:null}function S2(t){return a2(t)?t:u2(t)?On(Promise.resolve(t)):ve(t)}var pEA={exact:MH,subset:kH},bH={exact:wEA,subset:DEA,ignored:()=>!0};function hH(t,e,A){return pEA[A.paths](t.root,e.root,A.matrixParams)&&bH[A.queryParams](t.queryParams,e.queryParams)&&!(A.fragment==="exact"&&t.fragment!==e.fragment)}function wEA(t,e){return Ag(t,e)}function MH(t,e,A){if(!kI(t.segments,e.segments)||!n6(t.segments,e.segments,A)||t.numberOfChildren!==e.numberOfChildren)return!1;for(let i in e.children)if(!t.children[i]||!MH(t.children[i],e.children[i],A))return!1;return!0}function DEA(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(A=>yH(t[A],e[A]))}function kH(t,e,A){return SH(t,e,e.segments,A)}function SH(t,e,A,i){if(t.segments.length>A.length){let n=t.segments.slice(0,A.length);return!(!kI(n,A)||e.hasChildren()||!n6(n,A,i))}else if(t.segments.length===A.length){if(!kI(t.segments,A)||!n6(t.segments,A,i))return!1;for(let n in e.children)if(!t.children[n]||!kH(t.children[n],e.children[n],i))return!1;return!0}else{let n=A.slice(0,t.segments.length),o=A.slice(t.segments.length);return!kI(t.segments,n)||!n6(t.segments,n,i)||!t.children[Bi]?!1:SH(t.children[Bi],e,o,i)}}function n6(t,e,A){return e.every((i,n)=>bH[A](t[n].parameters,i.parameters))}var tg=class{root;queryParams;fragment;_queryParamMap;constructor(e=new bn([],{}),A={},i=null){this.root=e,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=RI(this.queryParams),this._queryParamMap}toString(){return bEA.serialize(this)}},bn=class{segments;children;parent=null;constructor(e,A){this.segments=e,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return o6(this)}},b2=class{path;parameters;_parameterMap;constructor(e,A){this.path=e,this.parameters=A}get parameterMap(){return this._parameterMap??=RI(this.parameters),this._parameterMap}toString(){return LH(this)}};function yEA(t,e){return kI(t,e)&&t.every((A,i)=>Ag(A.parameters,e[i].parameters))}function kI(t,e){return t.length!==e.length?!1:t.every((A,i)=>A.path===e[i].path)}function vEA(t,e){let A=[];return Object.entries(t.children).forEach(([i,n])=>{i===Bi&&(A=A.concat(e(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==Bi&&(A=A.concat(e(n,i)))}),A}var LI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>new M2,providedIn:"root"})}return t})(),M2=class{parse(e){let A=new QM(e);return new tg(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(e){let A=`/${qQ(e.root,!0)}`,i=SEA(e.queryParams),n=typeof e.fragment=="string"?`#${MEA(e.fragment)}`:"";return`${A}${i}${n}`}},bEA=new M2;function o6(t){return t.segments.map(e=>LH(e)).join("/")}function qQ(t,e){if(!t.hasChildren())return o6(t);if(e){let A=t.children[Bi]?qQ(t.children[Bi],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==Bi&&i.push(`${n}:${qQ(o,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=vEA(t,(i,n)=>n===Bi?[qQ(t.children[Bi],!1)]:[`${n}:${qQ(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[Bi]!=null?`${o6(t)}/${A[0]}`:`${o6(t)}/(${A.join("//")})`}}function RH(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function t6(t){return RH(t).replace(/%3B/gi,";")}function MEA(t){return encodeURI(t)}function hM(t){return RH(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function r6(t){return decodeURIComponent(t)}function QH(t){return r6(t.replace(/\+/g,"%20"))}function LH(t){return`${hM(t.path)}${kEA(t.parameters)}`}function kEA(t){return Object.entries(t).map(([e,A])=>`;${hM(e)}=${hM(A)}`).join("")}function SEA(t){let e=Object.entries(t).map(([A,i])=>Array.isArray(i)?i.map(n=>`${t6(A)}=${t6(n)}`).join("&"):`${t6(A)}=${t6(i)}`).filter(A=>A);return e.length?`?${e.join("&")}`:""}var REA=/^[^\/()?;#]+/;function gM(t){let e=t.match(REA);return e?e[0]:""}var LEA=/^[^\/()?;=#]+/;function xEA(t){let e=t.match(LEA);return e?e[0]:""}var FEA=/^[^=?&#]+/;function NEA(t){let e=t.match(FEA);return e?e[0]:""}var _EA=/^[^&#]+/;function GEA(t){let e=t.match(_EA);return e?e[0]:""}var QM=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new bn([],{}):new bn([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(A).length>0)&&(i[Bi]=new bn(e,A)),i}parseSegment(){let e=gM(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new ZA(4009,!1);return this.capture(e),new b2(r6(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let A=xEA(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let n=gM(this.remaining);n&&(i=n,this.capture(i))}e[r6(A)]=r6(i)}parseQueryParam(e){let A=NEA(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let r=GEA(this.remaining);r&&(i=r,this.capture(i))}let n=QH(A),o=QH(i);if(e.hasOwnProperty(n)){let r=e[n];Array.isArray(r)||(r=[r],e[n]=r),r.push(o)}else e[n]=o}parseParens(e){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=gM(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new ZA(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=Bi);let r=this.parseChildren();A[o]=Object.keys(r).length===1?r[Bi]:new bn([],r),this.consumeOptional("//")}return A}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new ZA(4011,!1)}};function xH(t){return t.segments.length>0?new bn([],{[Bi]:t}):t}function FH(t){let e={};for(let[i,n]of Object.entries(t.children)){let o=FH(n);if(i===Bi&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))e[r]=s;else(o.segments.length>0||o.hasChildren())&&(e[i]=o)}let A=new bn(t.segments,e);return UEA(A)}function UEA(t){if(t.numberOfChildren===1&&t.children[Bi]){let e=t.children[Bi];return new bn(t.segments.concat(e.segments),e.children)}return t}function Xd(t){return t instanceof tg}function NH(t,e,A=null,i=null){let n=_H(t);return GH(n,e,A,i)}function _H(t){let e;function A(o){let r={};for(let a of o.children){let c=A(a);r[a.outlet]=c}let s=new bn(o.url,r);return o===t&&(e=s),s}let i=A(t.root),n=xH(i);return e??n}function GH(t,e,A,i){let n=t;for(;n.parent;)n=n.parent;if(e.length===0)return IM(n,n,n,A,i);let o=KEA(e);if(o.toRoot())return IM(n,n,new bn([],{}),A,i);let r=YEA(o,n,t),s=r.processChildren?ZQ(r.segmentGroup,r.index,o.commands):KH(r.segmentGroup,r.index,o.commands);return IM(n,r.segmentGroup,s,A,i)}function a6(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function XQ(t){return typeof t=="object"&&t!=null&&t.outlets}function IM(t,e,A,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(l=>`${l}`):`${c}`});let r;t===e?r=A:r=UH(t,e,A);let s=xH(FH(r));return new tg(s,o,n)}function UH(t,e,A){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===e?i[n]=A:i[n]=UH(o,e,A)}),new bn(t.segments,i)}var c6=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,A,i){if(this.isAbsolute=e,this.numberOfDoubleDots=A,this.commands=i,e&&i.length>0&&a6(i[0]))throw new ZA(4003,!1);let n=i.find(XQ);if(n&&n!==vH(i))throw new ZA(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function KEA(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new c6(!0,0,t);let e=0,A=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?A=!0:s===".."?e++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new c6(A,e,i)}var Zd=class{segmentGroup;processChildren;index;constructor(e,A,i){this.segmentGroup=e,this.processChildren=A,this.index=i}};function YEA(t,e,A){if(t.isAbsolute)return new Zd(e,!0,0);if(!A)return new Zd(e,!1,NaN);if(A.parent===null)return new Zd(A,!0,0);let i=a6(t.commands[0])?0:1,n=A.segments.length-1+i;return JEA(A,n,t.numberOfDoubleDots)}function JEA(t,e,A){let i=t,n=e,o=A;for(;o>n;){if(o-=n,i=i.parent,!i)throw new ZA(4005,!1);n=i.segments.length}return new Zd(i,!1,n-o)}function TEA(t){return XQ(t[0])?t[0].outlets:{[Bi]:t}}function KH(t,e,A){if(t??=new bn([],{}),t.segments.length===0&&t.hasChildren())return ZQ(t,e,A);let i=zEA(t,e,A),n=A.slice(i.commandIndex);if(i.match&&i.pathIndexo!==Bi)&&t.children[Bi]&&t.numberOfChildren===1&&t.children[Bi].segments.length===0){let o=ZQ(t.children[Bi],e,A);return new bn(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=KH(t.children[o],e,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new bn(t.segments,n)}}function zEA(t,e,A){let i=0,n=e,o={match:!1,pathIndex:0,commandIndex:0};for(;n=A.length)return o;let r=t.segments[n],s=A[i];if(XQ(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!fH(a,c,r))return o;i+=2}else{if(!fH(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function uM(t,e,A){let i=t.segments.slice(0,e),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(e[A]=uM(new bn([],{}),0,i))}),e}function uH(t){let e={};return Object.entries(t).forEach(([A,i])=>e[A]=`${i}`),e}function fH(t,e,A){return t==A.path&&Ag(e,A.parameters)}var s6="imperative",kr=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(kr||{}),Va=class{id;url;constructor(e,A){this.id=e,this.url=A}},k2=class extends Va{type=kr.NavigationStart;navigationTrigger;restoredState;constructor(e,A,i="imperative",n=null){super(e,A),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},Za=class extends Va{urlAfterRedirects;type=kr.NavigationEnd;constructor(e,A,i){super(e,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},oa=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(oa||{}),$d=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}($d||{}),eg=class extends Va{reason;code;type=kr.NavigationCancel;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},ig=class extends Va{reason;code;type=kr.NavigationSkipped;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}},AB=class extends Va{error;target;type=kr.NavigationError;constructor(e,A,i,n){super(e,A),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},$Q=class extends Va{urlAfterRedirects;state;type=kr.RoutesRecognized;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},l6=class extends Va{urlAfterRedirects;state;type=kr.GuardsCheckStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},g6=class extends Va{urlAfterRedirects;state;shouldActivate;type=kr.GuardsCheckEnd;constructor(e,A,i,n,o){super(e,A),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},I6=class extends Va{urlAfterRedirects;state;type=kr.ResolveStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},C6=class extends Va{urlAfterRedirects;state;type=kr.ResolveEnd;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},d6=class{route;type=kr.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},B6=class{route;type=kr.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},E6=class{snapshot;type=kr.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},h6=class{snapshot;type=kr.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Q6=class{snapshot;type=kr.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},u6=class{snapshot;type=kr.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},eB=class{routerEvent;position;anchor;type=kr.Scroll;constructor(e,A,i){this.routerEvent=e,this.position=A,this.anchor=i}toString(){let e=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${e}')`}},Au=class{},tB=class{url;navigationBehaviorOptions;constructor(e,A){this.url=e,this.navigationBehaviorOptions=A}};function OEA(t,e){return t.providers&&!t._injector&&(t._injector=hQ(t.providers,e,`Route: ${t.path}`)),t._injector??e}function nl(t){return t.outlet||Bi}function PEA(t,e){let A=t.filter(i=>nl(i)===e);return A.push(...t.filter(i=>nl(i)!==e)),A}function su(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){let A=e.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var f6=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return su(this.route?.snapshot)??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new xI(this.rootInjector)}},xI=(()=>{class t{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let n=this.getOrCreateContext(A);n.outlet=i,this.contexts.set(A,n)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new f6(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||t)(he(Br))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),m6=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let A=this.pathFromRoot(e);return A.length>1?A[A.length-2]:null}children(e){let A=fM(e,this._root);return A?A.children.map(i=>i.value):[]}firstChild(e){let A=fM(e,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(e){let A=mM(e,this._root);return A.length<2?[]:A[A.length-2].children.map(n=>n.value).filter(n=>n!==e)}pathFromRoot(e){return mM(e,this._root).map(A=>A.value)}};function fM(t,e){if(t===e.value)return e;for(let A of e.children){let i=fM(t,A);if(i)return i}return null}function mM(t,e){if(t===e.value)return[e];for(let A of e.children){let i=mM(t,A);if(i.length)return i.unshift(e),i}return[]}var qa=class{value;children;constructor(e,A){this.value=e,this.children=A}toString(){return`TreeNode(${this.value})`}};function Vd(t){let e={};return t&&t.children.forEach(A=>e[A.value.outlet]=A),e}var eu=class extends m6{snapshot;constructor(e,A){super(e),this.snapshot=A,kM(this,e)}toString(){return this.snapshot.toString()}};function YH(t){let e=jEA(t),A=new li([new b2("",{})]),i=new li({}),n=new li({}),o=new li({}),r=new li(""),s=new ra(A,i,o,r,n,Bi,t,e.root);return s.snapshot=e.root,new eu(new qa(s,[]),e)}function jEA(t){let e={},A={},i={},n="",o=new SI([],e,i,n,A,Bi,t,null,{});return new tu("",new qa(o,[]))}var ra=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(e,A,i,n,o,r,s,a){this.urlSubject=e,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(Je(c=>c[ru]))??ve(void 0),this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Je(e=>RI(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Je(e=>RI(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function p6(t,e,A="emptyOnly"){let i,{routeConfig:n}=t;return e!==null&&(A==="always"||n?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:nA(nA({},e.params),t.params),data:nA(nA({},e.data),t.data),resolve:nA(nA(nA(nA({},t.data),e.data),n?.data),t._resolvedData)}:i={params:nA({},t.params),data:nA({},t.data),resolve:nA(nA({},t.data),t._resolvedData??{})},n&&TH(n)&&(i.resolve[ru]=n.title),i}var SI=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[ru]}constructor(e,A,i,n,o,r,s,a,c){this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=RI(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=RI(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${A}')`}},tu=class extends m6{url;constructor(e,A){super(A),this.url=e,kM(this,A)}toString(){return JH(this._root)}};function kM(t,e){e.value._routerState=t,e.children.forEach(A=>kM(t,A))}function JH(t){let e=t.children.length>0?` { ${t.children.map(JH).join(", ")} } `:"";return`${t.value}${e}`}function CM(t){if(t.snapshot){let e=t.snapshot,A=t._futureSnapshot;t.snapshot=A,Ag(e.queryParams,A.queryParams)||t.queryParamsSubject.next(A.queryParams),e.fragment!==A.fragment&&t.fragmentSubject.next(A.fragment),Ag(e.params,A.params)||t.paramsSubject.next(A.params),mEA(e.url,A.url)||t.urlSubject.next(A.url),Ag(e.data,A.data)||t.dataSubject.next(A.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function pM(t,e){let A=Ag(t.params,e.params)&&yEA(t.url,e.url),i=!t.parent!=!e.parent;return A&&!i&&(!t.parent||pM(t.parent,e.parent))}function TH(t){return typeof t.title=="string"||t.title===null}var zH=new BA(""),SM=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Bi;activateEvents=new XA;deactivateEvents=new XA;attachEvents=new XA;detachEvents=new XA;routerOutletData=sJ(void 0);parentContexts=m(xI);location=m(Un);changeDetector=m(lt);inputBinder=m(au,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:n}=A.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new ZA(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new ZA(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new ZA(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new ZA(4013,!1);this._activatedRoute=A;let n=this.location,r=A.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new wM(A,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Kt]})}return t})(),wM=class{route;childContexts;parent;outletData;constructor(e,A,i,n){this.route=e,this.childContexts=A,this.parent=i,this.outletData=n}get(e,A){return e===ra?this.route:e===xI?this.childContexts:e===zH?this.outletData:this.parent.get(e,A)}},au=new BA(""),RM=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,n=Ls([i.queryParams,i.params,i.data]).pipe(no(([o,r,s],a)=>(s=nA(nA(nA({},o),r),s),a===0?ve(s):Promise.resolve(s)))).subscribe(o=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let r=rz(i.component);if(!r){this.unsubscribeFromRouteData(A);return}for(let{templateName:s}of r.inputs)A.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(A,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();function qEA(t,e,A){let i=iu(t,e._root,A?A._root:void 0);return new eu(i,e)}function iu(t,e,A){if(A&&t.shouldReuseRoute(e.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=e.value;let n=VEA(t,e,A);return new qa(i,n)}else{if(t.shouldAttach(e.value)){let o=t.retrieve(e.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=e.value,r.children=e.children.map(s=>iu(t,s)),r}}let i=ZEA(e.value),n=e.children.map(o=>iu(t,o));return new qa(i,n)}}function VEA(t,e,A){return e.children.map(i=>{for(let n of A.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return iu(t,i,n);return iu(t,i)})}function ZEA(t){return new ra(new li(t.url),new li(t.params),new li(t.queryParams),new li(t.fragment),new li(t.data),t.outlet,t.component,t)}var iB=class{redirectTo;navigationBehaviorOptions;constructor(e,A){this.redirectTo=e,this.navigationBehaviorOptions=A}},HH="ngNavigationCancelingError";function w6(t,e){let{redirectTo:A,navigationBehaviorOptions:i}=Xd(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,n=OH(!1,oa.Redirect);return n.url=A,n.navigationBehaviorOptions=i,n}function OH(t,e){let A=new Error(`NavigationCancelingError: ${t||""}`);return A[HH]=!0,A.cancellationCode=e,A}function WEA(t){return PH(t)&&Xd(t.url)}function PH(t){return!!t&&t[HH]}var XEA=(t,e,A,i)=>Je(n=>(new DM(e,n.targetRouterState,n.currentRouterState,A,i).activate(t),n)),DM=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,A,i,n,o){this.routeReuseStrategy=e,this.futureState=A,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(e){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,e),CM(this.futureState.root),this.activateChildRoutes(A,i,e)}deactivateChildRoutes(e,A,i){let n=Vd(A);e.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(e,A,r.children)}else this.deactivateChildRoutes(e,A,i);else o&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(e,A){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,A):this.deactivateRouteAndOutlet(e,A)}detachAndStoreRouteSubtree(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=Vd(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:s})}}deactivateRouteAndOutlet(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=Vd(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,A,i){let n=Vd(A);e.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new u6(o.value.snapshot))}),e.children.length&&this.forwardEvent(new h6(e.value.snapshot))}activateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(CM(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(e,A,r.children)}else this.activateChildRoutes(e,A,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),CM(s.route.value),this.activateChildRoutes(e,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(e,null,r.children)}else this.activateChildRoutes(e,null,i)}},D6=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},Wd=class{component;route;constructor(e,A){this.component=e,this.route=A}};function $EA(t,e,A){let i=t._root,n=e?e._root:null;return VQ(i,n,A,[i.value])}function AhA(t){let e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function oB(t,e){let A=Symbol(),i=e.get(t,A);return i===A?typeof t=="function"&&!sY(t)?t:e.get(t):i}function VQ(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=Vd(e);return t.children.forEach(r=>{ehA(r,o[r.value.outlet],A,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>WQ(s,A.getContext(r),n)),n}function ehA(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=e?e.value:null,s=A?A.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=thA(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new D6(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?VQ(t,e,s?s.children:null,i,n):VQ(t,e,A,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new Wd(s.outlet.component,r))}else r&&WQ(e,s,n),n.canActivateChecks.push(new D6(i)),o.component?VQ(t,null,s?s.children:null,i,n):VQ(t,null,A,i,n);return n}function thA(t,e,A){if(typeof A=="function")return A(t,e);switch(A){case"pathParamsChange":return!kI(t.url,e.url);case"pathParamsOrQueryParamsChange":return!kI(t.url,e.url)||!Ag(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!pM(t,e)||!Ag(t.queryParams,e.queryParams);case"paramsChange":default:return!pM(t,e)}}function WQ(t,e,A){let i=Vd(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?e?WQ(r,e.children.getContext(o),A):WQ(r,null,A):WQ(r,e,A)}),n.component?e&&e.outlet&&e.outlet.isActivated?A.canDeactivateChecks.push(new Wd(e.outlet.component,n)):A.canDeactivateChecks.push(new Wd(null,n)):A.canDeactivateChecks.push(new Wd(null,n))}function cu(t){return typeof t=="function"}function ihA(t){return typeof t=="boolean"}function nhA(t){return t&&cu(t.canLoad)}function ohA(t){return t&&cu(t.canActivate)}function rhA(t){return t&&cu(t.canActivateChild)}function shA(t){return t&&cu(t.canDeactivate)}function ahA(t){return t&&cu(t.canMatch)}function jH(t){return t instanceof Xg||t?.name==="EmptyError"}var i6=Symbol("INITIAL_VALUE");function nB(){return no(t=>Ls(t.map(e=>e.pipe(Pn(1),Qo(i6)))).pipe(Je(e=>{for(let A of e)if(A!==!0){if(A===i6)return i6;if(A===!1||chA(A))return A}return!0}),pt(e=>e!==i6),Pn(1)))}function chA(t){return Xd(t)||t instanceof iB}function lhA(t,e){return qo(A=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=A;return r.length===0&&o.length===0?ve(Ne(nA({},A),{guardsResult:!0})):ghA(r,i,n,t).pipe(qo(s=>s&&ihA(s)?IhA(i,o,t,e):ve(s)),Je(s=>Ne(nA({},A),{guardsResult:s})))})}function ghA(t,e,A,i){return On(t).pipe(qo(n=>hhA(n.component,n.route,A,e,i)),zl(n=>n!==!0,!0))}function IhA(t,e,A,i){return On(e).pipe(Jl(n=>l2(dhA(n.route.parent,i),ChA(n.route,i),EhA(t,n.path,A),BhA(t,n.route,A))),zl(n=>n!==!0,!0))}function ChA(t,e){return t!==null&&e&&e(new Q6(t)),ve(!0)}function dhA(t,e){return t!==null&&e&&e(new E6(t)),ve(!0)}function BhA(t,e,A){let i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return ve(!0);let n=i.map(o=>Yl(()=>{let r=su(e)??A,s=oB(o,r),a=ohA(s)?s.canActivate(e,t):$s(r,()=>s(e,t));return S2(a).pipe(zl())}));return ve(n).pipe(nB())}function EhA(t,e,A){let i=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(r=>AhA(r)).filter(r=>r!==null).map(r=>Yl(()=>{let s=r.guards.map(a=>{let c=su(r.node)??A,l=oB(a,c),I=rhA(l)?l.canActivateChild(i,t):$s(c,()=>l(i,t));return S2(I).pipe(zl())});return ve(s).pipe(nB())}));return ve(o).pipe(nB())}function hhA(t,e,A,i,n){let o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||o.length===0)return ve(!0);let r=o.map(s=>{let a=su(e)??n,c=oB(s,a),l=shA(c)?c.canDeactivate(t,e,A,i):$s(a,()=>c(t,e,A,i));return S2(l).pipe(zl())});return ve(r).pipe(nB())}function QhA(t,e,A,i){let n=e.canLoad;if(n===void 0||n.length===0)return ve(!0);let o=n.map(r=>{let s=oB(r,t),a=nhA(s)?s.canLoad(e,A):$s(t,()=>s(e,A));return S2(a)});return ve(o).pipe(nB(),qH(i))}function qH(t){return O7(oo(e=>{if(typeof e!="boolean")throw w6(t,e)}),Je(e=>e===!0))}function uhA(t,e,A,i){let n=e.canMatch;if(!n||n.length===0)return ve(!0);let o=n.map(r=>{let s=oB(r,t),a=ahA(s)?s.canMatch(e,A):$s(t,()=>s(e,A));return S2(a)});return ve(o).pipe(nB(),qH(i))}var nu=class{segmentGroup;constructor(e){this.segmentGroup=e||null}},ou=class extends Error{urlTree;constructor(e){super(),this.urlTree=e}};function qd(t){return s2(new nu(t))}function fhA(t){return s2(new ZA(4e3,!1))}function mhA(t){return s2(OH(!1,oa.GuardRejected))}var yM=class{urlSerializer;urlTree;constructor(e,A){this.urlSerializer=e,this.urlTree=A}lineralizeSegments(e,A){let i=[],n=A.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return ve(i);if(n.numberOfChildren>1||!n.children[Bi])return fhA(`${e.redirectTo}`);n=n.children[Bi]}}applyRedirectCommands(e,A,i,n,o){if(typeof A!="string"){let s=A,{queryParams:a,fragment:c,routeConfig:l,url:I,outlet:C,params:d,data:B,title:E}=n,Q=$s(o,()=>s({params:d,data:B,queryParams:a,fragment:c,routeConfig:l,url:I,outlet:C,title:E}));if(Q instanceof tg)throw new ou(Q);A=Q}let r=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),e,i);if(A[0]==="/")throw new ou(r);return r}applyRedirectCreateUrlTree(e,A,i,n){let o=this.createSegmentGroup(e,A.root,i,n);return new tg(o,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(e,A){let i={};return Object.entries(e).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=A[s]}else i[n]=o}),i}createSegmentGroup(e,A,i,n){let o=this.createSegments(e,A.segments,i,n),r={};return Object.entries(A.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(e,a,i,n)}),new bn(o,r)}createSegments(e,A,i,n){return A.map(o=>o.path[0]===":"?this.findPosParam(e,o,n):this.findOrReturn(o,i))}findPosParam(e,A,i){let n=i[A.path.substring(1)];if(!n)throw new ZA(4001,!1);return n}findOrReturn(e,A){let i=0;for(let n of A){if(n.path===e.path)return A.splice(i),n;i++}return e}},vM={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function phA(t,e,A,i,n){let o=VH(t,e,A);return o.matched?(i=OEA(e,i),uhA(i,e,A,n).pipe(Je(r=>r===!0?o:nA({},vM)))):ve(o)}function VH(t,e,A){if(e.path==="**")return whA(A);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||A.length>0)?nA({},vM):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let n=(e.matcher||DH)(A,t,e);if(!n)return nA({},vM);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?nA(nA({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:A.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function whA(t){return{matched:!0,parameters:t.length>0?vH(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function mH(t,e,A,i){return A.length>0&&vhA(t,A,i)?{segmentGroup:new bn(e,yhA(i,new bn(A,t.children))),slicedSegments:[]}:A.length===0&&bhA(t,A,i)?{segmentGroup:new bn(t.segments,DhA(t,A,i,t.children)),slicedSegments:A}:{segmentGroup:new bn(t.segments,t.children),slicedSegments:A}}function DhA(t,e,A,i){let n={};for(let o of A)if(v6(t,e,o)&&!i[nl(o)]){let r=new bn([],{});n[nl(o)]=r}return nA(nA({},i),n)}function yhA(t,e){let A={};A[Bi]=e;for(let i of t)if(i.path===""&&nl(i)!==Bi){let n=new bn([],{});A[nl(i)]=n}return A}function vhA(t,e,A){return A.some(i=>v6(t,e,i)&&nl(i)!==Bi)}function bhA(t,e,A){return A.some(i=>v6(t,e,i))}function v6(t,e,A){return(t.hasChildren()||e.length>0)&&A.pathMatch==="full"?!1:A.path===""}function MhA(t,e,A){return e.length===0&&!t.children[A]}var bM=class{};function khA(t,e,A,i,n,o,r="emptyOnly"){return new MM(t,e,A,i,n,r,o).recognize()}var ShA=31,MM=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,A,i,n,o,r,s){this.injector=e,this.configLoader=A,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new yM(this.urlSerializer,this.urlTree)}noMatchError(e){return new ZA(4002,`'${e.segmentGroup}'`)}recognize(){let e=mH(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(Je(({children:A,rootSnapshot:i})=>{let n=new qa(i,A),o=new tu("",n),r=NH(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(e){let A=new SI([],Object.freeze({}),Object.freeze(nA({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),Bi,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,Bi,A).pipe(Je(i=>({children:i,rootSnapshot:A})),dr(i=>{if(i instanceof ou)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof nu?this.noMatchError(i):i}))}processSegmentGroup(e,A,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,A,i,o):this.processSegment(e,A,i,i.segments,n,!0,o).pipe(Je(r=>r instanceof qa?[r]:[]))}processChildren(e,A,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return On(o).pipe(Jl(r=>{let s=i.children[r],a=PEA(A,r);return this.processSegmentGroup(e,a,s,r,n)}),W7((r,s)=>(r.push(...s),r)),g2(null),Z7(),qo(r=>{if(r===null)return qd(i);let s=ZH(r);return RhA(s),ve(s)}))}processSegment(e,A,i,n,o,r,s){return On(A).pipe(Jl(a=>this.processSegmentAgainstRoute(a._injector??e,A,a,i,n,o,r,s).pipe(dr(c=>{if(c instanceof nu)return ve(null);throw c}))),zl(a=>!!a),dr(a=>{if(jH(a))return MhA(i,n,o)?ve(new bM):qd(i);throw a}))}processSegmentAgainstRoute(e,A,i,n,o,r,s,a){return nl(i)!==r&&(r===Bi||!v6(n,o,i))?qd(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(e,n,A,i,o,r,a):qd(n)}expandSegmentAgainstRouteUsingRedirect(e,A,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:l,positionalParamSegments:I,remainingSegments:C}=VH(A,n,o);if(!a)return qd(A);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>ShA&&(this.allowRedirects=!1));let d=new SI(o,c,Object.freeze(nA({},this.urlTree.queryParams)),this.urlTree.fragment,pH(n),nl(n),n.component??n._loadedComponent??null,n,wH(n)),B=p6(d,s,this.paramsInheritanceStrategy);d.params=Object.freeze(B.params),d.data=Object.freeze(B.data);let E=this.applyRedirects.applyRedirectCommands(l,n.redirectTo,I,d,e);return this.applyRedirects.lineralizeSegments(n,E).pipe(qo(Q=>this.processSegment(e,i,A,Q.concat(C),r,!1,s)))}matchSegmentAgainstRoute(e,A,i,n,o,r){let s=phA(A,i,n,e,this.urlSerializer);return i.path==="**"&&(A.children={}),s.pipe(no(a=>a.matched?(e=i._injector??e,this.getChildConfig(e,i,n).pipe(no(({routes:c})=>{let l=i._loadedInjector??e,{parameters:I,consumedSegments:C,remainingSegments:d}=a,B=new SI(C,I,Object.freeze(nA({},this.urlTree.queryParams)),this.urlTree.fragment,pH(i),nl(i),i.component??i._loadedComponent??null,i,wH(i)),E=p6(B,r,this.paramsInheritanceStrategy);B.params=Object.freeze(E.params),B.data=Object.freeze(E.data);let{segmentGroup:Q,slicedSegments:u}=mH(A,C,d,c);if(u.length===0&&Q.hasChildren())return this.processChildren(l,c,Q,B).pipe(Je(L=>new qa(B,L)));if(c.length===0&&u.length===0)return ve(new qa(B,[]));let v=nl(i)===o;return this.processSegment(l,c,Q,u,v?Bi:o,!0,B).pipe(Je(L=>new qa(B,L instanceof qa?[L]:[])))}))):qd(A)))}getChildConfig(e,A,i){return A.children?ve({routes:A.children,injector:e}):A.loadChildren?A._loadedRoutes!==void 0?ve({routes:A._loadedRoutes,injector:A._loadedInjector}):QhA(e,A,i,this.urlSerializer).pipe(qo(n=>n?this.configLoader.loadChildren(e,A).pipe(oo(o=>{A._loadedRoutes=o.routes,A._loadedInjector=o.injector})):mhA(A))):ve({routes:[],injector:e})}};function RhA(t){t.sort((e,A)=>e.value.outlet===Bi?-1:A.value.outlet===Bi?1:e.value.outlet.localeCompare(A.value.outlet))}function LhA(t){let e=t.value.routeConfig;return e&&e.path===""}function ZH(t){let e=[],A=new Set;for(let i of t){if(!LhA(i)){e.push(i);continue}let n=e.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),A.add(n)):e.push(i)}for(let i of A){let n=ZH(i.children);e.push(new qa(i.value,n))}return e.filter(i=>!A.has(i))}function pH(t){return t.data||{}}function wH(t){return t.resolve||{}}function xhA(t,e,A,i,n,o){return qo(r=>khA(t,e,A,i,r.extractedUrl,n,o).pipe(Je(({state:s,tree:a})=>Ne(nA({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function FhA(t,e){return qo(A=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=A;if(!n.length)return ve(A);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of WH(a))r.add(c);let s=0;return On(r).pipe(Jl(a=>o.has(a)?NhA(a,i,t,e):(a.data=p6(a,a.parent,t).resolve,ve(void 0))),oo(()=>s++),Bd(1),qo(a=>s===r.size?ve(A):Ar))})}function WH(t){let e=t.children.map(A=>WH(A)).flat();return[t,...e]}function NhA(t,e,A,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!TH(n)&&(o[ru]=n.title),_hA(o,t,e,i).pipe(Je(r=>(t._resolvedData=r,t.data=p6(t,t.parent,A).resolve,null)))}function _hA(t,e,A,i){let n=EM(t);if(n.length===0)return ve({});let o={};return On(n).pipe(qo(r=>GhA(t[r],e,A,i).pipe(zl(),oo(s=>{if(s instanceof iB)throw w6(new M2,s);o[r]=s}))),Bd(1),Je(()=>o),dr(r=>jH(r)?Ar:s2(r)))}function GhA(t,e,A,i){let n=su(e)??i,o=oB(t,n),r=o.resolve?o.resolve(e,A):$s(n,()=>o(e,A));return S2(r)}function dM(t){return no(e=>{let A=t(e);return A?On(A).pipe(Je(()=>e)):ve(e)})}var LM=(()=>{class t{buildTitle(A){let i,n=A.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===Bi);return i}getResolvedTitleForRoute(A){return A.data[ru]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>m(XH),providedIn:"root"})}return t})(),XH=(()=>{class t extends LM{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(he(Jz))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),FI=new BA("",{providedIn:"root",factory:()=>({})}),xM=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&UA(0,"router-outlet")},dependencies:[SM],encapsulation:2})}return t})();function FM(t){let e=t.children&&t.children.map(FM),A=e?Ne(nA({},t),{children:e}):nA({},t);return!A.component&&!A.loadComponent&&(e||A.loadChildren)&&A.outlet&&A.outlet!==Bi&&(A.component=xM),A}var rB=new BA(""),b6=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=m(XT);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return ve(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=S2(A.loadComponent()).pipe(Je(AO),oo(o=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=o}),Tl(()=>{this.componentLoaders.delete(A)})),n=new r2(i,()=>new HA).pipe(ad());return this.componentLoaders.set(A,n),n}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return ve({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=$H(i,this.compiler,A,this.onLoadEndListener).pipe(Tl(()=>{this.childrenLoaders.delete(i)})),r=new r2(o,()=>new HA).pipe(ad());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $H(t,e,A,i){return S2(t.loadChildren()).pipe(Je(AO),qo(n=>n instanceof Eb||Array.isArray(n)?ve(n):On(e.compileModuleAsync(n))),Je(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(A).injector,r=o.get(rB,[],{optional:!0,self:!0}).flat()),{routes:r.map(FM),injector:o}}))}function UhA(t){return t&&typeof t=="object"&&"default"in t}function AO(t){return UhA(t)?t.default:t}var M6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>m(KhA),providedIn:"root"})}return t})(),KhA=(()=>{class t{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),NM=new BA(""),_M=new BA("");function eO(t,e,A){let i=t.get(_M),n=t.get(tt);return t.get(de).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),YhA(t))),{onViewTransitionCreated:a}=i;return a&&$s(t,()=>a({transition:s,from:e,to:A})),r})}function YhA(t){return new Promise(e=>{Vo({read:()=>setTimeout(e)},{injector:t})})}var GM=new BA(""),k6=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new HA;transitionAbortSubject=new HA;configLoader=m(b6);environmentInjector=m(Br);destroyRef=m(Fd);urlSerializer=m(LI);rootContexts=m(xI);location=m(Qc);inputBindingEnabled=m(au,{optional:!0})!==null;titleStrategy=m(LM);options=m(FI,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=m(M6);createViewTransition=m(NM,{optional:!0});navigationErrorHandler=m(GM,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>ve(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=n=>this.events.next(new d6(n)),i=n=>this.events.next(new B6(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(Ne(nA({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new li(null),this.transitions.pipe(pt(i=>i!==null),no(i=>{let n=!1,o=!1;return ve(i).pipe(no(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",oa.SupersededByNewNavigation),Ar;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?Ne(nA({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new ig(r.id,this.urlSerializer.serialize(r.rawUrl),c,$d.IgnoredSameUrlNavigation)),r.resolve(!1),Ar}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return ve(r).pipe(no(c=>(this.events.next(new k2(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?Ar:Promise.resolve(c))),xhA(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),oo(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Ne(nA({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let l=new $Q(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:l,source:I,restoredState:C,extras:d}=r,B=new k2(c,this.urlSerializer.serialize(l),I,C);this.events.next(B);let E=YH(this.rootComponentType).snapshot;return this.currentTransition=i=Ne(nA({},r),{targetSnapshot:E,urlAfterRedirects:l,extras:Ne(nA({},d),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=l,ve(i)}else{let c="";return this.events.next(new ig(r.id,this.urlSerializer.serialize(r.extractedUrl),c,$d.IgnoredByUrlHandlingStrategy)),r.resolve(!1),Ar}}),oo(r=>{let s=new l6(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),Je(r=>(this.currentTransition=i=Ne(nA({},r),{guards:$EA(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),lhA(this.environmentInjector,r=>this.events.next(r)),oo(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw w6(this.urlSerializer,r.guardsResult);let s=new g6(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),pt(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",oa.GuardRejected),!1)),dM(r=>{if(r.guards.canActivateChecks.length!==0)return ve(r).pipe(oo(s=>{let a=new I6(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),no(s=>{let a=!1;return ve(s).pipe(FhA(this.paramsInheritanceStrategy,this.environmentInjector),oo({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",oa.NoDataFromResolver)}}))}),oo(s=>{let a=new C6(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),dM(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(oo(l=>{a.component=l}),Je(()=>{})));for(let l of a.children)c.push(...s(l));return c};return Ls(s(r.targetSnapshot.root)).pipe(g2(null),Pn(1))}),dM(()=>this.afterPreactivation()),no(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?On(a).pipe(Je(()=>i)):ve(i)}),Je(r=>{let s=qEA(A.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=Ne(nA({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),oo(()=>{this.events.next(new Au)}),XEA(this.rootContexts,A.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),Pn(1),oo({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Za(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),wt(this.transitionAbortSubject.pipe(oo(r=>{throw r}))),Tl(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",oa.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),dr(r=>{if(this.destroyed)return i.resolve(!1),Ar;if(o=!0,PH(r))this.events.next(new eg(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),WEA(r)?this.events.next(new tB(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new AB(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=$s(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof iB){let{message:c,cancellationCode:l}=w6(this.urlSerializer,a);this.events.next(new eg(i.id,this.urlSerializer.serialize(i.extractedUrl),c,l)),this.events.next(new tB(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return Ar}))}))}cancelNavigationTransition(A,i,n){let o=new eg(A.id,this.urlSerializer.serialize(A.extractedUrl),i,n);this.events.next(o),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function JhA(t){return t!==s6}var tO=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>m(ThA),providedIn:"root"})}return t})(),y6=class{shouldDetach(e){return!1}store(e,A){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,A){return e.routeConfig===A.routeConfig}},ThA=(()=>{class t extends y6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),iO=(()=>{class t{urlSerializer=m(LI);options=m(FI,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=m(Qc);urlHandlingStrategy=m(M6);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new tg;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:n}){let o=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,r=n??o;return r instanceof tg?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:n}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=A):this.rawUrlTree=n}routerState=YH(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:()=>m(zhA),providedIn:"root"})}return t})(),zhA=(()=>{class t extends iO{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof k2?this.updateStateMemento():A instanceof ig?this.commitTransition(i):A instanceof $Q?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Au?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof eg&&(A.code===oa.GuardRejected||A.code===oa.NoDataFromResolver)?this.restoreHistory(i):A instanceof AB?this.restoreHistory(i,!0):A instanceof Za&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(A)||o){let s=this.browserPageId,a=nA(nA({},r),this.generateNgRouterState(n,s));this.location.replaceState(A,"",a)}else{let s=nA(nA({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(A,"",s)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===A.finalUrl&&o===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function S6(t,e){t.events.pipe(pt(A=>A instanceof Za||A instanceof eg||A instanceof AB||A instanceof ig),Je(A=>A instanceof Za||A instanceof ig?0:(A instanceof eg?A.code===oa.Redirect||A.code===oa.SupersededByNewNavigation:!1)?2:1),pt(A=>A!==2),Pn(1)).subscribe(()=>{e()})}var HhA={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},OhA={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},ng=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=m(ub);stateManager=m(iO);options=m(FI,{optional:!0})||{};pendingTasks=m(r0);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=m(k6);urlSerializer=m(LI);location=m(Qc);urlHandlingStrategy=m(M6);_events=new HA;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=m(tO);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=m(rB,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!m(au,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new _t;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof eg&&i.code!==oa.Redirect&&i.code!==oa.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Za)this.navigated=!0;else if(i instanceof tB){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=nA({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||JhA(n.source)},r);this.scheduleNavigation(s,s6,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}jhA(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),s6,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,n)=>{this.navigateToSyncWithBrowser(A,n,i)})}navigateToSyncWithBrowser(A,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=nA({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(A);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(FM),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,l=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":l=nA(nA({},this.currentUrlTree.queryParams),o);break;case"preserve":l=this.currentUrlTree.queryParams;break;default:l=o||null}l!==null&&(l=this.removeEmptyProps(l));let I;try{let C=n?n.snapshot:this.routerState.snapshot.root;I=_H(C)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),I=this.currentUrlTree.root}return GH(I,A,l,c??null)}navigateByUrl(A,i={skipLocationChange:!1}){let n=Xd(A)?A:this.parseUrl(A),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,s6,null,i)}navigate(A,i={skipLocationChange:!1}){return PhA(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let n;if(i===!0?n=nA({},HhA):i===!1?n=nA({},OhA):n=i,Xd(A))return hH(this.currentUrlTree,A,n);let o=this.parseUrl(A);return hH(this.currentUrlTree,o,n)}removeEmptyProps(A){return Object.entries(A).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(A,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((I,C)=>{s=I,a=C});let l=this.pendingTasks.add();return S6(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(l))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(I=>Promise.reject(I))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function PhA(t){for(let e=0;e{class t{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,n,o){this.router=A,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(pt(A=>A instanceof Za),Jl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=hQ(o.providers,A,`Route: ${o.path}`));let r=o._injector??A,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return On(n).pipe(c2())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(A,i):n=ve(null);let o=n.pipe(qo(r=>r===null?ve(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??A,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return On([o,r]).pipe(c2())}else return o})}static \u0275fac=function(i){return new(i||t)(he(ng),he(Br),he(lu),he(b6))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),oO=new BA(""),qhA=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,n,o,r={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof k2?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof Za?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof ig&&A.code===$d.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof eB&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new eB(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){cT()};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();function VhA(t){return t.routerState.root}function gu(t,e){return{\u0275kind:t,\u0275providers:e}}function ZhA(){let t=m(Dt);return e=>{let A=t.get(Ua);if(e!==A.components[0])return;let i=t.get(ng),n=t.get(rO);t.get(KM)===1&&i.initialNavigation(),t.get(cO,null,_i.Optional)?.setUpPreloading(),t.get(oO,null,_i.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var rO=new BA("",{factory:()=>new HA}),KM=new BA("",{providedIn:"root",factory:()=>1});function sO(){let t=[{provide:KM,useValue:0},wb(()=>{let e=m(Dt);return e.get(Lb,Promise.resolve()).then(()=>new Promise(i=>{let n=e.get(ng),o=e.get(rO);S6(n,()=>{i(!0)}),e.get(k6).afterPreactivation=()=>(i(!0),o.closed?ve(void 0):o),n.initialNavigation()}))})];return gu(2,t)}function aO(){let t=[wb(()=>{m(ng).setUpLocationChangeListener()}),{provide:KM,useValue:2}];return gu(3,t)}var cO=new BA("");function lO(t){return gu(0,[{provide:cO,useExisting:nO},{provide:lu,useExisting:t}])}function gO(){return gu(8,[RM,{provide:au,useExisting:RM}])}function IO(t){s0("NgRouterViewTransitions");let e=[{provide:NM,useValue:eO},{provide:_M,useValue:nA({skipNextTransition:!!t?.skipInitialTransition},t)}];return gu(9,e)}var CO=[Qc,{provide:LI,useClass:M2},ng,xI,{provide:ra,useFactory:VhA,deps:[ng]},b6,[]],R6=(()=>{class t{constructor(){}static forRoot(A,i){return{ngModule:t,providers:[CO,[],{provide:rB,multi:!0,useValue:A},[],i?.errorHandler?{provide:GM,useValue:i.errorHandler}:[],{provide:FI,useValue:i||{}},i?.useHash?XhA():$hA(),WhA(),i?.preloadingStrategy?lO(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?AQA(i):[],i?.bindToComponentInputs?gO().\u0275providers:[],i?.enableViewTransitions?IO().\u0275providers:[],eQA()]}}static forChild(A){return{ngModule:t,providers:[{provide:rB,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();function WhA(){return{provide:oO,useFactory:()=>{let t=m(Ez),e=m(de),A=m(FI),i=m(k6),n=m(LI);return A.scrollOffset&&t.setOffset(A.scrollOffset),new qhA(n,i,t,e,A)}}}function XhA(){return{provide:l0,useClass:_b}}function $hA(){return{provide:l0,useClass:vp}}function AQA(t){return[t.initialNavigation==="disabled"?aO().\u0275providers:[],t.initialNavigation==="enabledBlocking"?sO().\u0275providers:[]]}var UM=new BA("");function eQA(){return[{provide:UM,useFactory:ZhA},{provide:Db,multi:!0,useExisting:UM}]}var JM;try{JM=typeof Intl<"u"&&Intl.v8BreakIterator}catch{JM=!1}var Zt=(()=>{class t{_platformId=m(hc);isBrowser=this._platformId?$l(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||JM)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var sB,dO=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function TM(){if(sB)return sB;if(typeof document!="object"||!document)return sB=new Set(dO),sB;let t=document.createElement("input");return sB=new Set(dO.filter(e=>(t.setAttribute("type",e),t.type===e))),sB}var Iu;function nQA(){if(Iu==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Iu=!0}))}finally{Iu=Iu||!1}return Iu}function og(t){return nQA()?t:!!t.capture}var ol=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(ol||{}),L6,NI;function x6(){if(NI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return NI=!1,NI;if("scrollBehavior"in document.documentElement.style)NI=!0;else{let t=Element.prototype.scrollTo;t?NI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):NI=!1}}return NI}function aB(){if(typeof document!="object"||!document)return ol.NORMAL;if(L6==null){let t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",t.appendChild(A),document.body.appendChild(t),L6=ol.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,L6=t.scrollLeft===0?ol.NEGATED:ol.INVERTED),t.remove()}return L6}var YM;function oQA(){if(YM==null){let t=typeof document<"u"?document.head:null;YM=!!(t&&(t.createShadowRoot||t.attachShadow))}return YM}function BO(t){if(oQA()){let e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function cB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function Wa(t){return t.composedPath?t.composedPath()[0]:t.target}function zM(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function HM(t,e,A,i,n){let o=parseInt(kb.major),r=parseInt(kb.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(e,A,i,n):(e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)})}var F6=new WeakMap,Ln=(()=>{class t{_appRef;_injector=m(Dt);_environmentInjector=m(Br);load(A){let i=this._appRef=this._appRef||this._injector.get(Ua),n=F6.get(i);n||(n={loaders:new Set,refs:[]},F6.set(i,n),i.onDestroy(()=>{F6.get(i)?.refs.forEach(o=>o.destroy()),F6.delete(i)})),n.loaders.has(A)||(n.loaders.add(A),n.refs.push(wp(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Cu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function rr(t,...e){return e.length?e.some(A=>t[A]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Yo(t){return t!=null&&`${t}`!="false"}function Ns(t,e=0){return OM(t)?Number(t):arguments.length===2?e:0}function OM(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function lB(t){return Array.isArray(t)?t:[t]}function sr(t){return t==null?"":typeof t=="string"?t:`${t}px`}function sa(t){return t instanceof te?t.nativeElement:t}function rQA(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{class t{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),hO=(()=>{class t{_mutationObserverFactory=m(EO);_observedElements=new Map;_ngZone=m(de);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=sa(A);return new Ze(n=>{let r=this._observeElement(i).pipe(Je(s=>s.filter(a=>!rQA(a))),pt(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new HA,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:n,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:n}=this._observedElements.get(A);i&&i.disconnect(),n.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),N6=(()=>{class t{_contentObserver=m(hO);_elementRef=m(te);event=new XA;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=Ns(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(Vc(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",ae],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),gB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[EO]})}return t})();var QO=new Set,_I,sQA=(()=>{class t{_platform=m(Zt);_nonce=m(gQ,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):cQA}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&aQA(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aQA(t,e){if(!QO.has(t))try{_I||(_I=document.createElement("style"),e&&_I.setAttribute("nonce",e),_I.setAttribute("type","text/css"),document.head.appendChild(_I)),_I.sheet&&(_I.sheet.insertRule(`@media ${t} {body{ }}`,0),QO.add(t))}catch(A){console.error(A)}}function cQA(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var _6=(()=>{class t{_mediaMatcher=m(sQA);_zone=m(de);_queries=new Map;_destroySubject=new HA;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return uO(lB(A)).some(n=>this._registerQuery(n).mql.matches)}observe(A){let n=uO(lB(A)).map(r=>this._registerQuery(r).observable),o=Ls(n);return o=l2(o.pipe(Pn(1)),o.pipe(eI(1),Vc(0))),o.pipe(Je(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),o={observable:new Ze(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(Qo(i),Je(({matches:r})=>({query:A,matches:r})),wt(this._destroySubject)),mql:i};return this._queries.set(A,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function uO(t){return t.map(e=>e.split(",")).reduce((e,A)=>e.concat(A)).map(e=>e.trim())}var fO={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var yO=" ";function $M(t,e,A){let i=Y6(t,e);A=A.trim(),!i.some(n=>n.trim()===A)&&(i.push(A),t.setAttribute(e,i.join(yO)))}function O6(t,e,A){let i=Y6(t,e);A=A.trim();let n=i.filter(o=>o!==A);n.length?t.setAttribute(e,n.join(yO)):t.removeAttribute(e)}function Y6(t,e){return t.getAttribute(e)?.match(/\S+/g)??[]}var vO="cdk-describedby-message",G6="cdk-describedby-host",VM=0,bO=(()=>{class t{_platform=m(Zt);_document=m(tt);_messageRegistry=new Map;_messagesContainer=null;_id=`${VM++}`;constructor(){m(Ln).load(Cu),this._id=m(fI)+"-"+VM++}describe(A,i,n){if(!this._canBeDescribed(A,i))return;let o=PM(i,n);typeof i!="string"?(mO(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(A,o)||this._addMessageReference(A,o)}removeDescription(A,i,n){if(!i||!this._isElementNode(A))return;let o=PM(i,n);if(this._isElementDescribedByMessage(A,o)&&this._removeMessageReference(A,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${G6}="${this._id}"]`);for(let i=0;in.indexOf(vO)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let n=this._messageRegistry.get(i);$M(A,"aria-describedby",n.messageElement.id),A.setAttribute(G6,this._id),n.referenceCount++}_removeMessageReference(A,i){let n=this._messageRegistry.get(i);n.referenceCount--,O6(A,"aria-describedby",n.messageElement.id),A.removeAttribute(G6)}_isElementDescribedByMessage(A,i){let n=Y6(A,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=A.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function PM(t,e){return typeof t=="string"?`${e||""}/${t}`:t}function mO(t,e){t.id||(t.id=`${vO}-${e}-${VM++}`)}var wQA=200,ZM=class{_letterKeyStream=new HA;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new HA;selectedItem=this._selectedItem;constructor(e,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:wQA;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){let A=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(oo(A=>this._pressedLetters.push(A)),Vc(e),pt(()=>this._pressedLetters.length>0),Je(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;ie.disabled;constructor(e,A){this._items=e,e instanceof Ec?this._itemChangesSubscription=e.changes.subscribe(i=>this._itemsChanged(i.toArray())):h2(e)&&(this._effectRef=mQ(()=>this._itemsChanged(e()),{injector:A}))}tabOut=new HA;change=new HA;skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new ZM(A,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(e=!0){return this._homeAndEnd=e,this}withPageUpDown(e=!0,A=10){return this._pageUpAndDown={enabled:e,delta:A},this}setActiveItem(e){let A=this._activeItem();this.updateActiveItem(e),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(e){let A=e.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!e[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},T6=class extends J6{setActiveItem(e){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(e),this.activeItem&&this.activeItem.setActiveStyles()}},du=class extends J6{_origin="program";setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}};var hu=(()=>{class t{_platform=m(Zt);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return yQA(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=DQA(xQA(A));if(i&&(pO(i)===-1||!this.isVisible(i)))return!1;let n=A.nodeName.toLowerCase(),o=pO(A);return A.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!RQA(A)?!1:n==="audio"?A.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return LQA(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function DQA(t){try{return t.frameElement}catch{return null}}function yQA(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function vQA(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function bQA(t){return kQA(t)&&t.type=="hidden"}function MQA(t){return SQA(t)&&t.hasAttribute("href")}function kQA(t){return t.nodeName.toLowerCase()=="input"}function SQA(t){return t.nodeName.toLowerCase()=="a"}function MO(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function pO(t){if(!MO(t))return null;let e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function RQA(t){let e=t.nodeName.toLowerCase(),A=e==="input"&&t.type;return A==="text"||A==="password"||e==="select"||e==="textarea"}function LQA(t){return bQA(t)?!1:vQA(t)||MQA(t)||t.hasAttribute("contenteditable")||MO(t)}function xQA(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var WM=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_enabled=!0;constructor(e,A,i,n,o=!1,r){this._element=e,this._checker=A,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let e=this._startAnchor,A=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){let A=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(e),!!i}return A.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){let A=this._getRegionBoundary("start");return A&&A.focus(e),!!A}focusLastTabbableElement(e){let A=this._getRegionBoundary("end");return A&&A.focus(e),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;let A=e.children;for(let i=0;i=0;i--){let n=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(n)return n}return null}_createAnchor(){let e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,A){e?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?Vo(e,{injector:this._injector}):setTimeout(e)}},P6=(()=>{class t{_checker=m(hu);_ngZone=m(de);_document=m(tt);_injector=m(Dt);constructor(){m(Ln).load(Cu)}create(A,i=!1){return new WM(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Ak(t){return t.buttons===0||t.detail===0}function ek(t){let e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}var FQA=new BA("cdk-input-modality-detector-options"),NQA={ignoreKeys:[18,17,224,91,16]},kO=650,IB=og({passive:!0,capture:!0}),_QA=(()=>{class t{_platform=m(Zt);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new li(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Wa(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(ek(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Wa(A)};constructor(){let A=m(de),i=m(tt),n=m(FQA,{optional:!0});this._options=nA(nA({},NQA),n),this.modalityDetected=this._modality.pipe(eI(1)),this.modalityChanged=this.modalityDetected.pipe(Zc()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,IB),i.addEventListener("mousedown",this._onMousedown,IB),i.addEventListener("touchstart",this._onTouchstart,IB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,IB),document.removeEventListener("mousedown",this._onMousedown,IB),document.removeEventListener("touchstart",this._onTouchstart,IB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),GQA=new BA("liveAnnouncerElement",{providedIn:"root",factory:UQA});function UQA(){return null}var KQA=new BA("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),YQA=0,j6=(()=>{class t{_ngZone=m(de);_defaultOptions=m(KQA,{optional:!0});_liveElement;_document=m(tt);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=m(GQA,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=m(de);_platform=m(Zt);_inputModalityDetector=m(_QA);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=m(tt,{optional:!0});_stopInputModalityDetector=new HA;constructor(){let A=m(JQA,{optional:!0});this._detectionMode=A?.detectionMode||K6.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=Wa(A);for(let n=i;n;n=n.parentElement)A.type==="focus"?this._onFocus(A,n):this._onBlur(A,n)};monitor(A,i=!1){let n=sa(A);if(!this._platform.isBrowser||n.nodeType!==1)return ve();let o=BO(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new HA,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(A){let i=sa(A),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(A,i,n){let o=sa(A),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===K6.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===K6.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?kO:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(A,i){let n=this._elementInfo.get(i),o=Wa(A);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(A,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,U6),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,U6)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(wt(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,U6),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,U6),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,n){this._setClasses(A,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((n,o)=>{(o===A||n.checkChildren&&o.contains(A))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let o=A.labels;if(o){for(let r=0;r{class t{_elementRef=m(te);_focusMonitor=m(Jr);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new XA;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),GI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(GI||{}),wO="cdk-high-contrast-black-on-white",DO="cdk-high-contrast-white-on-black",jM="cdk-high-contrast-active",tk=(()=>{class t{_platform=m(Zt);_hasCheckedHighContrastMode;_document=m(tt);_breakpointSubscription;constructor(){this._breakpointSubscription=m(_6).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return GI.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(A):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(A.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return GI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return GI.BLACK_ON_WHITE}return GI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(jM,wO,DO),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===GI.BLACK_ON_WHITE?A.add(jM,wO):i===GI.WHITE_ON_BLACK&&A.add(jM,DO)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),q6=(()=>{class t{constructor(){m(tk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[gB]})}return t})(),qM={},$i=(()=>{class t{_appId=m(fI);getId(A){return this._appId!=="ng"&&(A+=this._appId),qM.hasOwnProperty(A)||(qM[A]=0),`${A}${qM[A]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var TQA=new BA("cdk-dir-doc",{providedIn:"root",factory:zQA});function zQA(){return m(tt)}var HQA=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function OQA(t){let e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?HQA.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}var bo=(()=>{class t{value="ltr";change=new XA;constructor(){let A=m(TQA,{optional:!0});if(A){let i=A.body?A.body.dir:null,n=A.documentElement?A.documentElement.dir:null;this.value=OQA(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var R2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();var PQA=["text"],jQA=[[["mat-icon"]],"*"],qQA=["mat-icon","*"];function VQA(t,e){if(t&1&&UA(0,"mat-pseudo-checkbox",1),t&2){let A=P();vA("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function ZQA(t,e){if(t&1&&UA(0,"mat-pseudo-checkbox",3),t&2){let A=P();vA("disabled",A.disabled)}}function WQA(t,e){if(t&1&&(S(0,"span",4),tA(1),R()),t&2){let A=P();_(),ot("(",A.group.label,")")}}var XQA=["mat-internal-form-field",""],$QA=["*"];var Ve=(()=>{class t{constructor(){m(tk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[R2,R2]})}return t})(),UI=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(e,A,i,n,o){this._defaultMatcher=e,this.ngControl=A,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let e=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,A)??!1;o!==e&&(this.errorState=o,this._stateChanges.next())}};var dB=(()=>{class t{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Qr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var _s=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(_s||{}),ok=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=_s.HIDDEN;constructor(e,A,i,n=!1){this._renderer=e,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},RO=og({passive:!0,capture:!0}),rk=class{_events=new Map;addHandler(e,A,i,n){let o=this._events.get(A);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(A,new Map([[i,new Set([n])]])),e.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,RO)})}removeHandler(e,A,i){let n=this._events.get(e);if(!n)return;let o=n.get(A);o&&(o.delete(i),o.size===0&&n.delete(A),n.size===0&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,RO)))}_delegateEventHandler=e=>{let A=Wa(e);A&&this._events.get(e.type)?.forEach((i,n)=>{(n===A||n.contains(A))&&i.forEach(o=>o.handleEvent(e))})}},Z6={enterDuration:225,exitDuration:150},AuA=800,LO=og({passive:!0,capture:!0}),xO=["mousedown","touchstart"],FO=["mouseup","mouseleave","touchend","touchcancel"],euA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),CB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new rk;constructor(e,A,i,n,o){this._target=e,this._ngZone=A,this._platform=n,n.isBrowser&&(this._containerElement=sa(i)),o&&o.get(Ln).load(euA)}fadeInRipple(e,A,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=nA(nA({},Z6),i.animation);i.centered&&(e=n.left+n.width/2,A=n.top+n.height/2);let r=i.radius||tuA(e,A,n),s=e-n.left,a=A-n.top,c=o.enterDuration,l=document.createElement("div");l.classList.add("mat-ripple-element"),l.style.left=`${s-r}px`,l.style.top=`${a-r}px`,l.style.height=`${r*2}px`,l.style.width=`${r*2}px`,i.color!=null&&(l.style.backgroundColor=i.color),l.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(l);let I=window.getComputedStyle(l),C=I.transitionProperty,d=I.transitionDuration,B=C==="none"||d==="0s"||d==="0s, 0s"||n.width===0&&n.height===0,E=new ok(this,l,i,B);l.style.transform="scale3d(1, 1, 1)",E.state=_s.FADING_IN,i.persistent||(this._mostRecentTransientRipple=E);let Q=null;return!B&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let u=()=>{Q&&(Q.fallbackTimer=null),clearTimeout(L),this._finishRippleTransition(E)},v=()=>this._destroyRipple(E),L=setTimeout(v,c+100);l.addEventListener("transitionend",u),l.addEventListener("transitioncancel",v),Q={onTransitionEnd:u,onTransitionCancel:v,fallbackTimer:L}}),this._activeRipples.set(E,Q),(B||!c)&&this._finishRippleTransition(E),E}fadeOutRipple(e){if(e.state===_s.FADING_OUT||e.state===_s.HIDDEN)return;let A=e.element,i=nA(nA({},Z6),e.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",e.state=_s.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){let A=sa(e);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,xO.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(e){e.type==="mousedown"?this._onMousedown(e):e.type==="touchstart"?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{FO.forEach(A=>{this._triggerElement.addEventListener(A,this,LO)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===_s.FADING_IN?this._startFadeOutTransition(e):e.state===_s.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){let A=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=_s.VISIBLE,!i&&(!A||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){let A=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=_s.HIDDEN,A!==null&&(e.element.removeEventListener("transitionend",A.onTransitionEnd),e.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),e.element.remove()}_onMousedown(e){let A=Ak(e),i=this._lastTouchStartEvent&&Date.now(){let A=e.state===_s.VISIBLE||e.config.terminateOnPointerUp&&e.state===_s.FADING_IN;!e.config.persistent&&A&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let e=this._triggerElement;e&&(xO.forEach(A=>t._eventManager.removeHandler(A,e,this)),this._pointerUpEventsRegistered&&(FO.forEach(A=>e.removeEventListener(A,this,LO)),this._pointerUpEventsRegistered=!1))}};function tuA(t,e,A){let i=Math.max(Math.abs(t-A.left),Math.abs(t-A.right)),n=Math.max(Math.abs(e-A.top),Math.abs(e-A.bottom));return Math.sqrt(i*i+n*n)}var L2=new BA("mat-ripple-global-options"),Gs=(()=>{class t{_elementRef=m(te);_animationMode=m(mi,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=m(de),i=m(Zt),n=m(L2,{optional:!0}),o=m(Dt);this._globalOptions=n||{},this._rippleRenderer=new CB(this,A,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:nA(nA(nA({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,n){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,nA(nA({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,nA(nA({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),Xa=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Ve]})}return t})(),ak=(()=>{class t{_animationMode=m(mi,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&ue("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),ck=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve]})}return t})(),lk=new BA("MAT_OPTION_PARENT_COMPONENT"),gk=new BA("MatOptgroup");var sk=class{source;isUserInput;constructor(e,A=!1){this.source=e,this.isUserInput=A}},x2=(()=>{class t{_element=m(te);_changeDetectorRef=m(lt);_parent=m(lk,{optional:!0});group=m(gk,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=m($i).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new XA;_text;_stateChanges=new HA;constructor(){let A=m(Ln);A.load(Qr),A.load(Cu),this._signalDisableRipple=!!this._parent&&h2(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!rr(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new sk(this,A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&Ge(PQA,7),i&2){let o;$A(o=Ae())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&mA("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(Fs("id",n.id),_e("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),ue("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",ae]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:qQA,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&(Yt(jQA),NA(0,VQA,1,2,"mat-pseudo-checkbox",1),xe(1),S(2,"span",2,0),xe(4,1),R(),NA(5,ZQA,1,1,"mat-pseudo-checkbox",3)(6,WQA,2,1,"span",4),UA(7,"div",5)),i&2&&(FA(n.multiple?0:-1),_(5),FA(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),_(),FA(n.group&&n.group._inert?6:-1),_(),vA("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[ak,Gs],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function UO(t,e,A){if(A.length){let i=e.toArray(),n=A.toArray(),o=0;for(let r=0;rA+i?Math.max(0,t-i+e):A}var Ik=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Xa,Ve,ck]})}return t})(),NO={capture:!0},_O=["focus","mousedown","mouseenter","touchstart"],ik="mat-ripple-loader-uninitialized",nk="mat-ripple-loader-class-name",GO="mat-ripple-loader-centered",V6="mat-ripple-loader-disabled",Ck=(()=>{class t{_document=m(tt,{optional:!0});_animationMode=m(mi,{optional:!0});_globalRippleOptions=m(L2,{optional:!0});_platform=m(Zt);_ngZone=m(de);_injector=m(Dt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of _O)this._document?.addEventListener(A,this._onInteraction,NO)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of _O)this._document?.removeEventListener(i,this._onInteraction,NO)}configureRipple(A,i){A.setAttribute(ik,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(nk))&&A.setAttribute(nk,i.className||""),i.centered&&A.setAttribute(GO,""),i.disabled&&A.setAttribute(V6,"")}setDisabled(A,i){let n=this._hosts.get(A);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(A))):i?A.setAttribute(V6,""):A.removeAttribute(V6)}_onInteraction=A=>{let i=Wa(A);if(i instanceof HTMLElement){let n=i.closest(`[${ik}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(nk)),A.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??Z6.enterDuration,s=n?0:o?.animation?.exitDuration??Z6.exitDuration,a={rippleDisabled:n||o?.disabled||A.hasAttribute(V6),rippleConfig:{centered:A.hasAttribute(GO),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new CB(a,this._ngZone,i,this._platform,this._injector),l=!a.rippleDisabled;l&&c.setupTriggerEvents(A),this._hosts.set(A,{target:a,renderer:c,hasSetUpEvents:l}),A.removeAttribute(ik)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),BB=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:XQA,ngContentSelectors:$QA,decls:1,vars:0,template:function(i,n){i&1&&(Yt(),xe(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var iuA=["mat-button",""],dk=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],Bk=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var nuA="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",ouA=["mat-fab",""],ruA=["mat-mini-fab",""],suA='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',auA=["mat-icon-button",""],cuA=["*"];var luA=new BA("MAT_BUTTON_CONFIG");var guA=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],X6=(()=>{class t{_elementRef=m(te);_ngZone=m(de);_animationMode=m(mi,{optional:!0});_focusMonitor=m(Jr);_rippleLoader=m(Ck);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){m(Ln).load(Qr);let A=m(luA,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of guA)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",ae],disabled:[2,"disabled","disabled",ae],ariaDisabled:[2,"aria-disabled","ariaDisabled",ae],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae]}})}return t})();var ur=(()=>{class t extends X6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(_e("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),vo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[et],attrs:iuA,ngContentSelectors:Bk,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Yt(dk),UA(0,"span",0),xe(1),S(2,"span",1),xe(3,1),R(),xe(4,2),UA(5,"span",2)(6,"span",3)),i&2&&ue("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var JO=new BA("mat-mdc-fab-default-options",{providedIn:"root",factory:TO});function TO(){return{color:"accent"}}var W6=TO(),zO=(()=>{class t extends X6{_options=m(JO,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||W6,this.color=this._options.color||W6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(_e("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),vo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",ae]},exportAs:["matButton"],features:[et],attrs:ouA,ngContentSelectors:Bk,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Yt(dk),UA(0,"span",0),xe(1),S(2,"span",1),xe(3,1),R(),xe(4,2),UA(5,"span",2)(6,"span",3)),i&2&&ue("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),HO=(()=>{class t extends X6{_options=m(JO,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||W6,this.color=this._options.color||W6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(_e("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),vo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[et],attrs:ruA,ngContentSelectors:Bk,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Yt(dk),UA(0,"span",0),xe(1),S(2,"span",1),xe(3,1),R(),xe(4,2),UA(5,"span",2)(6,"span",3)),i&2&&ue("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[suA],encapsulation:2,changeDetection:0})}return t})();var EB=(()=>{class t extends X6{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(_e("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),vo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[et],attrs:auA,ngContentSelectors:cuA,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Yt(),UA(0,"span",0),xe(1),UA(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',nuA],encapsulation:2,changeDetection:0})}return t})();var KI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Xa,Ve]})}return t})();var $6=class{};function A8(t){return t&&typeof t.connect=="function"&&!(t instanceof r2)}var hB=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(hB||{}),Qu=new BA("_ViewRepeater"),QB=class{applyChanges(e,A,i,n,o){e.forEachOperation((r,s,a)=>{let c,l;if(r.previousIndex==null){let I=i(r,s,a);c=A.createEmbeddedView(I.templateRef,I.context,I.index),l=hB.INSERTED}else a==null?(A.remove(s),l=hB.REMOVED):(c=A.get(s),A.move(c,a),l=hB.MOVED);o&&o({context:c?.context,operation:l,record:r})})}detach(){}};var F2=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new HA;constructor(e=!1,A,i=!0,n){this._multiple=e,this._emitChanges=i,this.compareWith=n,A&&A.length&&(e?A.forEach(o=>this._markSelected(o)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...e){this._verifyValueAssignment(e);let A=this.selected,i=new Set(e);e.forEach(o=>this._markSelected(o)),A.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let A=this._hasQueuedChanges();return e&&this._emitChangeEvent(),A}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(e,i))return i;return e}else return e}};var uB=(()=>{class t{_listeners=[];notify(A,i){for(let n of this._listeners)n(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var IuA=20,N2=(()=>{class t{_ngZone=m(de);_platform=m(Zt);_renderer=m(ds).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new HA;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=IuA){return this._platform.isBrowser?new Ze(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=A>0?this._scrolled.pipe(Cd(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ve()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let n=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(pt(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,A)&&i.push(o)}),i}_scrollableContainsElement(A,i){let n=sa(i),o=A.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),h0=(()=>{class t{elementRef=m(te);scrollDispatcher=m(N2);ngZone=m(de);dir=m(bo,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new HA;_renderer=m(Gi);_cleanupScroll;_elementScrolled=new HA;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=n?A.end:A.start),A.right==null&&(A.right=n?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),n&&aB()!=ol.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),aB()==ol.INVERTED?A.left=A.right:aB()==ol.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;x6()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",n="right",o=this.elementRef.nativeElement;if(A=="top")return o.scrollTop;if(A=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return A=="start"?A=r?n:i:A=="end"&&(A=r?i:n),r&&aB()==ol.INVERTED?A==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&aB()==ol.NEGATED?A==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:A==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),CuA=20,mc=(()=>{class t{_platform=m(Zt);_listeners;_viewportSize;_change=new HA;_document=m(tt,{optional:!0});constructor(){let A=m(de),i=m(ds).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+n,right:A.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),n=A.documentElement,o=n.getBoundingClientRect(),r=-o.top||A.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||A.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(A=CuA){return A>0?this._change.pipe(Cd(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var E0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})(),uu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[R2,E0,R2,E0]})}return t})();var fu=class{_attachedHost;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},sl=class extends fu{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(e,A,i,n,o){super(),this.component=e,this.viewContainerRef=A,this.injector=i,this.projectableNodes=o}},aa=class extends fu{templateRef;viewContainerRef;context;injector;constructor(e,A,i,n){super(),this.templateRef=e,this.viewContainerRef=A,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,A=this.context){return this.context=A,super.attach(e)}detach(){return this.context=void 0,super.detach()}},Ek=class extends fu{element;constructor(e){super(),this.element=e instanceof te?e.nativeElement:e}},_2=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof sl)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof aa)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof Ek)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var e8=class extends _2{outletElement;_appRef;_defaultInjector;_document;constructor(e,A,i,n,o){super(),this.outletElement=e,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(e){let A;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(i0,null,{optional:!0})||void 0;A=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=wp(e.component,{elementInjector:e.injector||this._defaultInjector||Dt.NULL,environmentInjector:this._appRef.injector,projectableNodes:e.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=e,A}attachTemplatePortal(e){let A=e.viewContainerRef,i=A.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=A.indexOf(i);n!==-1&&A.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let A=e.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var OO=(()=>{class t extends aa{constructor(){let A=m(vn),i=m(Un);super(A,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[et]})}return t})();var ca=(()=>{class t extends _2{_moduleRef=m(i0,{optional:!0});_document=m(tt);_viewContainerRef=m(Un);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new XA;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,n=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=A,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let n=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[et]})}return t})();var sg=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();var PO=x6(),hk=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,A){this._viewportRuler=e,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=sr(-this._previousScrollPosition.left),e.style.top=sr(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,A=this._document.body,i=e.style,n=A.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),PO&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),PO&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var Qk=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,A,i,n){this._scrollDispatcher=e,this._ngZone=A,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(pt(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},t8=class{enable(){}disable(){}attach(){}};function uk(t,e){return e.some(A=>{let i=t.bottomA.bottom,o=t.rightA.right;return i||n||o||r})}function jO(t,e){return e.some(A=>{let i=t.topA.bottom,o=t.leftA.right;return i||n||o||r})}var fk=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,A,i,n){this._scrollDispatcher=e,this._viewportRuler=A,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();uk(A,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},BuA=(()=>{class t{_scrollDispatcher=m(N2);_viewportRuler=m(mc);_ngZone=m(de);_document=m(tt);constructor(){}noop=()=>new t8;close=A=>new Qk(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new hk(this._viewportRuler,this._document);reposition=A=>new fk(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),G2=class{positionStrategy;scrollStrategy=new t8;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(e){if(e){let A=Object.keys(e);for(let i of A)e[i]!==void 0&&(this[i]=e[i])}}};var mk=class{connectionPair;scrollableViewProperties;constructor(e,A){this.connectionPair=e,this.scrollableViewProperties=A}};var $O=(()=>{class t{_attachedOverlays=[];_document=m(tt);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),EuA=(()=>{class t extends $O{_ngZone=m(de);_renderer=m(ds).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),huA=(()=>{class t extends $O{_platform=m(Zt);_ngZone=m(de,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=Wa(A)};_clickListener=A=>{let i=Wa(A),n=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(qO(s.overlayElement,i)||qO(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(A)):a.next(A)}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function qO(t,e){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===t)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var AP=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),i8=(()=>{class t{_platform=m(Zt);_containerElement;_document=m(tt);_styleLoader=m(Ln);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||zM()){let n=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let o=0;o{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},fB=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new HA;_attachments=new HA;_detachments=new HA;_positionStrategy;_scrollStrategy;_locationChanges=_t.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new HA;_outsidePointerEvents=new HA;_renders=new HA;_afterRenderRef;_afterNextRenderRef;constructor(e,A,i,n,o,r,s,a,c,l=!1,I,C){this._portalOutlet=e,this._host=A,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=l,this._injector=I,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=ia(()=>IQ(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Vo(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=nA(nA({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Ne(nA({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=sr(this._config.width),e.height=sr(this._config.height),e.minWidth=sr(this._config.minWidth),e.minHeight=sr(this._config.minHeight),e.maxWidth=sr(this._config.maxWidth),e.maxHeight=sr(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new pk(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,A,i){let n=lB(A||[]).filter(o=>!!o);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let e=this._renders.pipe(wt(ho(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},VO="cdk-overlay-connected-position-bounding-box",QuA=/([A-Za-z%]+)$/,wk=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new HA;_resizeSubscription=_t.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,A,i,n,o){this._viewportRuler=A,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(VO),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._originRect,A=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(e,n,s),c=this._getOverlayPoint(a,A,s),l=this._getOverlayFit(c,A,i,s);if(l.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(l,c,i)){o.push({position:s,origin:a,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=l,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&YI(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(VO),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,A)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,A,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,s=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:s}A.left<0&&(n-=A.left);let o;return i.originY=="center"?o=e.top+e.height/2:o=i.originY=="top"?e.top:e.bottom,A.top<0&&(o-=A.top),{x:n,y:o}}_getOverlayPoint(e,A,i){let n;i.overlayX=="center"?n=-A.width/2:i.overlayX==="start"?n=this._isRtl()?-A.width:0:n=this._isRtl()?0:-A.width;let o;return i.overlayY=="center"?o=-A.height/2:o=i.overlayY=="top"?0:-A.height,{x:e.x+n,y:e.y+o}}_getOverlayFit(e,A,i,n){let o=WO(A),{x:r,y:s}=e,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let l=0-r,I=r+o.width-i.width,C=0-s,d=s+o.height-i.height,B=this._subtractOverflows(o.width,l,I),E=this._subtractOverflows(o.height,C,d),Q=B*E;return{visibleArea:Q,isCompletelyWithinViewport:o.width*o.height===Q,fitsInViewportVertically:E===o.height,fitsInViewportHorizontally:B==o.width}}_canFitWithFlexibleDimensions(e,A,i){if(this._hasFlexibleDimensions){let n=i.bottom-A.y,o=i.right-A.x,r=ZO(this._overlayRef.getConfig().minHeight),s=ZO(this._overlayRef.getConfig().minWidth),a=e.fitsInViewportVertically||r!=null&&r<=n,c=e.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(e,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=WO(A),o=this._viewportRect,r=Math.max(e.x+n.width-o.width,0),s=Math.max(e.y+n.height-o.height,0),a=Math.max(o.top-i.top-e.y,0),c=Math.max(o.left-i.left-e.x,0),l=0,I=0;return n.width<=o.width?l=c||-r:l=e.xB&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-B/2)}let a=A.overlayX==="start"&&!n||A.overlayX==="end"&&n,c=A.overlayX==="end"&&!n||A.overlayX==="start"&&n,l,I,C;if(c)C=i.width-e.x+this._viewportMargin*2,l=e.x-this._viewportMargin;else if(a)I=e.x,l=i.right-e.x;else{let d=Math.min(i.right-e.x+i.left,e.x),B=this._lastBoundingBoxSize.width;l=d*2,I=e.x-d,l>B&&!this._isInitialRender&&!this._growAfterOpen&&(I=e.x-B/2)}return{top:r,left:I,bottom:s,right:C,width:l,height:o}}_setBoundingBoxStyles(e,A){let i=this._calculateBoundingBoxRect(e,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=sr(i.height),n.top=sr(i.top),n.bottom=sr(i.bottom),n.width=sr(i.width),n.left=sr(i.left),n.right=sr(i.right),A.overlayX==="center"?n.alignItems="center":n.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?n.justifyContent="center":n.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=sr(o)),r&&(n.maxWidth=sr(r))}this._lastBoundingBoxSize=i,YI(this._boundingBox.style,n)}_resetBoundingBoxStyles(){YI(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){YI(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,A){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let l=this._viewportRuler.getViewportScrollPosition();YI(i,this._getExactOverlayY(A,e,l)),YI(i,this._getExactOverlayX(A,e,l))}else i.position="static";let s="",a=this._getOffset(A,"x"),c=this._getOffset(A,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=sr(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=sr(r.maxWidth):o&&(i.maxWidth="")),YI(this._pane.style,i)}_getExactOverlayY(e,A,i){let n={top:"",bottom:""},o=this._getOverlayPoint(A,this._overlayRect,e);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=sr(o.y);return n}_getExactOverlayX(e,A,i){let n={left:"",right:""},o=this._getOverlayPoint(A,this._overlayRect,e);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=sr(o.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:jO(e,i),isOriginOutsideView:uk(e,i),isOverlayClipped:jO(A,i),isOverlayOutsideView:uk(A,i)}}_subtractOverflows(e,...A){return A.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:e-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,A){return A==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&lB(e).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){let e=this._origin;if(e instanceof te)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let A=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+A,height:i,width:A}}};function YI(t,e){for(let A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return t}function ZO(t){if(typeof t!="number"&&t!=null){let[e,A]=t.split(QuA);return!A||A==="px"?parseFloat(e):null}return t||null}function WO(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function uuA(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}var XO="cdk-global-overlay-wrapper",Dk=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let A=e.getConfig();this._overlayRef=e,this._width&&!A.width&&e.updateSize({width:this._width}),this._height&&!A.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(XO),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),l=this._xPosition,I=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",d="",B="",E="";a?E="flex-start":l==="center"?(E="center",C?B=I:d=I):C?l==="left"||l==="end"?(E="flex-end",d=I):(l==="right"||l==="start")&&(E="flex-start",B=I):l==="left"||l==="start"?(E="flex-start",d=I):(l==="right"||l==="end")&&(E="flex-end",B=I),e.position=this._cssPosition,e.marginLeft=a?"0":d,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=a?"0":B,A.justifyContent=E,A.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(XO),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},fuA=(()=>{class t{_viewportRuler=m(mc);_document=m(tt);_platform=m(Zt);_overlayContainer=m(i8);constructor(){}global(){return new Dk}flexibleConnectedTo(A){return new wk(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Sr=(()=>{class t{scrollStrategies=m(BuA);_overlayContainer=m(i8);_positionBuilder=m(fuA);_keyboardDispatcher=m(EuA);_injector=m(Dt);_ngZone=m(de);_document=m(tt);_directionality=m(bo);_location=m(Qc);_outsideClickDispatcher=m(huA);_animationsModuleType=m(mi,{optional:!0});_idGenerator=m($i);_renderer=m(ds).createRenderer(null,null);_appRef;_styleLoader=m(Ln);constructor(){}create(A){this._styleLoader.load(AP);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new G2(A);return r.direction=r.direction||this._directionality.value,new fB(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(Br),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(Ua)),new e8(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),muA=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],eP=new BA("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=m(Sr);return()=>t.scrollStrategies.reposition()}}),mu=(()=>{class t{elementRef=m(te);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),yk=(()=>{class t{_overlay=m(Sr);_dir=m(bo,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=_t.EMPTY;_attachSubscription=_t.EMPTY;_detachSubscription=_t.EMPTY;_positionSubscription=_t.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=m(eP);_disposeOnNavigation=!1;_ngZone=m(de);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new XA;positionChange=new XA;attach=new XA;detach=new XA;overlayKeydown=new XA;overlayOutsideClick=new XA;constructor(){let A=m(vn),i=m(Un);this._templatePortal=new aa(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=muA);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!rr(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=Wa(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new G2({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof mu?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof mu?this.origin.elementRef.nativeElement:this.origin instanceof te?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe($7(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",ae],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",ae],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",ae],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",ae],push:[2,"cdkConnectedOverlayPush","push",ae],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",ae]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Kt]})}return t})();function puA(t){return()=>t.scrollStrategies.reposition()}var wuA={provide:eP,deps:[Sr],useFactory:puA},u0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[Sr,wuA],imports:[R2,sg,uu,uu]})}return t})();var vk=class{_box;_destroyed=new HA;_resizeSubject=new HA;_resizeObserver;_elementObservables=new Map;constructor(e){this._box=e,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(e){return this._elementObservables.has(e)||this._elementObservables.set(e,new Ze(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(e,{box:this._box}),()=>{this._resizeObserver?.unobserve(e),i.unsubscribe(),this._elementObservables.delete(e)}}).pipe(pt(A=>A.some(i=>i.target===e)),$g({bufferSize:1,refCount:!0}),wt(this._destroyed))),this._elementObservables.get(e)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},n8=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=m(de);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new vk(n)),this._observers.get(n).observe(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Wt=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(Wt||{}),pc="*";function cg(t,e){return{type:Wt.Trigger,name:t,definitions:e,options:{}}}function $a(t,e=null){return{type:Wt.Animate,styles:e,timings:t}}function tP(t,e=null){return{type:Wt.Sequence,steps:t,options:e}}function ar(t){return{type:Wt.Style,styles:t,offset:null}}function wc(t,e,A){return{type:Wt.State,name:t,styles:e,options:A}}function la(t,e,A=null){return{type:Wt.Transition,expr:t,animation:e,options:A}}function bk(t=null){return{type:Wt.AnimateChild,options:t}}function Mk(t,e,A=null){return{type:Wt.Query,selector:t,animation:e,options:A}}var ag=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(e=0,A=0){this.totalTime=e+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},JI=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(e){this.players=e;let A=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++A==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){let A=e*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(n)})}getPosition(){let e=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},mB="!";var DuA=["notch"],yuA=["matFormFieldNotchedOutline",""],vuA=["*"],buA=["textField"],MuA=["iconPrefixContainer"],kuA=["textPrefixContainer"],SuA=["iconSuffixContainer"],RuA=["textSuffixContainer"],LuA=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],xuA=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function FuA(t,e){t&1&&UA(0,"span",21)}function NuA(t,e){if(t&1&&(S(0,"label",20),xe(1,1),NA(2,FuA,1,0,"span",21),R()),t&2){let A=P(2);vA("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),_e("for",A._control.disableAutomaticLabeling?null:A._control.id),_(2),FA(!A.hideRequiredMarker&&A._control.required?2:-1)}}function _uA(t,e){if(t&1&&NA(0,NuA,3,5,"label",20),t&2){let A=P();FA(A._hasFloatingLabel()?0:-1)}}function GuA(t,e){t&1&&UA(0,"div",7)}function UuA(t,e){}function KuA(t,e){if(t&1&&NA(0,UuA,0,0,"ng-template",13),t&2){P(2);let A=or(1);vA("ngTemplateOutlet",A)}}function YuA(t,e){if(t&1&&(S(0,"div",9),NA(1,KuA,1,1,null,13),R()),t&2){let A=P();vA("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),_(),FA(A._forceDisplayInfixLabel()?-1:1)}}function JuA(t,e){t&1&&(S(0,"div",10,2),xe(2,2),R())}function TuA(t,e){t&1&&(S(0,"div",11,3),xe(2,3),R())}function zuA(t,e){}function HuA(t,e){if(t&1&&NA(0,zuA,0,0,"ng-template",13),t&2){P();let A=or(1);vA("ngTemplateOutlet",A)}}function OuA(t,e){t&1&&(S(0,"div",14,4),xe(2,4),R())}function PuA(t,e){t&1&&(S(0,"div",15,5),xe(2,5),R())}function juA(t,e){t&1&&UA(0,"div",16)}function quA(t,e){if(t&1&&(S(0,"div",18),xe(1,6),R()),t&2){let A=P();vA("@transitionMessages",A._subscriptAnimationState)}}function VuA(t,e){if(t&1&&(S(0,"mat-hint",22),tA(1),R()),t&2){let A=P(2);vA("id",A._hintLabelId),_(),Mt(A.hintLabel)}}function ZuA(t,e){if(t&1&&(S(0,"div",19),NA(1,VuA,2,2,"mat-hint",22),xe(2,7),UA(3,"div",23),xe(4,8),R()),t&2){let A=P();vA("@transitionMessages",A._subscriptAnimationState),_(),FA(A.hintLabel?1:-1)}}var r8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["mat-label"]]})}return t})(),WuA=new BA("MatError");var iP=(()=>{class t{align="start";id=m($i).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(Fs("id",n.id),_e("align",null),ue("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),XuA=new BA("MatPrefix");var lP=new BA("MatSuffix"),gP=(()=>{class t{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[ct([{provide:lP,useExisting:t}])]})}return t})(),IP=new BA("FloatingLabelParent"),nP=(()=>{class t{_elementRef=m(te);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=m(n8);_ngZone=m(de);_parent=m(IP);_resizeSubscription=new _t;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return $uA(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function $uA(t){let e=t;if(e.offsetParent!==null)return e.scrollWidth;let A=e.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var oP="mdc-line-ripple--active",o8="mdc-line-ripple--deactivating",rP=(()=>{class t{_elementRef=m(te);_cleanupTransitionEnd;constructor(){let A=m(de),i=m(Gi);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(o8),A.add(oP)}deactivate(){this._elementRef.nativeElement.classList.add(o8)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,n=i.contains(o8);A.propertyName==="opacity"&&n&&i.remove(oP,o8)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),sP=(()=>{class t{_elementRef=m(te);_ngZone=m(de);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&Ge(DuA,5),i&2){let o;$A(o=Ae())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:yuA,ngContentSelectors:vuA,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&(Yt(),UA(0,"div",1),S(1,"div",2,0),xe(3),R(),UA(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),A4A={transitionMessages:cg("transitionMessages",[wc("enter",ar({opacity:1,transform:"translateY(0%)"})),la("void => enter",[ar({opacity:0,transform:"translateY(-5px)"}),$a("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},pu=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t})}return t})();var wu=new BA("MatFormField"),e4A=new BA("MAT_FORM_FIELD_DEFAULT_OPTIONS"),aP="fill",t4A="auto",cP="fixed",i4A="translateY(-50%)",lg=(()=>{class t{_elementRef=m(te);_changeDetectorRef=m(lt);_dir=m(bo);_platform=m(Zt);_idGenerator=m($i);_defaults=m(e4A,{optional:!0});_animationMode=m(mi,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=mT(r8);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Yo(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||t4A}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,n=A||this._defaults?.appearance||aP;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=aP;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||cP}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||cP}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new HA;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=m(Dt);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=c0(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,n="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(n+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(Qo([void 0,void 0]),Je(()=>[i.errorState,i.userAriaDescribedBy]),am(),pt(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(wt(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),ho(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),IQ(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(wt(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=c0(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),n&&A.push(n.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,I=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,B=`calc(${I} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( + --mat-mdc-form-field-label-transform, + ${i4A} translateX(${B}) + )`;let E=s+a+c+l;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${E}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(zT(o,n._labelChild,r8,5),Ii(o,pu,5),Ii(o,XuA,5),Ii(o,lP,5),Ii(o,WuA,5),Ii(o,iP,5)),i&2){HT();let r;$A(r=Ae())&&(n._formFieldControl=r.first),$A(r=Ae())&&(n._prefixChildren=r),$A(r=Ae())&&(n._suffixChildren=r),$A(r=Ae())&&(n._errorChildren=r),$A(r=Ae())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(Ge(buA,5),Ge(MuA,5),Ge(kuA,5),Ge(SuA,5),Ge(RuA,5),Ge(nP,5),Ge(sP,5),Ge(rP,5)),i&2){let o;$A(o=Ae())&&(n._textField=o.first),$A(o=Ae())&&(n._iconPrefixContainer=o.first),$A(o=Ae())&&(n._textPrefixContainer=o.first),$A(o=Ae())&&(n._iconSuffixContainer=o.first),$A(o=Ae())&&(n._textSuffixContainer=o.first),$A(o=Ae())&&(n._floatingLabel=o.first),$A(o=Ae())&&(n._notchedOutline=o.first),$A(o=Ae())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&ue("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ct([{provide:wu,useExisting:t},{provide:IP,useExisting:t}])],ngContentSelectors:xuA,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=De();Yt(LuA),NA(0,_uA,1,1,"ng-template",null,0,fQ),S(2,"div",6,1),mA("click",function(s){return LA(o),xA(n._control.onContainerClick(s))}),NA(4,GuA,1,0,"div",7),S(5,"div",8),NA(6,YuA,2,2,"div",9)(7,JuA,3,0,"div",10)(8,TuA,3,0,"div",11),S(9,"div",12),NA(10,HuA,1,1,null,13),xe(11),R(),NA(12,OuA,3,0,"div",14)(13,PuA,3,0,"div",15),R(),NA(14,juA,1,0,"div",16),R(),S(15,"div",17),NA(16,quA,2,1,"div",18)(17,ZuA,5,2,"div",19),R()}if(i&2){let o;_(2),ue("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),_(2),FA(!n._hasOutline()&&!n._control.disabled?4:-1),_(2),FA(n._hasOutline()?6:-1),_(),FA(n._hasIconPrefix?7:-1),_(),FA(n._hasTextPrefix?8:-1),_(2),FA(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),_(2),FA(n._hasTextSuffix?12:-1),_(),FA(n._hasIconSuffix?13:-1),_(),FA(n._hasOutline()?-1:14),_(),ue("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),_(),FA((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[nP,sP,vQ,rP,iP],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[A4A.transitionMessages]},changeDetection:0})}return t})(),f0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,gB,Ve]})}return t})();var n4A=["trigger"],o4A=["panel"],r4A=[[["mat-select-trigger"]],"*"],s4A=["mat-select-trigger","*"];function a4A(t,e){if(t&1&&(S(0,"span",4),tA(1),R()),t&2){let A=P();_(),Mt(A.placeholder)}}function c4A(t,e){t&1&&xe(0)}function l4A(t,e){if(t&1&&(S(0,"span",11),tA(1),R()),t&2){let A=P(2);_(),Mt(A.triggerValue)}}function g4A(t,e){if(t&1&&(S(0,"span",5),NA(1,c4A,1,0)(2,l4A,2,1,"span",11),R()),t&2){let A=P();_(),FA(A.customTrigger?1:2)}}function I4A(t,e){if(t&1){let A=De();S(0,"div",12,1),mA("@transformPanel.done",function(n){LA(A);let o=P();return xA(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){LA(A);let o=P();return xA(o._handleKeydown(n))}),xe(2,1),R()}if(t&2){let A=P();TT("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),vA("ngClass",A.panelClass)("@transformPanel","showing"),_e("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var C4A={transformPanelWrap:cg("transformPanelWrap",[la("* => void",Mk("@transformPanel",[bk()],{optional:!0}))]),transformPanel:cg("transformPanel",[wc("void",ar({opacity:0,transform:"scale(1, 0.8)"})),la("void => showing",$a("120ms cubic-bezier(0, 0, 0.2, 1)",ar({opacity:1,transform:"scale(1, 1)"}))),la("* => void",$a("100ms linear",ar({opacity:0})))])};var CP=new BA("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=m(Sr);return()=>t.scrollStrategies.reposition()}});function d4A(t){return()=>t.scrollStrategies.reposition()}var B4A=new BA("MAT_SELECT_CONFIG"),E4A={provide:CP,deps:[Sr],useFactory:d4A},h4A=new BA("MatSelectTrigger"),kk=class{source;value;constructor(e,A){this.source=e,this.value=A}},pB=(()=>{class t{_viewportRuler=m(mc);_changeDetectorRef=m(lt);_elementRef=m(te);_dir=m(bo,{optional:!0});_idGenerator=m($i);_parentFormField=m(wu,{optional:!0});ngControl=m(Pa,{self:!0,optional:!0});_liveAnnouncer=m(j6);_defaultOptions=m(B4A,{optional:!0});_initialized=new HA;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let n=this.panel.nativeElement,o=UO(A,this.options,this.optionGroups),r=i._getHostElement();A===0&&o===1?n.scrollTop=0:n.scrollTop=KO(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new kk(this,A)}_scrollStrategyFactory=m(CP);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new HA;_errorStateTracker;stateChanges=new HA;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new HA;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Oa.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=Yl(()=>{let A=this.options;return A?A.changes.pipe(Qo(A),no(()=>ho(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe(no(()=>this.optionSelectionChanges))});openedChange=new XA;_openedStream=this.openedChange.pipe(pt(A=>A),Je(()=>{}));_closedStream=this.openedChange.pipe(pt(A=>!A),Je(()=>{}));selectionChange=new XA;valueChange=new XA;constructor(){let A=m(dB),i=m(jQ,{optional:!0}),n=m(bI,{optional:!0}),o=m(new Er("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new UI(A,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new F2(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Zc(),wt(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(wt(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(wt(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Qo(null),wt(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?n.setAttribute("aria-labelledby",A):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&O6(this._trackedModal,"aria-owns",i),$M(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;O6(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!rr(A)||(this.multiple||A.altKey)&&n)A.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(A);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,n=A.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&A.altKey)A.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!rr(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&A.ctrlKey){A.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(A),this._multiple&&o&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Pn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof mu?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new T6(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=ho(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(wt(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),ho(...this.options.map(i=>i._stateChanges)).pipe(wt(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let n=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(n!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,A):A.indexOf(i)-A.indexOf(n)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(Ii(o,h4A,5),Ii(o,x2,5),Ii(o,gk,5)),i&2){let r;$A(r=Ae())&&(n.customTrigger=r.first),$A(r=Ae())&&(n.options=r),$A(r=Ae())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(Ge(n4A,5),Ge(o4A,5),Ge(yk,5)),i&2){let o;$A(o=Ae())&&(n.trigger=o.first),$A(o=Ae())&&(n.panel=o.first),$A(o=Ae())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(_e("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),ue("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",ae],disableRipple:[2,"disableRipple","disableRipple",ae],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Mi(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ae],placeholder:"placeholder",required:[2,"required","required",ae],multiple:[2,"multiple","multiple",ae],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",ae],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",Mi],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",ae]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ct([{provide:pu,useExisting:t},{provide:lk,useExisting:t}]),Kt],ngContentSelectors:s4A,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=De();Yt(r4A),S(0,"div",2,0),mA("click",function(){return LA(o),xA(n.open())}),S(3,"div",3),NA(4,a4A,2,1,"span",4)(5,g4A,3,1,"span",5),R(),S(6,"div",6)(7,"div",7),hr(),S(8,"svg",8),UA(9,"path",9),R()()()(),NA(10,I4A,3,9,"ng-template",10),mA("backdropClick",function(){return LA(o),xA(n.close())})("attach",function(){return LA(o),xA(n._onAttached())})("detach",function(){return LA(o),xA(n.close())})}if(i&2){let o=or(1);_(3),_e("id",n._valueId),_(),FA(n.empty?4:5),_(6),vA("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[mu,yk,Ha],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[C4A.transformPanel]},changeDetection:0})}return t})();var a8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[E4A],imports:[u0,Ik,Ve,E0,f0,Ik,Ve]})}return t})();var Q4A=["tooltip"],hP=20;var QP=new BA("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=m(Sr);return()=>t.scrollStrategies.reposition({scrollThrottle:hP})}});function u4A(t){return()=>t.scrollStrategies.reposition({scrollThrottle:hP})}var f4A={provide:QP,deps:[Sr],useFactory:u4A};function m4A(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var p4A=new BA("mat-tooltip-default-options",{providedIn:"root",factory:m4A});var BP="tooltip-panel",EP=og({passive:!0}),w4A=8,D4A=8,y4A=24,v4A=200,wB=(()=>{class t{_elementRef=m(te);_ngZone=m(de);_platform=m(Zt);_ariaDescriber=m(bO);_focusMonitor=m(Jr);_dir=m(bo);_injector=m(Dt);_defaultOptions=m(p4A,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=b4A;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Yo(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Yo(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=Ns(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=Ns(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new HA;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=w4A}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(wt(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{A.removeEventListener(i,n,EP)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new sl(this._tooltipComponent,this._injector.get(Un));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(wt(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&r._origin instanceof te)return this._overlayRef;this._detach()}let i=this._injector.get(N2).getAncestorScrollContainers(this._elementRef),n=this._injector.get(Sr),o=n.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(wt(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${BP}`,scrollStrategy:this._injector.get(QP)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(wt(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(wt(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(wt(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!rr(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(wt(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(nA(nA({},n.main),o.main)),this._addOffset(nA(nA({},n.fallback),o.fallback))])}_addOffset(A){let i=D4A,n=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=n?-i:i:A.originX==="end"&&(A.offsetX=n?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Vo(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:n,originY:o}=A,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${BP}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,EP)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(tt).elementFromPoint(A.clientX,A.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,n=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(A==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||Vo({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),b4A=(()=>{class t{_changeDetectorRef=m(lt);_elementRef=m(te);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new HA;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=m(mi,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>y4A&&A.width>=v4A}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(A?o:n),i.classList.add(A?n:o),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&Ge(Q4A,7),i&2){let o;$A(o=Ae())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&mA("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=De();S(0,"div",1,0),mA("animationend",function(s){return LA(o),xA(n._handleAnimationEnd(s))}),S(2,"div",2),tA(3),R()()}i&2&&(ue("mdc-tooltip--multiline",n._isMultiline),vA("ngClass",n.tooltipClass),_(3),Mt(n.message))},dependencies:[Ha],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var c8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[f4A],imports:[q6,u0,Ve,Ve,E0]})}return t})();function M4A(t,e){if(t&1&&(S(0,"mat-option",17),tA(1),R()),t&2){let A=e.$implicit;vA("value",A),_(),ot(" ",A," ")}}function k4A(t,e){if(t&1){let A=De();S(0,"mat-form-field",14)(1,"mat-select",16,0),mA("selectionChange",function(n){LA(A);let o=P(2);return xA(o._changePageSize(n.value))}),ln(3,M4A,2,2,"mat-option",17,Kn),R(),S(5,"div",18),mA("click",function(){LA(A);let n=or(2);return xA(n.open())}),R()()}if(t&2){let A=P(2);vA("appearance",A._formFieldAppearance)("color",A.color),_(),vA("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),_(2),gn(A._displayedPageSizeOptions)}}function S4A(t,e){if(t&1&&(S(0,"div",15),tA(1),R()),t&2){let A=P(2);_(),Mt(A.pageSize)}}function R4A(t,e){if(t&1&&(S(0,"div",3)(1,"div",13),tA(2),R(),NA(3,k4A,6,7,"mat-form-field",14)(4,S4A,2,1,"div",15),R()),t&2){let A=P();_(),_e("id",A._pageSizeLabelId),_(),ot(" ",A._intl.itemsPerPageLabel," "),_(),FA(A._displayedPageSizeOptions.length>1?3:-1),_(),FA(A._displayedPageSizeOptions.length<=1?4:-1)}}function L4A(t,e){if(t&1){let A=De();S(0,"button",19),mA("click",function(){LA(A);let n=P();return xA(n._buttonClicked(0,n._previousButtonsDisabled()))}),hr(),S(1,"svg",8),UA(2,"path",20),R()()}if(t&2){let A=P();vA("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),_e("aria-label",A._intl.firstPageLabel)}}function x4A(t,e){if(t&1){let A=De();S(0,"button",21),mA("click",function(){LA(A);let n=P();return xA(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),hr(),S(1,"svg",8),UA(2,"path",22),R()()}if(t&2){let A=P();vA("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),_e("aria-label",A._intl.lastPageLabel)}}var TI=(()=>{class t{changes=new HA;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=A*i,r=o{class t{_intl=m(TI);_changeDetectorRef=m(lt);_formFieldAppearance;_pageSizeLabelId=m($i).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new qc(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>Mi(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new XA;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=m(G4A,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",Mi],length:[2,"length","length",Mi],pageSize:[2,"pageSize","pageSize",Mi],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",ae],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",ae],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",ae]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2),NA(2,R4A,5,4,"div",3),S(3,"div",4)(4,"div",5),tA(5),R(),NA(6,L4A,3,4,"button",6),S(7,"button",7),mA("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),hr(),S(8,"svg",8),UA(9,"path",9),R()(),uI(),S(10,"button",10),mA("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),hr(),S(11,"svg",8),UA(12,"path",11),R()(),NA(13,x4A,3,4,"button",12),R()()()),i&2&&(_(2),FA(n.hidePageSize?-1:2),_(3),ot(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),_(),FA(n.showFirstLastButtons?6:-1),_(),vA("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),_e("aria-label",n._intl.previousPageLabel),_(3),vA("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),_e("aria-label",n._intl.nextPageLabel),_(3),FA(n.showFirstLastButtons?13:-1))},dependencies:[lg,pB,x2,EB,wB],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})(),fP=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[N4A],imports:[KI,a8,c8,Sk]})}return t})();function K4A(t,e){if(t&1){let A=De();S(0,"div",1)(1,"button",2),mA("click",function(){LA(A);let n=P();return xA(n.action())}),tA(2),R()()}if(t&2){let A=P();_(2),ot(" ",A.data.action," ")}}var Y4A=["label"];function J4A(t,e){}var T4A=Math.pow(2,31)-1,Du=class{_overlayRef;instance;containerInstance;_afterDismissed=new HA;_afterOpened=new HA;_onAction=new HA;_durationTimeoutId;_dismissedByAction=!1;constructor(e,A){this._overlayRef=A,this.containerInstance=e,e._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(e){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(e,T4A))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},mP=new BA("MatSnackBarData"),DB=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},z4A=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),H4A=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),O4A=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),P4A=(()=>{class t{snackBarRef=m(Du);data=m(mP);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(S(0,"div",0),tA(1),R(),NA(2,K4A,3,1,"div",1)),i&2&&(_(),ot(" ",n.data.message,` +`),_(),FA(n.hasAction?2:-1))},dependencies:[ur,z4A,H4A,O4A],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),j4A={snackBarState:cg("state",[wc("void, hidden",ar({transform:"scale(0.8)",opacity:0})),wc("visible",ar({transform:"scale(1)",opacity:1})),la("* => visible",$a("150ms cubic-bezier(0, 0, 0.2, 1)")),la("* => void, * => hidden",$a("75ms cubic-bezier(0.4, 0.0, 1, 1)",ar({opacity:0})))])},q4A=(()=>{class t extends _2{_ngZone=m(de);_elementRef=m(te);_changeDetectorRef=m(lt);_platform=m(Zt);snackBarConfig=m(DB);_document=m(tt);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new HA;_onExit=new HA;_onEnter=new HA;_animationState="void";_live;_label;_role;_liveElementId=m($i).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:n}=A;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>A.classList.add(r)):A.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=A.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?A.setAttribute("aria-owns",n):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(n=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(Ge(ca,7),Ge(Y4A,7)),i&2){let o;$A(o=Ae())&&(n._portalOutlet=o.first),$A(o=Ae())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&vb("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&yb("@state",n._animationState)},features:[et],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2,0)(3,"div",3),NA(4,J4A,0,0,"ng-template",4),R(),UA(5,"div"),R()()),i&2&&(_(5),_e("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[ca],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[j4A.snackBarState]}})}return t})();function V4A(){return new DB}var Z4A=new BA("mat-snack-bar-default-options",{providedIn:"root",factory:V4A}),pP=(()=>{class t{_overlay=m(Sr);_live=m(j6);_injector=m(Dt);_breakpointObserver=m(_6);_parentSnackBar=m(t,{optional:!0,skipSelf:!0});_defaultConfig=m(Z4A);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=P4A;snackBarContainerComponent=q4A;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",n){let o=nA(nA({},this._defaultConfig),n);return o.data={message:A,action:i},o.announcementMessage===A&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Dt.create({parent:n||this._injector,providers:[{provide:DB,useValue:i}]}),r=new sl(this.snackBarContainerComponent,i.viewContainerRef,o),s=A.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(A,i){let n=nA(nA(nA({},new DB),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Du(r,o);if(A instanceof vn){let a=new aa(A,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new sl(A,void 0,a),l=r.attachComponentPortal(c);s.instance=l.instance}return this._breakpointObserver.observe(fO.HandsetPortrait).pipe(wt(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new G2;i.direction=A.direction;let n=this._overlay.position().global(),o=A.direction==="rtl",r=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!o||A.horizontalPosition==="end"&&o,s=!r&&A.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),A.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(A,i){let n=A&&A.viewContainerRef&&A.viewContainerRef.injector;return Dt.create({parent:n||this._injector,providers:[{provide:Du,useValue:i},{provide:mP,useValue:A.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var W4A=function(){var t,e,A,i,n,o,r,s,a,c,l,I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},C=new Promise((h,f)=>{t=h}),d=h=>console.log(h);function B(h){throw h}function E(){var h=l.buffer;A=new Int8Array(h),i=new Int16Array(h),o=new Uint8Array(h),n=new Int32Array(h),r=new Uint32Array(h),s=new Float32Array(h),a=new Float64Array(h),c=new BigInt64Array(h),new BigUint64Array(h)}I.agerrMessages=[],I.stderrMessages=[],e=h=>I.stderrMessages.push(h);var Q=typeof TextDecoder<"u"?new TextDecoder:void 0,u=function(h){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;for(var w=f+(arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN),D=f;h[D]&&!(D>=w);)++D;if(D-f>16&&h.buffer&&Q)return Q.decode(h.subarray(f,D));for(var O="";f>10,56320|1023&kA)}}else O+=String.fromCharCode((31&Z)<<6|q)}else O+=String.fromCharCode(Z)}return O},v=(h,f)=>h?u(o,h,f):"";class L{constructor(f){this.excPtr=f,this.ptr=f-24}set_type(f){r[this.ptr+4>>2]=f}get_type(){return r[this.ptr+4>>2]}set_destructor(f){r[this.ptr+8>>2]=f}get_destructor(){return r[this.ptr+8>>2]}set_caught(f){f=f?1:0,A[this.ptr+12]=f}get_caught(){return A[this.ptr+12]!=0}set_rethrown(f){f=f?1:0,A[this.ptr+13]=f}get_rethrown(){return A[this.ptr+13]!=0}init(f,w){this.set_adjusted_ptr(0),this.set_type(f),this.set_destructor(w)}set_adjusted_ptr(f){r[this.ptr+16>>2]=f}get_adjusted_ptr(){return r[this.ptr+16>>2]}}var x={isAbs:h=>h.charAt(0)==="/",splitPath:h=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(h).slice(1),normalizeArray:(h,f)=>{for(var w=0,D=h.length-1;D>=0;D--){var O=h[D];O==="."?h.splice(D,1):O===".."?(h.splice(D,1),w++):w&&(h.splice(D,1),w--)}if(f)for(;w;w--)h.unshift("..");return h},normalize:h=>{var f=x.isAbs(h),w=h.substr(-1)==="/";return(h=x.normalizeArray(h.split("/").filter(D=>!!D),!f).join("/"))||f||(h="."),h&&w&&(h+="/"),(f?"/":"")+h},dirname:h=>{var f=x.splitPath(h),w=f[0],D=f[1];return w||D?(D&&(D=D.substr(0,D.length-1)),w+D):"."},basename:h=>{if(h==="/")return"/";var f=(h=(h=x.normalize(h)).replace(/\/$/,"")).lastIndexOf("/");return f===-1?h:h.substr(f+1)},join:function(){for(var h=arguments.length,f=new Array(h),w=0;wx.normalize(h+"/"+f)},y=h=>(y=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return f=>crypto.getRandomValues(f);B("initRandomDevice")})())(h),F={resolve:function(){for(var h="",f=!1,w=arguments.length-1;w>=-1&&!f;w--){var D=w>=0?w<0||arguments.length<=w?void 0:arguments[w]:p.cwd();if(typeof D!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!D)return"";h=D+"/"+h,f=x.isAbs(D)}return(f?"/":"")+(h=x.normalizeArray(h.split("/").filter(O=>!!O),!f).join("/"))||"."},relative:(h,f)=>{function w(KA){for(var Ie=0;Ie=0&&KA[GA]==="";GA--);return Ie>GA?[]:KA.slice(Ie,GA-Ie+1)}h=F.resolve(h).substr(1),f=F.resolve(f).substr(1);for(var D=w(h.split("/")),O=w(f.split("/")),Z=Math.min(D.length,O.length),q=Z,CA=0;CA{for(var f=0,w=0;w=55296&&D<=57343?(f+=4,++w):f+=3}return f},N=(h,f,w,D)=>{if(!(D>0))return 0;for(var O=w,Z=w+D-1,q=0;q=55296&&CA<=57343&&(CA=65536+((1023&CA)<<10)|1023&h.charCodeAt(++q)),CA<=127){if(w>=Z)break;f[w++]=CA}else if(CA<=2047){if(w+1>=Z)break;f[w++]=192|CA>>6,f[w++]=128|63&CA}else if(CA<=65535){if(w+2>=Z)break;f[w++]=224|CA>>12,f[w++]=128|CA>>6&63,f[w++]=128|63&CA}else{if(w+3>=Z)break;f[w++]=240|CA>>18,f[w++]=128|CA>>12&63,f[w++]=128|CA>>6&63,f[w++]=128|63&CA}}return f[w]=0,w-O};function K(h,f,w){var D=w>0?w:T(h)+1,O=new Array(D),Z=N(h,O,0,O.length);return f&&(O.length=Z),O}var H={ttys:[],init(){},shutdown(){},register(h,f){H.ttys[h]={input:[],output:[],ops:f},p.registerDevice(h,H.stream_ops)},stream_ops:{open(h){var f=H.ttys[h.node.rdev];if(!f)throw new p.ErrnoError(43);h.tty=f,h.seekable=!1},close(h){h.tty.ops.fsync(h.tty)},fsync(h){h.tty.ops.fsync(h.tty)},read(h,f,w,D,O){if(!h.tty||!h.tty.ops.get_char)throw new p.ErrnoError(60);for(var Z=0,q=0;q(()=>{if(!U.length){var f=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(f=window.prompt("Input: "))!==null&&(f+=` +`),!f)return null;U=K(f,!0)}return U.shift()})(),put_char(h,f){f===null||f===10?(d(u(h.output)),h.output=[]):f!=0&&h.output.push(f)},fsync(h){h.output&&h.output.length>0&&(d(u(h.output)),h.output=[])},ioctl_tcgets:h=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(h,f,w)=>0,ioctl_tiocgwinsz:h=>[24,80]},default_tty1_ops:{put_char(h,f){f===null||f===10?(e(u(h.output)),h.output=[]):f!=0&&h.output.push(f)},fsync(h){h.output&&h.output.length>0&&(e(u(h.output)),h.output=[])}}},j=(h,f)=>Math.ceil(h/f)*f,IA=h=>{h=j(h,65536);var f=Re(65536,h);return f&&((w,D)=>{o.fill(0,w,w+D)})(f,h),f},lA={ops_table:null,mount:h=>lA.createNode(null,"/",16895,0),createNode(h,f,w,D){if(p.isBlkdev(w)||p.isFIFO(w))throw new p.ErrnoError(63);lA.ops_table||={dir:{node:{getattr:lA.node_ops.getattr,setattr:lA.node_ops.setattr,lookup:lA.node_ops.lookup,mknod:lA.node_ops.mknod,rename:lA.node_ops.rename,unlink:lA.node_ops.unlink,rmdir:lA.node_ops.rmdir,readdir:lA.node_ops.readdir,symlink:lA.node_ops.symlink},stream:{llseek:lA.stream_ops.llseek}},file:{node:{getattr:lA.node_ops.getattr,setattr:lA.node_ops.setattr},stream:{llseek:lA.stream_ops.llseek,read:lA.stream_ops.read,write:lA.stream_ops.write,allocate:lA.stream_ops.allocate,mmap:lA.stream_ops.mmap,msync:lA.stream_ops.msync}},link:{node:{getattr:lA.node_ops.getattr,setattr:lA.node_ops.setattr,readlink:lA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:lA.node_ops.getattr,setattr:lA.node_ops.setattr},stream:p.chrdev_stream_ops}};var O=p.createNode(h,f,w,D);return p.isDir(O.mode)?(O.node_ops=lA.ops_table.dir.node,O.stream_ops=lA.ops_table.dir.stream,O.contents={}):p.isFile(O.mode)?(O.node_ops=lA.ops_table.file.node,O.stream_ops=lA.ops_table.file.stream,O.usedBytes=0,O.contents=null):p.isLink(O.mode)?(O.node_ops=lA.ops_table.link.node,O.stream_ops=lA.ops_table.link.stream):p.isChrdev(O.mode)&&(O.node_ops=lA.ops_table.chrdev.node,O.stream_ops=lA.ops_table.chrdev.stream),O.timestamp=Date.now(),h&&(h.contents[f]=O,h.timestamp=O.timestamp),O},getFileDataAsTypedArray:h=>h.contents?h.contents.subarray?h.contents.subarray(0,h.usedBytes):new Uint8Array(h.contents):new Uint8Array(0),expandFileStorage(h,f){var w=h.contents?h.contents.length:0;if(!(w>=f)){f=Math.max(f,w*(w<1048576?2:1.125)>>>0),w!=0&&(f=Math.max(f,256));var D=h.contents;h.contents=new Uint8Array(f),h.usedBytes>0&&h.contents.set(D.subarray(0,h.usedBytes),0)}},resizeFileStorage(h,f){if(h.usedBytes!=f)if(f==0)h.contents=null,h.usedBytes=0;else{var w=h.contents;h.contents=new Uint8Array(f),w&&h.contents.set(w.subarray(0,Math.min(f,h.usedBytes))),h.usedBytes=f}},node_ops:{getattr(h){var f={};return f.dev=p.isChrdev(h.mode)?h.id:1,f.ino=h.id,f.mode=h.mode,f.nlink=1,f.uid=0,f.gid=0,f.rdev=h.rdev,p.isDir(h.mode)?f.size=4096:p.isFile(h.mode)?f.size=h.usedBytes:p.isLink(h.mode)?f.size=h.link.length:f.size=0,f.atime=new Date(h.timestamp),f.mtime=new Date(h.timestamp),f.ctime=new Date(h.timestamp),f.blksize=4096,f.blocks=Math.ceil(f.size/f.blksize),f},setattr(h,f){f.mode!==void 0&&(h.mode=f.mode),f.timestamp!==void 0&&(h.timestamp=f.timestamp),f.size!==void 0&&lA.resizeFileStorage(h,f.size)},lookup(h,f){throw p.genericErrors[44]},mknod:(h,f,w,D)=>lA.createNode(h,f,w,D),rename(h,f,w){if(p.isDir(h.mode)){var D;try{D=p.lookupNode(f,w)}catch{}if(D)for(var O in D.contents)throw new p.ErrnoError(55)}delete h.parent.contents[h.name],h.parent.timestamp=Date.now(),h.name=w,f.contents[w]=h,f.timestamp=h.parent.timestamp},unlink(h,f){delete h.contents[f],h.timestamp=Date.now()},rmdir(h,f){var w=p.lookupNode(h,f);for(var D in w.contents)throw new p.ErrnoError(55);delete h.contents[f],h.timestamp=Date.now()},readdir(h){var f=[".",".."];for(var w of Object.keys(h.contents))f.push(w);return f},symlink(h,f,w){var D=lA.createNode(h,f,41471,0);return D.link=w,D},readlink(h){if(!p.isLink(h.mode))throw new p.ErrnoError(28);return h.link}},stream_ops:{read(h,f,w,D,O){var Z=h.node.contents;if(O>=h.node.usedBytes)return 0;var q=Math.min(h.node.usedBytes-O,D);if(q>8&&Z.subarray)f.set(Z.subarray(O,O+q),w);else for(var CA=0;CA0||w+f(lA.stream_ops.write(h,f,0,D,w,!1),0)}},uA=(h,f)=>{var w=0;return h&&(w|=365),f&&(w|=146),w},p={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(h){this.name="ErrnoError",this.errno=h}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(h){this.node=h}get isRead(){return(2097155&this.flags)!=1}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(h){this.shared.flags=h}get position(){return this.shared.position}set position(h){this.shared.position=h}},FSNode:class{constructor(h,f,w,D){h||(h=this),this.parent=h,this.mount=h.mount,this.mounted=null,this.id=p.nextInode++,this.name=f,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=D,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(h){h?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(h){h?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return p.isDir(this.mode)}get isDevice(){return p.isChrdev(this.mode)}},lookupPath(h){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(h=F.resolve(h)))return{path:"",node:null};if(f=Object.assign({follow_mount:!0,recurse_count:0},f),f.recurse_count>8)throw new p.ErrnoError(32);for(var w=h.split("/").filter(KA=>!!KA),D=p.root,O="/",Z=0;Z40)throw new p.ErrnoError(32)}}return{path:O,node:D}},getPath(h){for(var f;;){if(p.isRoot(h)){var w=h.mount.mountpoint;return f?w[w.length-1]!=="/"?`${w}/${f}`:w+f:w}f=f?`${h.name}/${f}`:h.name,h=h.parent}},hashName(h,f){for(var w=0,D=0;D>>0)%p.nameTable.length},hashAddNode(h){var f=p.hashName(h.parent.id,h.name);h.name_next=p.nameTable[f],p.nameTable[f]=h},hashRemoveNode(h){var f=p.hashName(h.parent.id,h.name);if(p.nameTable[f]===h)p.nameTable[f]=h.name_next;else for(var w=p.nameTable[f];w;){if(w.name_next===h){w.name_next=h.name_next;break}w=w.name_next}},lookupNode(h,f){var w=p.mayLookup(h);if(w)throw new p.ErrnoError(w);for(var D=p.hashName(h.id,f),O=p.nameTable[D];O;O=O.name_next){var Z=O.name;if(O.parent.id===h.id&&Z===f)return O}return p.lookup(h,f)},createNode(h,f,w,D){var O=new p.FSNode(h,f,w,D);return p.hashAddNode(O),O},destroyNode(h){p.hashRemoveNode(h)},isRoot:h=>h===h.parent,isMountpoint:h=>!!h.mounted,isFile:h=>(61440&h)==32768,isDir:h=>(61440&h)==16384,isLink:h=>(61440&h)==40960,isChrdev:h=>(61440&h)==8192,isBlkdev:h=>(61440&h)==24576,isFIFO:h=>(61440&h)==4096,isSocket:h=>!(49152&~h),flagsToPermissionString(h){var f=["r","w","rw"][3&h];return 512&h&&(f+="w"),f},nodePermissions:(h,f)=>p.ignorePermissions||(!f.includes("r")||292&h.mode)&&(!f.includes("w")||146&h.mode)&&(!f.includes("x")||73&h.mode)?0:2,mayLookup(h){if(!p.isDir(h.mode))return 54;var f=p.nodePermissions(h,"x");return f||(h.node_ops.lookup?0:2)},mayCreate(h,f){try{return p.lookupNode(h,f),20}catch{}return p.nodePermissions(h,"wx")},mayDelete(h,f,w){var D;try{D=p.lookupNode(h,f)}catch(Z){return Z.errno}var O=p.nodePermissions(h,"wx");if(O)return O;if(w){if(!p.isDir(D.mode))return 54;if(p.isRoot(D)||p.getPath(D)===p.cwd())return 10}else if(p.isDir(D.mode))return 31;return 0},mayOpen:(h,f)=>h?p.isLink(h.mode)?32:p.isDir(h.mode)&&(p.flagsToPermissionString(f)!=="r"||512&f)?31:p.nodePermissions(h,p.flagsToPermissionString(f)):44,MAX_OPEN_FDS:4096,nextfd(){for(var h=0;h<=p.MAX_OPEN_FDS;h++)if(!p.streams[h])return h;throw new p.ErrnoError(33)},getStreamChecked(h){var f=p.getStream(h);if(!f)throw new p.ErrnoError(8);return f},getStream:h=>p.streams[h],createStream(h){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1;return h=Object.assign(new p.FSStream,h),f==-1&&(f=p.nextfd()),h.fd=f,p.streams[f]=h,h},closeStream(h){p.streams[h]=null},dupStream(h){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1;var w=p.createStream(h,f);return w.stream_ops?.dup?.(w),w},chrdev_stream_ops:{open(h){var f=p.getDevice(h.node.rdev);h.stream_ops=f.stream_ops,h.stream_ops.open?.(h)},llseek(){throw new p.ErrnoError(70)}},major:h=>h>>8,minor:h=>255&h,makedev:(h,f)=>h<<8|f,registerDevice(h,f){p.devices[h]={stream_ops:f}},getDevice:h=>p.devices[h],getMounts(h){for(var f=[],w=[h];w.length;){var D=w.pop();f.push(D),w.push(...D.mounts)}return f},syncfs(h,f){typeof h=="function"&&(f=h,h=!1),p.syncFSRequests++,p.syncFSRequests>1&&e(`warning: ${p.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var w=p.getMounts(p.root.mount),D=0;function O(q){return p.syncFSRequests--,f(q)}function Z(q){if(q)return Z.errored?void 0:(Z.errored=!0,O(q));++D>=w.length&&O(null)}w.forEach(q=>{if(!q.type.syncfs)return Z(null);q.type.syncfs(q,h,Z)})},mount(h,f,w){var D,O=w==="/",Z=!w;if(O&&p.root)throw new p.ErrnoError(10);if(!O&&!Z){var q=p.lookupPath(w,{follow_mount:!1});if(w=q.path,D=q.node,p.isMountpoint(D))throw new p.ErrnoError(10);if(!p.isDir(D.mode))throw new p.ErrnoError(54)}var CA={type:h,opts:f,mountpoint:w,mounts:[]},kA=h.mount(CA);return kA.mount=CA,CA.root=kA,O?p.root=kA:D&&(D.mounted=CA,D.mount&&D.mount.mounts.push(CA)),kA},unmount(h){var f=p.lookupPath(h,{follow_mount:!1});if(!p.isMountpoint(f.node))throw new p.ErrnoError(28);var w=f.node,D=w.mounted,O=p.getMounts(D);Object.keys(p.nameTable).forEach(q=>{for(var CA=p.nameTable[q];CA;){var kA=CA.name_next;O.includes(CA.mount)&&p.destroyNode(CA),CA=kA}}),w.mounted=null;var Z=w.mount.mounts.indexOf(D);w.mount.mounts.splice(Z,1)},lookup:(h,f)=>h.node_ops.lookup(h,f),mknod(h,f,w){var D=p.lookupPath(h,{parent:!0}).node,O=x.basename(h);if(!O||O==="."||O==="..")throw new p.ErrnoError(28);var Z=p.mayCreate(D,O);if(Z)throw new p.ErrnoError(Z);if(!D.node_ops.mknod)throw new p.ErrnoError(63);return D.node_ops.mknod(D,O,f,w)},create:(h,f)=>(f=f!==void 0?f:438,f&=4095,f|=32768,p.mknod(h,f,0)),mkdir:(h,f)=>(f=f!==void 0?f:511,f&=1023,f|=16384,p.mknod(h,f,0)),mkdirTree(h,f){for(var w=h.split("/"),D="",O=0;O(w===void 0&&(w=f,f=438),f|=8192,p.mknod(h,f,w)),symlink(h,f){if(!F.resolve(h))throw new p.ErrnoError(44);var w=p.lookupPath(f,{parent:!0}).node;if(!w)throw new p.ErrnoError(44);var D=x.basename(f),O=p.mayCreate(w,D);if(O)throw new p.ErrnoError(O);if(!w.node_ops.symlink)throw new p.ErrnoError(63);return w.node_ops.symlink(w,D,h)},rename(h,f){var w,D,O=x.dirname(h),Z=x.dirname(f),q=x.basename(h),CA=x.basename(f);if(w=p.lookupPath(h,{parent:!0}).node,D=p.lookupPath(f,{parent:!0}).node,!w||!D)throw new p.ErrnoError(44);if(w.mount!==D.mount)throw new p.ErrnoError(75);var kA,KA=p.lookupNode(w,q),Ie=F.relative(h,Z);if(Ie.charAt(0)!==".")throw new p.ErrnoError(28);if((Ie=F.relative(f,O)).charAt(0)!==".")throw new p.ErrnoError(55);try{kA=p.lookupNode(D,CA)}catch{}if(KA!==kA){var GA=p.isDir(KA.mode),oe=p.mayDelete(w,q,GA);if(oe)throw new p.ErrnoError(oe);if(oe=kA?p.mayDelete(D,CA,GA):p.mayCreate(D,CA))throw new p.ErrnoError(oe);if(!w.node_ops.rename)throw new p.ErrnoError(63);if(p.isMountpoint(KA)||kA&&p.isMountpoint(kA))throw new p.ErrnoError(10);if(D!==w&&(oe=p.nodePermissions(w,"w")))throw new p.ErrnoError(oe);p.hashRemoveNode(KA);try{w.node_ops.rename(KA,D,CA),KA.parent=D}catch(M){throw M}finally{p.hashAddNode(KA)}}},rmdir(h){var f=p.lookupPath(h,{parent:!0}).node,w=x.basename(h),D=p.lookupNode(f,w),O=p.mayDelete(f,w,!0);if(O)throw new p.ErrnoError(O);if(!f.node_ops.rmdir)throw new p.ErrnoError(63);if(p.isMountpoint(D))throw new p.ErrnoError(10);f.node_ops.rmdir(f,w),p.destroyNode(D)},readdir(h){var f=p.lookupPath(h,{follow:!0}).node;if(!f.node_ops.readdir)throw new p.ErrnoError(54);return f.node_ops.readdir(f)},unlink(h){var f=p.lookupPath(h,{parent:!0}).node;if(!f)throw new p.ErrnoError(44);var w=x.basename(h),D=p.lookupNode(f,w),O=p.mayDelete(f,w,!1);if(O)throw new p.ErrnoError(O);if(!f.node_ops.unlink)throw new p.ErrnoError(63);if(p.isMountpoint(D))throw new p.ErrnoError(10);f.node_ops.unlink(f,w),p.destroyNode(D)},readlink(h){var f=p.lookupPath(h).node;if(!f)throw new p.ErrnoError(44);if(!f.node_ops.readlink)throw new p.ErrnoError(28);return F.resolve(p.getPath(f.parent),f.node_ops.readlink(f))},stat(h,f){var w=p.lookupPath(h,{follow:!f}).node;if(!w)throw new p.ErrnoError(44);if(!w.node_ops.getattr)throw new p.ErrnoError(63);return w.node_ops.getattr(w)},lstat:h=>p.stat(h,!0),chmod(h,f,w){var D;if(typeof h=="string"?D=p.lookupPath(h,{follow:!w}).node:D=h,!D.node_ops.setattr)throw new p.ErrnoError(63);D.node_ops.setattr(D,{mode:4095&f|-4096&D.mode,timestamp:Date.now()})},lchmod(h,f){p.chmod(h,f,!0)},fchmod(h,f){var w=p.getStreamChecked(h);p.chmod(w.node,f)},chown(h,f,w,D){var O;if(typeof h=="string"?O=p.lookupPath(h,{follow:!D}).node:O=h,!O.node_ops.setattr)throw new p.ErrnoError(63);O.node_ops.setattr(O,{timestamp:Date.now()})},lchown(h,f,w){p.chown(h,f,w,!0)},fchown(h,f,w){var D=p.getStreamChecked(h);p.chown(D.node,f,w)},truncate(h,f){if(f<0)throw new p.ErrnoError(28);var w;if(typeof h=="string"?w=p.lookupPath(h,{follow:!0}).node:w=h,!w.node_ops.setattr)throw new p.ErrnoError(63);if(p.isDir(w.mode))throw new p.ErrnoError(31);if(!p.isFile(w.mode))throw new p.ErrnoError(28);var D=p.nodePermissions(w,"w");if(D)throw new p.ErrnoError(D);w.node_ops.setattr(w,{size:f,timestamp:Date.now()})},ftruncate(h,f){var w=p.getStreamChecked(h);if(!(2097155&w.flags))throw new p.ErrnoError(28);p.truncate(w.node,f)},utime(h,f,w){var D=p.lookupPath(h,{follow:!0}).node;D.node_ops.setattr(D,{timestamp:Math.max(f,w)})},open(h,f,w){if(h==="")throw new p.ErrnoError(44);var D;if(w=64&(f=typeof f=="string"?(CA=>{var kA={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[CA];if(kA===void 0)throw new Error(`Unknown file open mode: ${CA}`);return kA})(f):f)?4095&(w=w===void 0?438:w)|32768:0,typeof h=="object")D=h;else{h=x.normalize(h);try{D=p.lookupPath(h,{follow:!(131072&f)}).node}catch{}}var O=!1;if(64&f)if(D){if(128&f)throw new p.ErrnoError(20)}else D=p.mknod(h,w,0),O=!0;if(!D)throw new p.ErrnoError(44);if(p.isChrdev(D.mode)&&(f&=-513),65536&f&&!p.isDir(D.mode))throw new p.ErrnoError(54);if(!O){var Z=p.mayOpen(D,f);if(Z)throw new p.ErrnoError(Z)}512&f&&!O&&p.truncate(D,0),f&=-131713;var q=p.createStream({node:D,path:p.getPath(D),flags:f,seekable:!0,position:0,stream_ops:D.stream_ops,ungotten:[],error:!1});return q.stream_ops.open&&q.stream_ops.open(q),q},close(h){if(p.isClosed(h))throw new p.ErrnoError(8);h.getdents&&(h.getdents=null);try{h.stream_ops.close&&h.stream_ops.close(h)}catch(f){throw f}finally{p.closeStream(h.fd)}h.fd=null},isClosed:h=>h.fd===null,llseek(h,f,w){if(p.isClosed(h))throw new p.ErrnoError(8);if(!h.seekable||!h.stream_ops.llseek)throw new p.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new p.ErrnoError(28);return h.position=h.stream_ops.llseek(h,f,w),h.ungotten=[],h.position},read(h,f,w,D,O){if(D<0||O<0)throw new p.ErrnoError(28);if(p.isClosed(h))throw new p.ErrnoError(8);if((2097155&h.flags)==1)throw new p.ErrnoError(8);if(p.isDir(h.node.mode))throw new p.ErrnoError(31);if(!h.stream_ops.read)throw new p.ErrnoError(28);var Z=O!==void 0;if(Z){if(!h.seekable)throw new p.ErrnoError(70)}else O=h.position;var q=h.stream_ops.read(h,f,w,D,O);return Z||(h.position+=q),q},write(h,f,w,D,O,Z){if(D<0||O<0)throw new p.ErrnoError(28);if(p.isClosed(h))throw new p.ErrnoError(8);if(!(2097155&h.flags))throw new p.ErrnoError(8);if(p.isDir(h.node.mode))throw new p.ErrnoError(31);if(!h.stream_ops.write)throw new p.ErrnoError(28);h.seekable&&1024&h.flags&&p.llseek(h,0,2);var q=O!==void 0;if(q){if(!h.seekable)throw new p.ErrnoError(70)}else O=h.position;var CA=h.stream_ops.write(h,f,w,D,O,Z);return q||(h.position+=CA),CA},allocate(h,f,w){if(p.isClosed(h))throw new p.ErrnoError(8);if(f<0||w<=0)throw new p.ErrnoError(28);if(!(2097155&h.flags))throw new p.ErrnoError(8);if(!p.isFile(h.node.mode)&&!p.isDir(h.node.mode))throw new p.ErrnoError(43);if(!h.stream_ops.allocate)throw new p.ErrnoError(138);h.stream_ops.allocate(h,f,w)},mmap(h,f,w,D,O){if(2&D&&!(2&O)&&(2097155&h.flags)!=2)throw new p.ErrnoError(2);if((2097155&h.flags)==1)throw new p.ErrnoError(2);if(!h.stream_ops.mmap)throw new p.ErrnoError(43);if(!f)throw new p.ErrnoError(28);return h.stream_ops.mmap(h,f,w,D,O)},msync:(h,f,w,D,O)=>h.stream_ops.msync?h.stream_ops.msync(h,f,w,D,O):0,ioctl(h,f,w){if(!h.stream_ops.ioctl)throw new p.ErrnoError(59);return h.stream_ops.ioctl(h,f,w)},readFile(h){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(f.flags=f.flags||0,f.encoding=f.encoding||"binary",f.encoding!=="utf8"&&f.encoding!=="binary")throw new Error(`Invalid encoding type "${f.encoding}"`);var w,D=p.open(h,f.flags),O=p.stat(h).size,Z=new Uint8Array(O);return p.read(D,Z,0,O,0),f.encoding==="utf8"?w=u(Z):f.encoding==="binary"&&(w=Z),p.close(D),w},writeFile(h,f){let w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};w.flags=w.flags||577;var D=p.open(h,w.flags,w.mode);if(typeof f=="string"){var O=new Uint8Array(T(f)+1),Z=N(f,O,0,O.length);p.write(D,O,0,Z,void 0,w.canOwn)}else{if(!ArrayBuffer.isView(f))throw new Error("Unsupported data type");p.write(D,f,0,f.byteLength,void 0,w.canOwn)}p.close(D)},cwd:()=>p.currentPath,chdir(h){var f=p.lookupPath(h,{follow:!0});if(f.node===null)throw new p.ErrnoError(44);if(!p.isDir(f.node.mode))throw new p.ErrnoError(54);var w=p.nodePermissions(f.node,"x");if(w)throw new p.ErrnoError(w);p.currentPath=f.path},createDefaultDirectories(){p.mkdir("/tmp"),p.mkdir("/home"),p.mkdir("/home/web_user")},createDefaultDevices(){p.mkdir("/dev"),p.registerDevice(p.makedev(1,3),{read:()=>0,write:(D,O,Z,q,CA)=>q}),p.mkdev("/dev/null",p.makedev(1,3)),H.register(p.makedev(5,0),H.default_tty_ops),H.register(p.makedev(6,0),H.default_tty1_ops),p.mkdev("/dev/tty",p.makedev(5,0)),p.mkdev("/dev/tty1",p.makedev(6,0));var h=new Uint8Array(1024),f=0,w=()=>(f===0&&(f=y(h).byteLength),h[--f]);p.createDevice("/dev","random",w),p.createDevice("/dev","urandom",w),p.mkdir("/dev/shm"),p.mkdir("/dev/shm/tmp")},createSpecialDirectories(){p.mkdir("/proc");var h=p.mkdir("/proc/self");p.mkdir("/proc/self/fd"),p.mount({mount(){var f=p.createNode(h,"fd",16895,73);return f.node_ops={lookup(w,D){var O=+D,Z=p.getStreamChecked(O),q={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Z.path}};return q.parent=q,q}},f}},{},"/proc/self/fd")},createStandardStreams(h,f,w){h?p.createDevice("/dev","stdin",h):p.symlink("/dev/tty","/dev/stdin"),f?p.createDevice("/dev","stdout",null,f):p.symlink("/dev/tty","/dev/stdout"),w?p.createDevice("/dev","stderr",null,w):p.symlink("/dev/tty1","/dev/stderr"),p.open("/dev/stdin",0),p.open("/dev/stdout",1),p.open("/dev/stderr",1)},staticInit(){[44].forEach(h=>{p.genericErrors[h]=new p.ErrnoError(h),p.genericErrors[h].stack=""}),p.nameTable=new Array(4096),p.mount(lA,{},"/"),p.createDefaultDirectories(),p.createDefaultDevices(),p.createSpecialDirectories(),p.filesystems={MEMFS:lA}},init(h,f,w){p.initialized=!0,p.createStandardStreams(h,f,w)},quit(){p.initialized=!1;for(var h=0;hthis.length-1||GA<0)){var oe=GA%this.chunkSize,M=GA/this.chunkSize|0;return this.getter(M)[oe]}}setDataGetter(GA){this.getter=GA}cacheLength(){var GA=new XMLHttpRequest;if(GA.open("HEAD",w,!1),GA.send(null),!(GA.status>=200&&GA.status<300||GA.status===304))throw new Error("Couldn't load "+w+". Status: "+GA.status);var oe,M=Number(GA.getResponseHeader("Content-length")),G=(oe=GA.getResponseHeader("Accept-Ranges"))&&oe==="bytes",Y=(oe=GA.getResponseHeader("Content-Encoding"))&&oe==="gzip",AA=1048576;G||(AA=M);var dA=this;dA.setDataGetter(WA=>{var Qe=WA*AA,yA=(WA+1)*AA-1;if(yA=Math.min(yA,M-1),dA.chunks[WA]===void 0&&(dA.chunks[WA]=((DA,We)=>{if(DA>We)throw new Error("invalid range ("+DA+", "+We+") or no bytes requested!");if(We>M-1)throw new Error("only "+M+" bytes available! programmer error!");var be=new XMLHttpRequest;if(be.open("GET",w,!1),M!==AA&&be.setRequestHeader("Range","bytes="+DA+"-"+We),be.responseType="arraybuffer",be.overrideMimeType&&be.overrideMimeType("text/plain; charset=x-user-defined"),be.send(null),!(be.status>=200&&be.status<300||be.status===304))throw new Error("Couldn't load "+w+". Status: "+be.status);return be.response!==void 0?new Uint8Array(be.response||[]):K(be.responseText||"",!0)})(Qe,yA)),dA.chunks[WA]===void 0)throw new Error("doXHR failed!");return dA.chunks[WA]}),!Y&&M||(AA=M=1,M=this.getter(0).length,AA=M,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=M,this._chunkSize=AA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var q={isDevice:!1,contents:new Z}}else q={isDevice:!1,url:w};var CA=p.createFile(h,f,q,D,O);q.contents?CA.contents=q.contents:q.url&&(CA.contents=null,CA.url=q.url),Object.defineProperties(CA,{usedBytes:{get:function(){return this.contents.length}}});var kA={};function KA(Ie,GA,oe,M,G){var Y=Ie.node.contents;if(G>=Y.length)return 0;var AA=Math.min(Y.length-G,M);if(Y.slice)for(var dA=0;dA{var GA=CA.stream_ops[Ie];kA[Ie]=function(){return p.forceLoadFile(CA),GA(...arguments)}}),kA.read=(Ie,GA,oe,M,G)=>(p.forceLoadFile(CA),KA(Ie,GA,oe,M,G)),kA.mmap=(Ie,GA,oe,M,G)=>{p.forceLoadFile(CA);var Y=IA(GA);if(!Y)throw new p.ErrnoError(48);return KA(Ie,A,Y,GA,oe),{ptr:Y,allocated:!0}},CA.stream_ops=kA,CA}},V={DEFAULT_POLLMASK:5,calculateAt(h,f,w){if(x.isAbs(f))return f;var D;if(h===-100?D=p.cwd():D=V.getStreamFromFD(h).path,f.length==0){if(!w)throw new p.ErrnoError(44);return D}return x.join2(D,f)},doStat(h,f,w){var D=h(f);n[w>>2]=D.dev,n[w+4>>2]=D.mode,r[w+8>>2]=D.nlink,n[w+12>>2]=D.uid,n[w+16>>2]=D.gid,n[w+20>>2]=D.rdev,c[w+24>>3]=BigInt(D.size),n[w+32>>2]=4096,n[w+36>>2]=D.blocks;var O=D.atime.getTime(),Z=D.mtime.getTime(),q=D.ctime.getTime();return c[w+40>>3]=BigInt(Math.floor(O/1e3)),r[w+48>>2]=O%1e3*1e3*1e3,c[w+56>>3]=BigInt(Math.floor(Z/1e3)),r[w+64>>2]=Z%1e3*1e3*1e3,c[w+72>>3]=BigInt(Math.floor(q/1e3)),r[w+80>>2]=q%1e3*1e3*1e3,c[w+88>>3]=BigInt(D.ino),0},doMsync(h,f,w,D,O){if(!p.isFile(f.node.mode))throw new p.ErrnoError(43);if(2&D)return 0;var Z=o.slice(h,h+w);p.msync(f,Z,O,w,D)},getStreamFromFD:h=>p.getStreamChecked(h),varargs:void 0,getStr:h=>v(h)};function cA(){var h=n[+V.varargs>>2];return V.varargs+=4,h}var aA=cA,jA=h=>h<-9007199254740992||h>9007199254740992?NaN:Number(h),VA=(h,f,w)=>N(h,o,f,w),ce=h=>{var f=(h-l.buffer.byteLength+65535)/65536|0;try{return l.grow(f),E(),1}catch{}},EA={},sA=()=>{if(!sA.strings){var h={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(var f in EA)EA[f]===void 0?delete h[f]:h[f]=EA[f];var w=[];for(var f in h)w.push(`${f}=${h[f]}`);sA.strings=w}return sA.strings},TA=h=>{throw`exit(${h})`},Ke=h=>eA(h);p.createPreloadedFile=(h,f,w,D,O,Z,q,CA,kA,KA)=>{var Ie=f?F.resolve(x.join2(h,f)):h,GA=getUniqueRunDependency(`cp ${Ie}`);function oe(M){(function(G){KA?.(),CA||((Y,AA,dA,WA,Qe,yA)=>{p.createDataFile(Y,AA,dA,WA,Qe,yA)})(h,f,G,D,O,kA),Z?.(),removeRunDependency(GA)})(M)}addRunDependency(GA),typeof w=="string"?((M,G,Y,AA)=>{var dA=AA?"":getUniqueRunDependency(`al ${M}`);readAsync(M).then(WA=>{G(new Uint8Array(WA)),dA&&removeRunDependency(dA)},WA=>{if(!Y)throw`Loading data file "${M}" failed.`;Y()}),dA&&addRunDependency(dA)})(w,oe,q):oe(w)},p.staticInit();var Re,hA,eA,RA,oA={a:(h,f,w,D)=>{B(`Assertion failed: ${v(h)}, at: `+[f?v(f):"unknown filename",w,D?v(D):"unknown function"])},b:(h,f,w)=>{throw new L(h).init(f,w),h},v:function(h,f,w,D){try{if(f=V.getStr(f),f=V.calculateAt(h,f),-8&w)return-28;var O=p.lookupPath(f,{follow:!0}).node;if(!O)return-44;var Z="";return 4&w&&(Z+="r"),2&w&&(Z+="w"),1&w&&(Z+="x"),Z&&p.nodePermissions(O,Z)?-2:0}catch(q){if(p===void 0||q.name!=="ErrnoError")throw q;return-q.errno}},f:function(h,f,w){V.varargs=w;try{var D=V.getStreamFromFD(h);switch(f){case 0:if((O=cA())<0)return-28;for(;p.streams[O];)O++;return p.dupStream(D,O).fd;case 1:case 2:case 13:case 14:return 0;case 3:return D.flags;case 4:var O=cA();return D.flags|=O,0;case 12:return O=aA(),i[O+0>>1]=2,0}return-28}catch(Z){if(p===void 0||Z.name!=="ErrnoError")throw Z;return-Z.errno}},u:function(h,f){try{var w=V.getStreamFromFD(h);return V.doStat(p.stat,w.path,f)}catch(D){if(p===void 0||D.name!=="ErrnoError")throw D;return-D.errno}},j:function(h,f,w){V.varargs=w;try{var D=V.getStreamFromFD(h);switch(f){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return D.tty?0:-59;case 21505:if(!D.tty)return-59;if(D.tty.ops.ioctl_tcgets){var O=D.tty.ops.ioctl_tcgets(D),Z=aA();n[Z>>2]=O.c_iflag||0,n[Z+4>>2]=O.c_oflag||0,n[Z+8>>2]=O.c_cflag||0,n[Z+12>>2]=O.c_lflag||0;for(var q=0;q<32;q++)A[Z+q+17]=O.c_cc[q]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!D.tty)return-59;if(D.tty.ops.ioctl_tcsets){Z=aA();var CA=n[Z>>2],kA=n[Z+4>>2],KA=n[Z+8>>2],Ie=n[Z+12>>2],GA=[];for(q=0;q<32;q++)GA.push(A[Z+q+17]);return D.tty.ops.ioctl_tcsets(D.tty,f,{c_iflag:CA,c_oflag:kA,c_cflag:KA,c_lflag:Ie,c_cc:GA})}return 0;case 21519:return D.tty?(Z=aA(),n[Z>>2]=0,0):-59;case 21520:return D.tty?-28:-59;case 21531:return Z=aA(),p.ioctl(D,f,Z);case 21523:if(!D.tty)return-59;if(D.tty.ops.ioctl_tiocgwinsz){var oe=D.tty.ops.ioctl_tiocgwinsz(D.tty);Z=aA(),i[Z>>1]=oe[0],i[Z+2>>1]=oe[1]}return 0;default:return-28}}catch(M){if(p===void 0||M.name!=="ErrnoError")throw M;return-M.errno}},s:function(h,f,w,D){try{f=V.getStr(f);var O=256&D,Z=4096&D;return D&=-6401,f=V.calculateAt(h,f,Z),V.doStat(O?p.lstat:p.stat,f,w)}catch(q){if(p===void 0||q.name!=="ErrnoError")throw q;return-q.errno}},m:function(h,f,w,D){V.varargs=D;try{f=V.getStr(f),f=V.calculateAt(h,f);var O=D?cA():0;return p.open(f,w,O).fd}catch(Z){if(p===void 0||Z.name!=="ErrnoError")throw Z;return-Z.errno}},t:function(h,f){try{return h=V.getStr(h),V.doStat(p.stat,h,f)}catch(w){if(p===void 0||w.name!=="ErrnoError")throw w;return-w.errno}},i:()=>{B("")},n:function(h,f,w,D,O,Z,q){O=jA(O);try{if(isNaN(O))return 61;var CA=V.getStreamFromFD(D),kA=p.mmap(CA,h,O,f,w),KA=kA.ptr;return n[Z>>2]=kA.allocated,r[q>>2]=KA,0}catch(Ie){if(p===void 0||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}},o:function(h,f,w,D,O,Z){Z=jA(Z);try{var q=V.getStreamFromFD(O);2&w&&V.doMsync(h,q,f,D,Z)}catch(CA){if(p===void 0||CA.name!=="ErrnoError")throw CA;return-CA.errno}},k:(h,f,w,D)=>{var O=new Date().getFullYear(),Z=new Date(O,0,1),q=new Date(O,6,1),CA=Z.getTimezoneOffset(),kA=q.getTimezoneOffset(),KA=Math.max(CA,kA);r[h>>2]=60*KA,n[f>>2]=+(CA!=kA);var Ie=M=>{var G=M>=0?"-":"+",Y=Math.abs(M);return`UTC${G}${String(Math.floor(Y/60)).padStart(2,"0")}${String(Y%60).padStart(2,"0")}`},GA=Ie(CA),oe=Ie(kA);kADate.now(),l:h=>{var f=o.length,w=2147483648;if((h>>>=0)>w)return!1;for(var D=1;D<=4;D*=2){var O=f*(1+.2/D);O=Math.min(O,h+100663296);var Z=Math.min(w,j(Math.max(h,O),65536));if(ce(Z))return!0}return!1},q:(h,f)=>{var w=0;return sA().forEach((D,O)=>{var Z=f+w;r[h+4*O>>2]=Z,((q,CA)=>{for(var kA=0;kA{var w=sA();r[h>>2]=w.length;var D=0;return w.forEach(O=>D+=O.length+1),r[f>>2]=D,0},g:TA,e:function(h){try{var f=V.getStreamFromFD(h);return p.close(f),0}catch(w){if(p===void 0||w.name!=="ErrnoError")throw w;return w.errno}},d:function(h,f,w,D){try{var O=((Z,q,CA,kA)=>{for(var KA=0,Ie=0;Ie>2],oe=r[q+4>>2];q+=8;var M=p.read(Z,A,GA,oe,kA);if(M<0)return-1;if(KA+=M,M>2]=O,0}catch(Z){if(p===void 0||Z.name!=="ErrnoError")throw Z;return Z.errno}},p:function(h,f,w,D){f=jA(f);try{if(isNaN(f))return 61;var O=V.getStreamFromFD(h);return p.llseek(O,f,w),c[D>>3]=BigInt(O.position),O.getdents&&f===0&&w===0&&(O.getdents=null),0}catch(Z){if(p===void 0||Z.name!=="ErrnoError")throw Z;return Z.errno}},c:function(h,f,w,D){try{var O=((Z,q,CA,kA)=>{for(var KA=0,Ie=0;Ie>2],oe=r[q+4>>2];q+=8;var M=p.write(Z,A,GA,oe,kA);if(M<0)return-1;if(KA+=M,M>2]=O,0}catch(Z){if(p===void 0||Z.name!=="ErrnoError")throw Z;return Z.errno}},w:function(h){return I.agerrMessages.push(v(h)),0}};I.ccall=(h,f,w,D,O)=>{var Z={string:oe=>{var M=0;return oe!=null&&oe!==0&&(M=(G=>{var Y=T(G)+1,AA=Ke(Y);return VA(G,AA,Y),AA})(oe)),M},array:oe=>{var M,G,Y=Ke(oe.length);return M=oe,G=Y,A.set(M,G),Y}},q=(oe=>I["_"+oe])(h),CA=[],kA=0;if(D)for(var KA=0;KA1&&arguments[1]!==void 0?arguments[1]:"i8";switch(f.endsWith("*")&&(f="*"),f){case"i1":case"i8":return A[h];case"i16":return i[h>>1];case"i32":return n[h>>2];case"i64":return c[h>>3];case"float":return s[h>>2];case"double":return a[h>>3];case"*":return r[h>>2];default:B(`invalid type for getValue: ${f}`)}},I.PATH=x,I.UTF8ToString=v,I.stringToUTF8=VA,I.lengthBytesUTF8=T,I.FS=p;var ne={a:oA};return WebAssembly.instantiate(I.wasm,ne).then(h=>{var f=h.instance.exports;I._viz_set_y_invert=f.z,I._viz_set_reduce=f.A,I._viz_get_graphviz_version=f.B,I._viz_get_plugin_list=f.C,I._viz_create_graph=f.D,I._viz_read_one_graph=f.E,I._viz_string_dup=f.F,I._viz_string_dup_html=f.G,I._viz_string_free=f.H,I._viz_add_node=f.I,I._viz_add_edge=f.J,I._viz_add_subgraph=f.K,I._viz_set_default_graph_attribute=f.L,I._viz_set_default_node_attribute=f.M,I._viz_set_default_edge_attribute=f.N,I._viz_set_attribute=f.O,I._viz_free_graph=f.P,I._viz_create_context=f.Q,I._viz_free_context=f.R,I._viz_layout=f.S,I._viz_free_layout=f.T,I._viz_reset_errors=f.U,I._viz_render=f.V,I._free=f.X,I._malloc=f.Y,Re=f.Z,hA=f._,eA=f.$,RA=f.aa,l=f.x,E(),function(w){w.y(),I.noFSInit||p.initialized||p.init(),p.ignorePermissions=!1}(f),t(I)}),C},wP=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function DP(t,e){let A=t.ccall("viz_get_plugin_list","number",["string"],[e]);if(A==0)throw new Error(`couldn't get plugin list: ${e}`);let i=[],n,o=A;for(;n=t.getValue(o,"*");)i.push(t.UTF8ToString(n)),t.ccall("free","number",["number"],[n]),o+=4;return t.ccall("free","number",["number"],[A]),i}function yP(t,e,A,i){let n,o,r,s;try{if(t.agerrMessages=[],t.stderrMessages=[],s=function(c,l){return l?l.map(I=>{if(typeof I.name!="string")throw new Error("image name must be a string");if(typeof I.width!="number"&&typeof I.width!="string")throw new Error("image width must be a number or string");if(typeof I.height!="number"&&typeof I.height!="string")throw new Error("image height must be a number or string");let C=c.PATH.join("/",I.name),d=` + +`;return c.FS.createPath("/",c.PATH.dirname(C)),c.FS.writeFile(C,d),C}):[]}(t,i.images),typeof e=="string")n=function(c,l){let I;try{let C=c.lengthBytesUTF8(l);return I=c.ccall("malloc","number",["number"],[C+1]),c.stringToUTF8(l,I,C+1),c.ccall("viz_read_one_graph","number",["number"],[I])}finally{I&&c.ccall("free","number",["number"],[I])}}(t,e);else{if(typeof e!="object")throw new Error("input must be a string or object");n=function(c,l){let I=c.ccall("viz_create_graph","number",["string","number","number"],[l.name,l.directed===void 0||l.directed,l.strict!==void 0&&l.strict]);return bP(c,I,l),I}(t,e)}if(n===0)return{status:"failure",output:void 0,errors:yu(t)};if(MP(t,n,i),t.ccall("viz_set_y_invert","number",["number"],[i.yInvert?1:0]),t.ccall("viz_set_reduce","number",["number"],[i.reduce?1:0]),o=t.ccall("viz_create_context"),t.ccall("viz_reset_errors"),t.ccall("viz_layout","number",["number","number","string"],[o,n,i.engine])!==0)return{status:"failure",output:void 0,errors:yu(t)};let a={};for(let c of A){if(r=t.ccall("viz_render","number",["number","number","string"],[o,n,c]),r===0)return{status:"failure",output:void 0,errors:yu(t)};a[c]=t.UTF8ToString(r),t.ccall("free","number",["number"],[r]),r=0}return{status:"success",output:a,errors:yu(t)}}catch(a){if(/^exit\(\d+\)/.test(a))return{status:"failure",output:void 0,errors:yu(t)};throw a}finally{o&&n&&t.ccall("viz_free_layout","number",["number"],[o,n]),n&&t.ccall("viz_free_graph","number",["number"],[n]),o&&t.ccall("viz_free_context","number",["number"],[o]),r&&t.ccall("free","number",["number"],[r]),s&&function(a,c){for(let l of c)a.FS.analyzePath(l).exists&&a.FS.unlink(l)}(t,s)}}function yu(t){return function(e){let A=[],i;for(let n=0;n{for(let A=0;A{let n=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&vP(t,e,n,i.attributes)}),A.edges&&A.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&vP(t,e,n,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);bP(t,n,i)})}function MP(t,e,A){if(A.graphAttributes)for(let[i,n]of Object.entries(A.graphAttributes))l8(t,e,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,o])});if(A.nodeAttributes)for(let[i,n]of Object.entries(A.nodeAttributes))l8(t,e,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,o])});if(A.edgeAttributes)for(let[i,n]of Object.entries(A.edgeAttributes))l8(t,e,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,o])})}function vP(t,e,A,i){for(let[n,o]of Object.entries(i))l8(t,e,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,n,r])})}function l8(t,e,A,i){let n;if(n=typeof A=="object"&&"html"in A?t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),n==0)throw new Error("couldn't dup string");i(n),t.ccall("viz_string_free","number",["number","number"],[e,n])}var Rk=class{constructor(e){this.module=e}get graphvizVersion(){return function(e){let A=e.ccall("viz_get_graphviz_version","number",[],[]);return e.UTF8ToString(A)}(this.module)}get formats(){return DP(this.module,"device")}get engines(){return DP(this.module,"layout")}renderFormats(e,A){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return yP(this.module,e,A,nA({engine:"dot"},i))}render(e){let A,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};A=i.format===void 0?"dot":i.format;let n=yP(this.module,e,[A],nA({engine:"dot"},i));return n.status==="success"&&(n.output=n.output[A]),n}renderString(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.render(e,A);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.renderString(e,Ne(nA({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.renderString(e,Ne(nA({},A),{format:"json"}));return JSON.parse(i)}};function X4A(){let t=atob("AGFzbQEAAAABmwd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBX9/f39/AX9gBH9/f38AYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAJ/fwF8YAF8AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgA39/fgF/YAl/f39/f39/f38AYAV/fn5+fgBgBH9/f3wAYAR/f3x8AX9gCn9/f39/f39/f38Bf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgA39+fwF+YAN/f3wAYAV/f39/fgF/YAR/fn5/AGAEf398fwBgAnx/AXxgBH9/f3wBf2ACf34Bf2ADfHx/AXxgA398fwBgAn19AX1gCH9/f39/f39/AGACf3wBf2AFf39/f3wBf2ALf39/f39/f39/f38Bf2AFf39+f38AYAR/f3x/AX9gAn9+AGAFf39/f3wAYAN/f3wBf2ABfwF+YAZ/fHx8fHwBfGAHf39/fHx/fwBgBX9/fH9/AX9gA39/fwF+YAx/f39/f39/f39/f38Bf2ACf38BfmAGf39/fH9/AGAGf39/f35/AX9gD39/f39/f39/f39/f39/fwBgCn9/f39/f39/f38AYAR/f39/AX5gBn98f39/fwF/YAd/f39/f35+AX9gBn9/f39+fgF/YAd/f39/fn9/AX9gBn9/f39/fgF/YAR/fn9/AX9gBH9/fHwBfGAFf398f38AYAl/f39/f39/f38Bf2AEf398fABgBn9/f3x/fwF/YAJ/fQF/YAR+fn5+AX9gCH9/f398fHx/AGADf31/AGACfn8Bf2ABfAF/YAZ/fX9/f38AYAR/f31/AGACfn4BfWACf30AYAR/f39+AX5gA39+fwF/YAZ8fHx/f38AYAR/fHx8AGACfn4BfGACfH8Bf2AFf39/fH8AYAZ/f398fH8AYAN/fHwBf2AHf3x8fHx8fABgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/f39/AXxgB39/f398f38Bf2AFf399f38AYAN8fHwBf2AFf398fHwAYAN/f38BfWADfn5+AX9gBH9+fn4AYAABfmABfwF9YAN/fn4B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ACgCGBAXIAAoAhwQFyAAEBcLC+8CAQZ/QZSlCy0AAARAQZClCygCAA8LIwBBIGsiAiQAAkACQANAIAJBCGoiBCAAQQJ0IgNqAn9BASAAdEH/////B3EiBUEBckUEQCADKAIADAELIABBw9sBQaOBBSAFGxC9BwsiAzYCACADQX9GDQEgAEEBaiIAQQZHDQALQQAQiwxFBEBB6PEIIQEgBEHo8QhBGBDQAUUNAkGA8gghASAEQYDyCEEYENABRQ0CQQAhAEGwogstAABFBEADQCAAQQJ0QYCiC2ogAEGjgQUQvQc2AgAgAEEBaiIAQQZHDQALQbCiC0EBOgAAQZiiC0GAogsoAgA2AgALQYCiCyEBIAJBCGoiAEGAogtBGBDQAUUNAkGYogshASAAQZiiC0EYENABRQ0CQRgQQyIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGUpQtBAToAAEGQpQsgATYCACABCxUAIAAtAA9B/wFGBEAgACgCABAXCwu/CgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4RCACEBUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxCwAUEQIAZrIQYgBSkDWCIN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BQJAAkACQAJAIABBASABIARBCGpBABCiA0UNACAAIAQpAwgQ4gMiAw0CIAJFIAAgBUZyDQAgBSAEKQMIEOIDIgJFDQEgACACQQEQeyEDDAILQQAhAyACRQ0BCyAAQQEgASAEQQhqQQEQogNFBEBBACEDDAELIAAgACAEKQMIIABBARDyBxDdDSIDENwNIAAgAxDbDSAAIAMQ5AFFDQEgAEEBIAMQ0gULIARBEGokACADDwtB9aIDQdXAAUGpAUHTogEQAAALoQECBH8CfiMAQSBrIgQkAEF/IQUCQCABRQ0AIAAQzwUhAiAEIAE2AhggAiAEQQhqQQQgAigCABEEACIDRQ0AQQAhBSADKAIQIAFHDQAgAyADKQMIIgZCAX1C////////////AIMiByAGQoCAgICAgICAgH+DhDcDCCAHQgBSDQBBvIoLIAA2AgAgAiADQQIgAigCABEEABoLIARBIGokACAFCxwAIAAgASACEHkiAAR/IAAgAiAALQAAGwUgAgsLRwEFfyMAQRBrIgAkACAAEKcBQayHCygCACEBQaiHCygCACECIAAoAgAgACgCBCAAQRBqJABqIAEgAmprt0QAAAAAAABOQKMLLAAgAkUEQCAAKAIEIAEoAgRGDwsgACABRgRAQQEPCyAAKAIEIAEoAgQQRkULJAEBfyAAKAIAIQIgACABNgIAIAIEQCACIAAQyQMoAgARAQALCwUAEG4AC8UBAgR/AX4jAEEQayIDJAACQAJAIAFFDQAgAEEAIAEgA0EIakEAEKIDRQ0AIAAgAykDCBDEDSIEDQELQQAhBCACRQ0AIABBACABIANBCGpBARCiA0UNACAAQQAgACADKQMIIgcQxA0iBEUEQEHQABDiASIBIAAoAkw2AkwgASAAKAIYIgI2AhggASAANgJEIAEgAkH3AXE6ABggACgCSCEAIAEgBzcDCCABIAA2AkggARD1DSEECyAEENIFCyADQRBqJAAgBAunAgEHfyMAQRBrIgckAAJAAkAgACgCCCIGIAAoAgwiAkcEQCAAKAIEIQMgACgCACEEDAELIAZBAXRBASAGGyICQf////8ASwRAQcQAIQAMAgsgACgCACACQQR0EDYiBEUEQEEwIQAMAgsgBCAAKAIMIgVBBHRqQQAgAiAFa0EEdBAwGiAFIAAoAggiBiAAKAIEIgNqSQRA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IQUMAQsLCz8BAn8DQCAAKAIQIgIoAvABIgFFIAAgAUZyRQRAIAEiACgCECgC8AEiAUUNASACIAE2AvABIAEhAAwBCwsgAAteAQF/IwBBIGsiAiQAIAIgACgCADYCCCACIAAoAgQ2AgwgAiAAKAIINgIQIABCADcCBCACIAArAxA5AxggACABEJUBIAEgAkEIaiIAEJUBIABBBHIQyQEgAkEgaiQAC6EBAQJ/AkAgABAiRSACIAFrQQVIcg0AIAEgAhCcBSACQQRrIQQgABA/IgIgABAiaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwuEAQECfyMAQRBrIgIkACAAEKIBBEAgACgCACAAEOgCGhCmBQsgARAiGiABEKIBIQMgACABKAIINgIIIAAgASkCADcCACABQQAQzgEgAkEAOgAPIAEgAkEPahDNAQJAIAAgAUYiASADckUNAAsgABCiASABckUEQCAAEJkDGgsgAkEQaiQAC1ABAX4CQCADQcAAcQRAIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAiADrSIEhiABQcAAIANrrYiEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC84JAgR/BH4jAEHwAGsiBiQAIARC////////////AIMhCQJAAkAgAVAiBSACQv///////////wCDIgpCgICAgICAwP//AH1CgICAgICAwICAf1QgClAbRQRAIANCAFIgCUKAgICAgIDA//8AfSILQoCAgICAgMCAgH9WIAtCgICAgICAwICAf1EbDQELIAUgCkKAgICAgIDA//8AVCAKQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgCkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgUbIQRCACABIAUbIQMMAgsgAyAJQoCAgICAgMD//wCFhFANASABIAqEUARAIAMgCYRCAFINAiABIAODIQMgAiAEgyEEDAILIAMgCYRQRQ0AIAEhAyACIQQMAQsgAyABIAEgA1QgCSAKViAJIApRGyIIGyEKIAQgAiAIGyIMQv///////z+DIQkgAiAEIAgbIgtCMIinQf//AXEhByAMQjCIp0H//wFxIgVFBEAgBkHgAGogCiAJIAogCSAJUCIFG3kgBUEGdK18pyIFQQ9rELABIAYpA2ghCSAGKQNgIQpBECAFayEFCyABIAMgCBshAyALQv///////z+DIQEgBwR+IAEFIAZB0ABqIAMgASADIAEgAVAiBxt5IAdBBnStfKciB0EPaxCwAUEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrELABIAZBMGogAiABIAcQmwMgBikDOCEBIAYpAzAgBikDQCAGKQNIhEIAUq2ECyEJQoCAgICAgIAEhCELIApCA4YhCgJAIARCAFMEQEIAIQNCACEEIAkgCoUgASALhYRQDQIgCiAJfSECIAsgAX0gCSAKVq19IgRC/////////wNWDQEgBkEgaiACIAQgAiAEIARQIgcbeSAHQQZ0rXynQQxrIgcQsAEgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahCwASAGIAIgBEEBIAVrEJsDIAYpAwAgBikDECAGKQMYhEIAUq2EIQIgBikDCCEECyAEQj2GIAJCA4iEIQEgBEIDiEL///////8/gyAHrUIwhoQgA4QhBAJAAkAgAqdBB3EiBUEERwRAIAQgASABIAVBBEutfCIDVq18IQQMAQsgBCABIAEgAUIBg3wiA1atfCEEDAELIAVFDQELCyAAIAM3AwAgACAENwMIIAZB8ABqJAALawEBfyMAQYACayIFJAAgBEGAwARxIAIg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AAJAIAFBh94AECMiAwRAIAMgAEQAAAAAAADwP0QAAAAAAAAAABCMBQ0BCyABQYbeABAjIgEEQCABIABEmpmZmZmZ6T9EAAAAAAAAEEAQjAUNAQsgAEEBOgAQIABCgICAgICAgIjAADcDACAAQoCAgICAgICIwAA3AwgLQfCCCy0AAARAIAAtABAhASAAKwMAIQQgAiAAKwMIOQMQIAIgBDkDCCACIAE2AgBBiPMIKAIAQdnyBCACEC0LIAJBIGokAAvSAQIDfwR8IwBBIGsiBCQAIAQgAjYCECAEIAE2AgwgACgCACIAIARBDGpBBCAAKAIAEQQAIQAgBEEgaiQAIANFIABFckUEQCAAQQhqIQADQCADKAIAIQEgACECA0AgAigCACICBEAgAigCACIEKAIQKAKUASIFKwMAIAEoAhAoApQBIgYrAwChIgcgB6IgBSsDCCAGKwMIoSIIIAiioCIJQajjCisDACIKIAqiYwRAIAEgBCAHIAggCRDLCgsgAkEEaiECDAELCyADKAIEIgMNAAsLCwgAIAAQnAEaCyMBAX8jAEEQayIBJAAgASAANgIMIAFBDGoQkQcgAUEQaiQACw8AIAAgACgCACgCJBECAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCLBEDAAsMACAAQYKGgCA2AAALEQAgABA/IAAQIkECdGoQnAcLDQAgACgCACABKAIARwsOACAAED8gABAiahCcBwsWACAAIAEgAiADIAAoAgAoAiARBgAaCw4AIAAoAghB/////wdxC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqEKoFIANBEGogAygCGCADKAIcIAAQlQwgAyABIAMoAhAQqQU2AgwgAyAAIAMoAhQQmAM2AgggBEEIaiADQQxqIANBCGoQ9AEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRCxASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACELcFIQEMAQsgA0EAQSAQMBogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACABLQABIQIgAUEBaiEBIAINAAsLIAAiAS0AACICRQ0AA0AgAyACQQN2QRxxaigCACACdkEBcQ0BIAEtAAEhAiABQQFqIQEgAg0ACwsgA0EgaiQAIAEgAGsLqAEAAkAgAUGACE4EQCAARAAAAAAAAOB/oiEAIAFB/w9JBEAgAUH/B2shAQwCCyAARAAAAAAAAOB/oiEAQf0XIAEgAUH9F08bQf4PayEBDAELIAFBgXhKDQAgAEQAAAAAAABgA6IhACABQbhwSwRAIAFByQdqIQEMAQsgAEQAAAAAAABgA6IhAEHwaCABIAFB8GhNG0GSD2ohAQsgACABQf8Haq1CNIa/ogviAQECfyACQQBHIQMCQAJAAkAgAEEDcUUgAkVyDQAgAUH/AXEhBANAIAAtAAAgBEYNAiACQQFrIgJBAEchAyAAQQFqIgBBA3FFDQEgAg0ACwsgA0UNASABQf8BcSIDIAAtAABGIAJBBElyRQRAIANBgYKECGwhAwNAQYCChAggACgCACADcyIEayAEckGAgYKEeHFBgIGChHhHDQIgAEEEaiEAIAJBBGsiAkEDSw0ACwsgAkUNAQsgAUH/AXEhAQNAIAEgAC0AAEYEQCAADwsgAEEBaiEAIAJBAWsiAg0ACwtBAAsEACAAC1oBAn8jAEEQayIDJAAgAyABNgIMIAMgA0ELaiIENgIEIAAgA0EMaiIBIAIgA0EEaiABIAAoAjgRBwAaIAMoAgQhACADLAALIQEgA0EQaiQAQX8gASAAIARGGwsLACAAQZbPBBCUDQu0AQEBfyAAKAIILQABQRBxBEAgAEEAEOEBCwJAIAEEQCABKAIILQABQRBxBEAgAUEAEOEBCyABKAIMIAAoAgxHDQELIAEhAgNAIAIEQCAAIAJGDQIgAigCFCECDAELCyAAKAIUIgIEQCACIAIoAhBBAWs2AhALIABCADcCFCABRQRAIAAgACgCDCgCADYCACACDwsgAEHrAjYCACAAIAE2AhQgASABKAIQQQFqNgIQIAEPC0EAC5QBAQN/AkAgACgCCCIBKAIAIgJBDHEEQCABKAIEIQIMAQsgAkEBcQRAIAAQswEhAiAAKAIIIgMoAggiASADKAIMQQJ0aiEDA0AgASADTw0CIAFBADYCACABQQRqIQEMAAsACyABKAIIIQIgAUEANgIICyAAKAIIIgBBADYCECAAQQA2AgQgACAAKAIAQf9fcTYCACACC8UCAQh/IwBBIGsiAiQAAkAgACACQRxqEMsFIgBFDQAgAigCHCIFQQBMDQADQCAALQAAIgNFDQEgA0EtRwRAIABBAWohAAwBCwsgAkIANwMQIAJCADcDCCAAQQFqIQZBACEDA0AgBCAFSARAIAMgBmoiBywAACIIBEAgAkEIaiAIEKwNAkAgBy0AAEHcAEYEQCADRQ0BIAAgA2otAABB3ABHDQELIARBAWohBAsgA0EBaiEDDAIFIAJBCGoQZ0EAIQQMAwsACwsgASMAQRBrIgEkAAJAIAJBCGoiABAkBEAgACAAECEiBRDFAiIEDQEgASAFQQFqNgIAQYjzCCgCAEGA6gMgARAdGhAmAAsgAEEAEKwNIAAoAgAhBAsgAEIANwIAIABCADcCCCABQRBqJAAgBDYCACADIAZqIQQLIAJBIGokACAECxwAIAAgASAAIAIQqQEiAUEBEM0FIAAgARCJARoLPQEBf0HAigsoAgAhAgNAIAJBAEwEQEEADwsgAkEBayECIAFBooEFIAAoAkwoAgQoAgQRAABBf0cNAAtBfwvxAgEEfyMAQTBrIgMkACADIAI2AgwgAyACNgIsIAMgAjYCEAJAAkACQAJAAkBBAEEAIAEgAhBLIgVBAEgNAEEBIQIgBUEBaiEGAkAgBSAAEDkgABAhayIETwRAIAAQJEEAIAYgBGsiBEEBRhsNASAAIAQQ4gcLQQAhAgsgA0IANwMYIANCADcDECAFQRBPQQAgAhsNASADQRBqIQQgBSACBH8gBAUgABBdCyAGIAEgAygCLBBLIgFHIAFBAE5xDQIgAUEATA0AIAAQJARAIAFBgAJPDQQgAgRAIAAQXSADQRBqIAEQHhoLIAAgAC0ADyABajoADyAAECFBEEkNAUGhtgNB+YABQdcBQfQeEAAACyACDQQgACAAKAIEIAFqNgIECyADQTBqJAAPC0GfpQNB+YABQcoBQfQeEAAAC0GQmgNB+YABQc8BQfQeEAAAC0GGzQFB+YABQdIBQfQeEAAAC0HqoAFB+YABQdkBQfQeEAAAC7kBAQJ/AkACQCAAEDgiAUUNAEGUigsQOUGUigsQIWsgAUkEQEGUigsgARDiBwtBlIoLECEhAkGUigsQJARAIAJBlIoLaiAAIAEQHhogAUGAAk8NAkGjigtBo4oLLQAAIAFqOgAAQZSKCxAhQRBJDQFBobYDQfmAAUGEAkGx7QAQAAALQZSKCygCACACaiAAIAEQHhpBmIoLQZiKCygCACABajYCAAsPC0GfzQFB+YABQYICQbHtABAAAAt4AQJ/IwBBMGsiBCQAAkAgAUUgAkVyDQAgBCADKQMINwMIIAQgAykDADcDACAEIAE2AiggACACEOQBIgFFDQAgACgCOCABKAIUEOEBIAAoAjgiAiAEQQQgAigCABEEACEFIAEgACgCOBDyAjYCFAsgBEEwaiQAIAULVQECfyAAIAFBUEEAIAEoAgBBA3FBAkcbaigCKBDkASIDBEAgACgCNCADKAIcEOEBIAAoAjQiAiABQQggAigCABEEACECIAMgACgCNBDyAjYCHAsgAgtEAEHMiAsoAgAgAUsEQCAAQcSICygCAEHIiAsoAgAgAWpB0IgLKAIAcEEobGpBKBAeGg8LQd6yA0G6ugFBMEGZJBAAAAuEAQECfyAAIAAoAgQiBEEBajYCBCAAKAIUIARBGGxqIgAgASgCIDYCDCACKAIgIQUgAEEANgIIIAAgAzkDACAAIAU2AhAgASgCHCABLgEQIgVBAnRqIAQ2AgAgASAFQQFqOwEQIAIoAhwgAi4BECIBQQJ0aiAENgIAIAIgAUEBajsBECAAC/QBAQV/IwBBEGsiBCQAIAFFIAJFckUEQAJAIAEoAgAgASgCCEoEQCAAIAIpAgA3AgAgACACKQIINwIIDAELIAIoAgAgAigCCEwEQANAIAVBAkYEQCAAIAQpAgA3AgAgACAEKQIINwIIDAMFIAQgBUECdCIDaiABIANqKAIAIgYgAiADaigCACIHIAYgB0gbNgIAIAQgA0EIciIDaiABIANqKAIAIgYgAiADaigCACIDIAMgBkgbNgIAIAVBAWohBQwBCwALAAsgACABKQIANwIAIAAgASkCCDcCCAsgBEEQaiQADwtBqThBiMABQdoAQZsmEAAAC6cBAgJ+BH8jAEEQayIEJAACQAJAAkAgAARAIAAoAgAgACgCCEoNAkIBIQEDQCADQQJGDQQgACADQQJ0aiIFKAIIIgYgBSgCACIFRg0DIAQgBiAFa60iAkIAIAFCABCYASAEKQMIUEUNAiADQQFqIQMgASACfiEBDAALAAtB0j5BiMABQcMAQYHFARAAAAtBsrMEQQAQMhAmAAtCACEBCyAEQRBqJAAgAQtMAQJ/IAAoAhAoApQBEBcgACgCECIBKAIIIgIEfyAAIAIoAgQoAgQRAQAgACgCEAUgAQsoAngQvAEgACgCECgCfBC8ASAAQdgoENkBC6UCAgN/AX4jAEGAAWsiBCQAIAEoAgAiBhArKAIQKAJ0IAQgAjkDOCAEIAM5AzBBA3EiBQRAIAQgBCkDODcDGCAEIAQpAzA3AxAgBEFAayAEQRBqIAVB2gBsELcPIAQgBCkDSDcDOCAEIAQpA0A3AzALIARCADcDWCAEQgA3A1AgBCAEKQM4Igc3A2ggBCAHNwN4IAQgBCkDMCIHNwNgIARCADcDSCAEQgA3A0AgBCAHNwNwIAEgBigCECgCCCgCBCgCDCAEQUBrQQEQ7QUgBQRAIAQgBCkDSDcDCCAEIAQpA0A3AwAgBEEgaiAEIAVB2gBsELMDIAQgBCkDKDcDSCAEIAQpAyA3A0ALIAAgBCkDQDcDACAAIAQpA0g3AwggBEGAAWokAAtIACAAKAIQKAIIIgBFBEBBAA8LIAAoAgQoAgAiAEGiAkYEQEEBDwsgAEGjAkYEQEECDwsgAEGkAkYEQEEDDwsgAEGlAkZBAnQLEwAgACABQbIkQfYFQd+9ARDEAwu2MAIcfwF8IwBBMGsiFyQAQQFB2AAQGCENAn8CQAJAAkAgABCJAkEBaw4CAQIACyAAKAJIIRggACEfQQAMAgsgABArEDQhGCAAISBBAAwBCyAAQVBBACAAKAIAQQNxQQJHG2ooAigQKxA0IRggAAshGiANIAM5AxAgDSAFNgIIIA0gBDYCBCANIBgoAhAtAHMiBDYCDAJAIAJBBHEEQCANIAEQYjYCACACQQJxRQ0BIA1BAToAUgwBCwJAAkACQCACDgMCAQABCyABEGIhASANQQE6AFIgDSABNgIAIwBBkAFrIgskACALIAA2AnAgCwJ/AkACQAJAIAAQiQJBAWsOAgECAAsgACgCSAwCCyAAECsMAQsgAEFQQQAgACgCAEEDcUECRxtqKAIoECsLIgE2AnQgASgCSCEcIAsgDSsDEDkDYCALIA0oAgQ2AlAgDSgCCCEBIAtBADYCaCALIAE2AlQgDSgCACEKIwBBoAFrIhEkACARQgA3A5gBIBFCADcDkAEgEUEMaiIFQQBBhAEQMBogEUH8AGoiIUEAEKUPIBEgC0FAayICKAI0KAIQKAKQATYCjAEgESARQZABaiIENgJ4QQIhASAFQgA3AhAgBSAENgIMIAUgCjYCBCAFQgA3AiwgBUIANwIgIAVBATsBKCAFQgA3AhggBUIANwI0IAIoAjQoAhAtAHMhCiMAQRBrIgQkAAJ/IApBA08EQCAEIAo2AgBB3cMEIAQQMkGs7wEMAQsgCkECdEG0+gZqKAIACyEKIARBEGokACAFAn8CQAJAQcgEEEMiBkUNACAGQewCNgIQIAZB7QI2AgwgBkEQNgKUAyAGQQA2AiAgBkEANgIIIAZBITYCFCAGQYACEEMiBDYCoAMgBEUNASAGQYAIIAYoAgwRAgAiBDYCOCAERQRAIAYoAqADIAYoAhQRAQAgBiAGKAIUEQEADAELIAZBDGohDyAGIARBgAhqNgI8AkBBAEUEQEG8ASAGKAIMEQIAIgdFDQEgB0IANwJQIAdCADcCaCAHIA82AmQgByAPNgJ8IAdCADcCCCAHQQA6AAQgB0IANwIcIAdBADoAGCAHIA82AhAgB0EANgIAIAdCADcCMCAHQQA6ACwgByAPNgIkIAdBADYCFCAHQQA2AmAgB0IANwJYIAdCADcCcCAHQQA2AnggB0IANwJEIAdBADoAQCAHIA82AjggB0EANgIoIAdBADYCPCAHIA82AkwgB0IANwKMASAHQQA6AIgBIAdCATcCgAEgByAPNgKUASAHQgA3ApgBIAdBADoAoAEgB0IANwKkASAHQgA3AqwBIAdCADcCtAELIAZBADYCkAMgBiAHNgL8AiAGQQA2AogDIAZBADYCyAIgBkEANgLAAiAGQQA2ArgCIAZCADcD6AMgBkEhOgDwAyAGQQA2AoACIAZBADYCiAEgBkEAOwH0ASAGQgA3ArgDIAZBADYC8AEgBkIANwKkAyAGIA82AswDIAZCADcCwAMgBkEANgLIAyAGQQA6AKwDIAZBADYC4AMgBkIANwLYAyAGQgA3AtADIAYgDzYC5ANBACEHIAZB7gI2AqACIAZBxAM2AogCIAZBADYCnAIgBkKAgICAEDcClAIgCgRAA0AgByAKaiAHQQFqIQctAAANAAsgByAGKAIMEQIAIgQEQCAEIAogBxAeGgsgBiAENgLwAQsgBkEANgKAAyAGQaABaiAGQZwBakEAEMsHGiAGQgA3AwAgBkFAa0EAQcAAEDAaIAZCADcCjAEgBkEANgKEASAGQgA3ApQBIAZCADcDsAMgBkEANgI0IAZBAToAMCAGQQA2AiwgBkIANwIkIAZBADYCxAIgBkEANgK8AiAGQgA3AqQCIAZCADcCrAIgBkEANgK0AiAGIAYoAggiBDYCHCAGIAQ2AhggBiAGNgKAASAGQdQCakEAQSYQMBogBkEANgKYAyAGQQA2AowDIAZBADYChAMgBkEANgLQAiAGQQE6AMwCIAZBADYChAIgBkEAOgDABCAGQgA3AvQDIAZCADcD+AEgBkIANwOQBCAGQgA3AoQEIAZBADsBgAQgBkIANwOYBCAGQgA3A6AEIAZCADcDqARBmdcBENwHIQQgBkIANwOwBCAGQoCAgAQ3A6gEIAZBgICglgQ2AqQEIAYgBDYCoAQgBkIANwO4BCAGQfLWARDcBzYCvAQCQCAKRQ0AIAYoAvABDQAgBhCoDQwCCyAGQfCkCDYC7AEgBgwDCyAGQQA2AvwCIAYoAjggBigCFBEBACAGKAKgAyAGKAIUEQEADAELQQAMAQsgBiAGKAIUEQEAQQALIgQ2AgAgBSACKAI0KAIQKAKQATYCPAJAIARFDQAgBCgCACAEIAU2AgAgBCgCBEcNACAEIAU2AgQLIAUoAgAiAgRAIAJB+wE2AkQgAkH6ATYCQAsgBSgCACICBEAgAkH8ATYCSAsjAEGgCGsiFCQAIBRBADYCnAggBUHwAGohHiAFQcQAaiEOQcgBIRkgFEEwaiIJIR0gFEHQBmoiEiECQX4hAQJAAkACQAJAAkADQAJAIBIgFToAAAJ/AkACQAJAAkACQCASIAIgGWpBAWtPBEAgGUGPzgBKDQFBkM4AIBlBAXQiBCAEQZDOAE4bIhlBBWxBA2oQQyIERQ0BIAQgAiASIAJrIgpBAWoiDxAeIgQgGUEDakEEbUECdGogHSAPQQJ0IggQHiEdIBRB0AZqIAJHBEAgAhAXCyAPIBlODQIgBCAKaiESIAggHWpBBGshCSAEIQILIBVBH0YNBiAVQQF0QcD6BmovAQAiE0Gu/wNGDQIgE8ECfyABQX5GBEACf0EAIQQjAEEQayIGJAAgBUEANgIIIAUgFEGcCGo2AkAgBUEQaiEQAkACQAJAA0ACQEF/IQECfwJAAkAgBS0AKQ4DAAEDAQsgBUEBOgApQYLdASEIQQAhBEEGDAELAkACQAJAAkACQCAFKAIEIggtAAAiDEE8RwRAIAghASAMDQEgBUECOgApQYndASEIQQcMBgtBASEMQQQhASAIQQFqIgRB/JsDELoCBEADQCAMBEAgASAIaiEEIAFBAWohAQJAAkACQCAELQAAIgRBPGsOAwAEAQILIAxBAWohDAwDCyAMQQFrIQwMAgsgBA0BCwsgASAIaiIKQQFrIgQtAABFDQMCQCABQQdOBEAgCkEDa0H9mwMQugINAQtBu+IDQQAQJyAFQQE2AiALIAQtAAAhAQwCCwNAIAQtAAAiAUUgAUE+RnINAiAEQQFqIQQMAAsACwNAAkACfwJAIAxBJkcEQCAMRSAMQTxGcg0DDAELIAEtAAFBI0YNACMAQRBrIgckACAHQQhqIgogAUEBaiIBQTsQyAEgEEEmEJ4BAkAgBygCDCIEIAcoAghqLQAARSAEQQlrQXlJcg0AIApB0OIHQfwBQQhBvgIQ4AMiBEUNACAHIAQoAgQ2AgAgEEGy3gEgBxCwAyABIAcoAgxqQQFqIQELIAdBEGokACABDAELIBAgDMAQ0QEgAUEBagsiAS0AACEMDAELCyABIQQMAwsgAUH/AXFBPkYNAQtBzeIDQQAQJyAFQQE2AiAMAQsgBEEBaiEECyAEIAhrCyEHAkAgEBAhRQ0AIBAQsA8iChA4IgFFDQMgASAKakEBayIBLQAAQd0ARwRAIBAgChCvDwwBCyABQQA6AAAgECAKEK8PIBBBw94BEOkBCyAFIAUpAiw3AjQgBSAHNgIwIAUgCDYCLAJAAn8gEBAhIgEEQCABQQBIDQYgBSgCACAQELAPIAFBABCkDQwBCyAHQQBIDQYgBSgCACAIIAcgB0UQpA0LDQAgBSgCJA0AIAUoAgAiAQR/IAEoAqQCBUEpC0EBayIBQStNBH8gAUECdEHMighqKAIABUEACyEBIAYgBRC7CDYCBCAGIAE2AgBBo/0EIAYQMiAFELIPIAVBjAI2AgggBUEBNgIkCyAEBEAgBSAENgIECyAFKAIIIgFFDQELCyAGQRBqJAAgAQwDC0H4kwNB1LkBQfsGQfjBARAAAAtBh8IDQdS5AUHDCEG9ExAAAAtBiMIDQdS5AUHGCEG9ExAAAAshAQsgAUEATARAQQAhAUEADAELQQIgAUGnAksNABogAUGw/AZqLAAACyIEaiIIQY8CSw0CIAQgCEHg/gZqLAAARw0CIAhB8IAHaiwAACIVQQBKBEAgCSAUKAKcCDYCBCAbQQFrIgFBACABIBtNGyEbQX4hASAJQQRqDAYLQQAgFWshFQwDCyAFQcCrARD9BQwFCyAEIQIMBgsgASEEIBVBgIMHaiwAACIVRQ0BCyAJQQEgFUGAhAdqLAAAIgZrQQJ0aigCACEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgFUECaw5AAAERAicnAwQnJycnJycnJwUNBg0HDQgNCQ0KDQsNDA0OJicnDxAmExQVFhcnJyYmGBkaJiYbHB0eHyAhIiMkJicLIA4gCUEEaygCAEECEK4PNgIADCYLIA4gCUEEaygCAEEBEK4PNgIADCULIA4QrQ8hBAwkCwJAIAUoAmwiChAkBEAgCiAKECEiCBDFAiIQDQEgFCAIQQFqNgIAQYjzCCgCAEGA6gMgFBAdGhAmAAsgChCsDyAKKAIAIRALIApCADcCACAKQgA3AgggHhD6BSgCACEHAkAgBSgCVCIWIAUoAlgiDEcEQCAFKAJQIRMgBSgCTCEIDAELIBZBAXRBASAWGyIMQaSSySRLBEBBxAAhEgwtCyAFKAJMIAxBOGwQNiIIRQRAQTAhEgwtCyAIIAUoAlgiCkE4bGpBACAMIAprQThsEDAaIAogBSgCVCIWIAUoAlAiE2pJBEAgE0E4bCEPIAggDCAKIBNrIgprIhNBOGxqIAggD2ogCkE4bBBUGiAFIBM2AlALIAUgDDYCWCAFIAg2AkwLIAggEyAWaiAMcEE4bGoiCCAHNgIEIAggEDYCACAIQQhqQQBBMBAwGiAFIAUoAlRBAWo2AlQMIwsgDiAJKAIAEKsPDCILIA4gCSgCABCEAwwhCyAOIAkoAgAQhAMMIAsgDiAJKAIAEIQDDB8LIA4gCSgCABCEAwweCyAOIAkoAgAQhAMMHQsgDiAJKAIAEIQDDBwLIA4gCSgCABCEAwwbCyAOIAkoAgAQhAMMGgsgDigCNCIIRQRAQcmTA0GJEkEmQb/4ABAAAAsgDkEsaiAIQQFrEKQPIA4gDigCNEEBazYCNAwZCyAJQQRrKAIAIQQMGAsgBSgCbBCqDxCpD0UNFSAFQZfdARD9BQwBCyAFKAJsEKoPEKkPRQ0BIAVByt0BEP0FCyAOKAIEIQEgDigCACIEBEAgBEEBELYIIA5BADYCAAsDQCABBEAgASgCUCABEKcPIQEMAQsLIA5BCGoQuQggDkEYahC4CCAOQSxqEKYPDBgLIAUgBSgCSCIEKAJQNgJIDBQLIAlBBGsoAgAhBAwTCyAJQQRrKAIAIQQMEgsgCUEEaygCACEEDBELIAlBBGsoAgAhBAwQCyAJQQRrKAIAIQQMDwsgCUEIaygCAEEBOgAQDA0LIAUoAkghDEEUEFUhByAMLQB8QQFxBEAgB0EBOgAQCwJAIAwoAlwiFiAMKAJgIghHBEAgDCgCWCEQIAwoAlQhEwwBCyAWQQF0QQEgFhsiCEH/////A0sEQEHEACESDBYLIAwoAlQgCEECdBA2IhNFBEBBMCESDBYLIBMgDCgCYCIKQQJ0akEAIAggCmtBAnQQMBogCiAMKAJcIhYgDCgCWCIQakkEQCAQQQJ0IQ8gEyAIIAogEGsiCmsiEEECdGogDyATaiAKQQJ0EFQaIAwgEDYCWAsgDCAINgJgIAwgEzYCVAsgEyAQIBZqIAhwQQJ0aiAHNgIAIAwgFkEBajYCXAwNCyAFKAJIQdQAahCoDygCACEEDAwLIAlBCGsoAgAiBCAELQBkQQFyOgBkDAoLIA4gCUEEaygCACAJKAIAQQEQ+QUMCgsgCUEMaygCACEEDAkLIA4gCUEEaygCACAJKAIAQQIQ+QUMCAsgCUEMaygCACEEDAcLIA4gCUEEaygCACAJKAIAQQMQ+QUMBgsgCUEMaygCACEEDAULIA4gCSgCACAOEK0PQQIQ+QUMBAsgCUEIaygCACEEDAMLIAlBBGsoAgAhBAwCCyAJKAIAIAUoAkg2AlAgCSgCACIEQgA3AlQgBEIANwJcIAUgCSgCADYCSCAeEPoFIQQgCSgCACAEKAIANgJ4CyAJKAIAIQQLIAkgBkECdGsiCiAENgIEAn8CQCASIAZrIhIsAAAiCCAVQdCEB2osAABBKWsiBEEBdEGghQdqLgEAaiIPQY8CSw0AIA9B4P4Gai0AACAIQf8BcUcNACAPQfCAB2oMAQsgBEHwhQdqCywAACEVIApBBGoMAQsCQAJAAkAgGw4EAQICAAILQX4hASAEQQBKDQEgBCIBDQEMAwsgBUGNORD9BQsDQCATQf//A3FBCEcEQCACIBJGDQMgCUEEayEJIBJBAWsiEiwAAEEBdEHA+gZqLwEAIRMMAQsLIAkgFCgCnAg2AgRBASEVQQMhGyAJQQRqCyEJIBJBAWohEgwBCwsgAiAUQdAGakYNAQsgAhAXCyAUQaAIaiQADAILIBQgEhB6NgIgQYjzCCgCAEGSgQQgFEEgahAdGhAmAAsgFCASEHo2AhBBiPMIKAIAQZKBBCAUQRBqEB0aECYAC0EDIQEgBSgCJEUEQCAFKAIgIQELIAUoAgAQqA0gBS0AH0H/AUYEQCAFKAIQEBcLIBEoAlAhCCALIAE2AowBIBFB2ABqELkIIBEoAlgQFyARQgA3AmAgEUIANwJYIBFB6ABqELgIIBEoAmgQFyARQgA3AnAgEUIANwJoICEQpg8gES0AnwFB/wFGBEAgESgCkAEQFwsgEUGgAWokAAJAIAhFBEAgCygCjAFBA0YEQCANQQA6AFIgDSANKAIAEGI2AgAMAgsgC0IANwMoIAtCADcDICANQQA6AFICQCALQSBqAn8CQAJAIAAQiQIOAwAAAQMLIAAQHwwBCyALQSBqIgEgAEEwQQAgACgCAEEDcUEDRxtqKAIoEB8Q6QEgASAAIABBMGsiASAAKAIAQQNxQQJGGygCKBAfEOkBQYLeAUH9mwMgACABIAAoAgBBA3FBAkYbKAIoECsQ+gEbCxDpAQsgDSALQSBqEOsBEGIiATYCAAJ/IA0oAgxBAUYEQCABELoEDAELIAEgCygCdBCNCAshASANKAIAEBcgDSABNgIAIBwoAhAoApABIA0Qkw8gC0EgahBnDAELAkAgCCgCBEEBRgRAAkAgCCgCACgCGA0AIAAQmA9FDQAgABCYDxBiIQEgCCgCACABNgIYCyALIBwgCCgCAEEAIAtBQGsQlw8gCygCjAFyNgKMASAIKAIAIgErA0ghAyALIAErA0BEAAAAAAAA4D+iIiI5AzAgCyADRAAAAAAAAOA/oiIDOQM4IAsgA5o5AyggCyALKQMwNwMQIAsgCykDODcDGCALIAspAyg3AwggCyAimjkDICALIAspAyA3AwAgASALQQ8Qlg8gDSALKwMwIAsrAyChOQMYIA0gCysDOCALKwMooTkDIAwBCyAcKAIQKAKQASAIKAIAIAtBQGsQlQ8gCCgCACIBIAErAyhEAAAAAAAA4D+iIiI5AyggASABKwMgRAAAAAAAAOA/oiIDOQMgIAEgIpo5AxggASADmjkDECANICIgIqA5AyAgDSADIAOgOQMYCyANIAg2AkggCCgCBEEBRw0AIA0oAgAQFyANQcLdARBiNgIACyALKAKMASALQZABaiQARQ0CAkACQAJAIAAQiQIOAwABAgULIBcgHxAfNgIAQb34AyAXEHwMBAsgFyAgEB82AhBBxvwDIBdBEGoQfAwDCyAaQTBBACAaKAIAQQNxQQNHG2ooAigQHyEBIBgQ+gEhACAXIBpBUEEAIBooAgBBA3FBAkcbaigCKBAfNgIoIBdBgt4BQf2bAyAAGzYCJCAXIAE2AiBB+fEDIBdBIGoQfAwCC0HU2AFB/rsBQZ8BQbvzABAAAAsgASAAQQAQkg8hAQJ/IARBAUYEQCABELoEDAELIAEgGBCNCAshACABEBcgDSAANgIAIBgoAhAoApABIA0Qkw8LIBdBMGokACANC8EBAQN/AkACQCAAKAIQIgIoArABIgQgAUcEQCAAIAEoAhAiAygCsAFHDQELQe+UBEEAECcMAQsgBEUEQCACIAE2ArABIAIoAqwBIgAgAygCrAFKBEAgAyAANgKsAQsDQCABRQ0CIAEoAhAiACAALwGoASACLwGoAWo7AagBIAAgAC8BmgEgAi8BmgFqOwGaASAAIAAoApwBIAIoApwBajYCnAEgACgCsAEhAQwACwALQdbRAUHCvAFBqQJBmRAQAAALC/IBAgN/AXwjAEEgayICJAAgAEEsaiIEEPoFKAIAIQMgAiABKQMYNwMYIAIgASkDEDcDECACIAEpAwg3AwggAiABKQMANwMAAkAgA0UNAAJAIAIoAgQNACADKAIEIgFFDQAgAiABNgIECwJAIAIrAxBEAAAAAAAAAABjRQ0AIAMrAxAiBUQAAAAAAAAAAGZFDQAgAiAFOQMQCwJAIAIoAgANACADKAIAIgFFDQAgAiABNgIACyADKAIYQf8AcSIBRQ0AIAIgAigCGCABcjYCGAsgBCAAKAI8KAKIASIAIAJBASAAKAIAEQQAEKUPIAJBIGokAAtvAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AwggA0KAgICAgICA+L9/NwMQIAMgAjYCGCADQgA3AwAgAQRAIAAgA0GQpwpBAyABQfbcARDFBAsgACgCPCgCiAEiACADQQEgACgCABEEACADQSBqJAALaQEBf0HUggsoAgAhAQJAIAAEQEHUggsgAUEBajYCACABDQFB0IILQQAQvAcQYjYCAEHD2wEQvAcaDwsgAUEATA0AQdSCCyABQQFrIgA2AgAgAA0AQdCCCygCABC8BxpB0IILKAIAEBcLC0IBAn8jAEEQayICJAAgASgCECEDIAIgACgCECkCyAE3AwggAiADKQLAATcDACAAIAJBCGogASACEM8IIAJBEGokAAtOAQF/AkAgACgCPCIERQ0AIAAoAkQgASAAKAIQQeAAaiIBEPAIIAQoAlwiBEUNACAAIAEgBBEDAAsgACgCECIAIAM5A5ABIAAgAjYCiAELngQCA38BfCMAQbABayICJAAgAkIANwOoASACQgA3A6ABAkACQAJAAkACQCAAKAIgIgNBAWsOBAECAgACCyAAKAIAIgBByq8BEEZFBEAgAkGrsgE2AjAgAiABuzkDOCACQaABakHuiQEgAkEwahBWDAQLIABB0+sAEEZFBEAgAkHZ6wA2AkAgAiABuzkDSCACQaABakHuiQEgAkFAaxBWDAQLIAG7IQUgAEG1kgEQRg0CIAIgBTkDWCACQeOSATYCUCACQaABakHuiQEgAkHQAGoQVgwDCyAALQAAIQMgAC0AASEEIAAtAAIhACACIAG7OQOIASACIAC4RAAAAAAAAHA/ojkDgAEgAiAEuEQAAAAAAABwP6I5A3ggAiADuEQAAAAAAABwP6I5A3AgAkGgAWpB/4kBIAJB8ABqEFYMAgsgAiAAKAIANgIEIAIgAzYCAEGI8wgoAgBBrv0DIAIQHRpB15oDQfS5AUHfAkHNNxAAAAsgAiAFOQNoIAIgADYCYCACQaABakHuiQEgAkHgAGoQVgsgAkIANwOYASACQgA3A5ABIAIgAkGgAWoiAxDjBDYCICACQZABaiIAQaLOAyACQSBqEFYgAxBnAkAgABAkBEAgACAAECEiAxDFAiIADQEgAiADQQFqNgIQQYjzCCgCAEGA6gMgAkEQahAdGhAmAAsgAkGQAWoQ/QggAigCkAEhAAsgAkGwAWokACAAC6QBAQN/IwBBIGsiAiQAAkACQAJAAkAgASgCIEEBaw4EAAEBAgELIAEtAANFBEAgAEGoxgMQGRoMAwsgAS0AACEDIAEtAAEhBCACIAEtAAI2AhggAiAENgIUIAIgAzYCECAAQckTIAJBEGoQHAwCCyACQSs2AgQgAkGbvgE2AgBBiPMIKAIAQa2+BCACEB0aEG4ACyAAIAEoAgAQGRoLIAJBIGokAAvyAwIEfAN/IAMoAhAiCisDECIJIAorA1ihRAAAAAAAABDAoCEGIAACfCABIAMgBCAFQX8Q5ggiCwRAAnwgASADIAsQ5QgiDARAIAwoAhArAyAgAisDEKAMAQsgCygCECILKwMQIAsrA4ACoCEHIAstAKwBRQRAIAcgASgCECgC+AG3RAAAAAAAAOA/oqAMAQsgByACKwMQoAsiByAGIAYgB2QbEC4MAQsgAisDACEHIAYQLiAHEDMLIgc5AwACfAJAIAotAKwBIgtBAUcNACAKKAJ4RQ0AIAlEAAAAAAAAJECgDAELIAkgCisDYKBEAAAAAAAAEECgCyEGIAACfCABIAMgBCAFQQEQ5ggiBARAAnwgASADIAQQ5QgiAwRAIAMoAhArAxAgAisDEKEMAQsgBCgCECIDKwMQIAMrA1ihIQggAy0ArAFFBEAgCCABKAIQKAL4AbdEAAAAAAAA4L+ioAwBCyAIIAIrAxChCyIIIAYgBiAIYxsQLgwBCyACKwMIIQggBhAuIAgQJQsiBjkDEAJAIAtBAUcNACAKKAJ4RQ0AIAAgBiAKKwNgoSIGOQMQIAYgB2NFDQAgACAJOQMQCyAAIAorAxgiByABKAIQKALEASAKKAL0AUEGdGoiASsDEKE5AwggACAHIAErAxigOQMYC6gBAgR/AnwgASgCACECIABBBGoiAyEAIAMhAQNAIAAoAgAiAARAIAAoAhAiBCsDCCIGIAIrAwgiB2MEQCAAQQRqIQAMAgUgACABIAAgAiAESyIEGyAGIAdkIgUbIQEgACAAIARBAnRqIAUbIQAMAgsACwsCQAJAIAEgA0YNACACKwMIIgYgASgCECIAKwMIIgdjDQAgACACTSAGIAdkcg0BCyADIQELIAELZAEBfyMAQRBrIgQkACAAQQA7ARwgAEEANgIYIAAgAzkDCCAAIAI2AgQgACABNgIAIAQgADYCDCABQTRqIARBDGoQtwEgACgCBCAEIAA2AghBKGogBEEIahC3ASAEQRBqJAAgAAs8ACAAIAEQuQIEQCAAEIoEDwsgABDNBiIBRQRAQQAPCyAAIAEQywYhACABEGUgACAALQAkQQNyOgAkIAALpAECA38CfCMAQRBrIgIkACAAEMoCIAAoAhAiASsDGEQAAAAAAABSQKMhBCABKwMQRAAAAAAAAFJAoyEFIAAQGiEBA0AgAQRAIAEoAhAoApQBIgMgAysDACAFoTkDACADIAMrAwggBKE5AwggACABEBshAQwBCwsgAiAAKAIQIgEpAxg3AwggAiABKQMQNwMAIAAgAhD9CSAAQQEQgAUgAkEQaiQACw8AIAFBAWogACAAEKEBnwsKACAAQQhqEMkDCw0AIAAoAgAgAUECdGoLGQAgABCiAQRAIAAgARC5AQ8LIAAgARDOAQthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ3wsgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC7EBAQN/IwBBEGsiByQAAkACQCAARQ0AIAQoAgwhBiACIAFrQQJ1IghBAEoEQCAAIAEgCBDVAyAIRw0BCyAGIAMgAWtBAnUiAWtBACABIAZIGyIBQQBKBEAgACAHQQRqIAEgBRDqCyIFED8gARDVAyEGIAUQchogASAGRw0BCyADIAJrQQJ1IgFBAEoEQCAAIAIgARDVAyABRw0BCyAEEO0LDAELQQAhAAsgB0EQaiQAIAALqAEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWsiCEEASgRAIAAgASAIENUDIAhHDQELIAYgAyABayIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFEO4LIgUQPyABENUDIQYgBRAvGiABIAZHDQELIAMgAmsiAUEASgRAIAAgAiABENUDIAFHDQELIAQQ7QsMAQtBACEACyAHQRBqJAAgAAsOACAAIAEoAgA2AgAgAAsKACAAIAEgAGtqCwsAIAAtAAtB/wBxCwgAIABB/wFxC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtB1IoLIAA2AgBBfwsLACAAIAEgAhEAAAtAACAAQQAQxgUiACgC9AMEQEGLO0HSvwFB1cAAQZWXARAAAAsgACABQcjYASACEJANIAAgACgCtARBAWs2ArQEC5sBAQN/AkAgAARAIAFFBEAgABA0IQELIAAgAUYEQAwCCyAAEBohBANAIARFDQIgASAEECkhAgNAIAIEQCAAIAJBUEEAIAIoAgBBA3FBAkcbaigCKEEAEHsEQCAAIAJBARDIAhogA0EBaiEDCyABIAIQLCECDAEFIAAgBBAbIQQMAgsACwALAAtBmNMBQdzAAUELQbWjARAAAAsgAwsfACAARQRAQaLTAUHVwAFBqwRB3IsBEAAACyAAKAIEC/4CAgR/AX4CQCACBEAgAi0AAEElRwRAIAAoAkwiBSgCCCABIAIgAyAEIAUoAgAoAgQRBwAiBQ0CCyMAQSBrIgUkAAJAIAAoAkxBAiABIAFBA0YbQQJ0aigCLCIHRQ0AIAAgAhDRDSIIRQ0AIAUgCDYCGCAHIAVBBCAHKAIAEQQAIgdFDQAgAyAHKQMQNwMAQQEhBgsgBUEgaiQAIAYiBQ0BCyAERQ0AIAJFIAAoAkwiBCgCCCABQQAgA0EBIAQoAgAoAgQRBwAiBUVyDQAgAykDACEJQSAQ4gEiAyAJNwMQIAMgACACEKkBNgIYIAAoAkwiBEECIAEgAUEDRhsiBkECdCICaigCLCIBBH8gBAVBuNQKQdjVCigCABCIAiEBIAAoAkwgAmogATYCLCAAKAJMCyACaigCOCICRQRAQdDUCkHY1QooAgAQiAIhAiAAKAJMIAZBAnRqIAI2AjgLIAEgA0EBIAEoAgARBAAaIAIgA0EBIAIoAgARBAAaCyAFC2QBAn8jAEEQayIDJAACQCAAQQAQsAIiAEUNAAJAAkACQAJAIAEOBAABAgIDCyAAKAIQIQIMAwsgACgCCCECDAILIAAoAgwhAgwBCyADIAE2AgBB18QEIAMQMgsgA0EQaiQAIAILCgAgAEHIABD6CgtCAQJ/IAAoAgQgAUEYbGpBCGohA0EAIQEDQCABIgAgAygCCCIESQRAIABBAWohASADIAAQhAggAkcNAQsLIAAgBEkLJwAgAEUEQEHlhgFBj70BQfkFQeCGARAAAAsgAEE0QTAgARtqKAIAC18AAkAgACABQQhqQYAEIAAoAgARBAAiAARAIAAoAhAiACABQRBqQYAEIAAoAgARBAAiAEUNASAADwtBqfkAQY+9AUGkA0Hh/QAQAAALQbfeAEGPvQFBpgNB4f0AEAAAC/MGAgZ/AXwjAEHQAGsiAyQAIAAgAEEwaiIGIAAoAgBBA3FBA0YbKAIoECshBSADQQA2AjggA0EANgJIAkACQEHwhAsoAgAiAUUNACAAIAEQPiIBRQ0AIAEtAABFDQAgACADQUBrEJAIIAAgASABEKsCQQBHQQF0IAMrA0AiByADKAJIIgEgAygCTCIEEIIDIQIgACgCECACNgJgIAUoAhAiAiACLQBxQQFyOgBxIABBmIULKAIAQceXARB5IQIgACgCECACEGo6AHMMAQtBACEBCwJAQfSECygCACICRQ0AIAAgAhA+IgJFDQAgAi0AAEUNACABRQRAIAAgA0FAaxCQCCADKAJMIQQgAysDQCEHIAMoAkghAQsgACACIAIQqwJBAEdBAXQgByABIAQQggMhASAAKAIQIAE2AmwgBSgCECIBIAEtAHFBIHI6AHELAkACQEGkhQsoAgAiAUUNACAAIAEQPiIBRQ0AIAEtAABFDQAgACADQUBrIANBMGoQzg4gACABIAEQqwJBAEdBAXQgAysDMCIHIAMoAjgiASADKAI8IgQQggMhAiAAKAIQIAI2AmQgBSgCECICIAItAHFBAnI6AHEMAQtBACEBCwJAQaiFCygCACICRQ0AIAAgAhA+IgJFDQAgAi0AAEUNACABRQRAIAAgA0FAayADQTBqEM4OIAMoAjwhBCADKwMwIQcgAygCOCEBCyAAIAIgAhCrAkEAR0EBdCAHIAEgBBCCAyEBIAAoAhAgATYCaCAFKAIQIgEgAS0AcUEEcjoAcQsgAEGPGxAjIgFBo4EFIAEbIgEtAAAEQCAAIAYgACgCAEEDcUEDRhsoAigoAhBBAToAoQELIAAoAhAgA0EIaiICIAAgBiAAKAIAQQNxQQNGGygCKCIFKAIQKAIIKAIEKAIIIAUgARDNDkEQaiACQSgQHhogAEHAhQsoAgAQzA4EQCAAKAIQQQA6AC4LIABByxsQIyIBQaOBBSABGyIBLQAABEAgAEFQQQAgACgCAEEDcUECRxtqKAIoKAIQQQE6AKEBCyAAKAIQIANBCGoiAiAAQVBBACAAKAIAQQNxQQJHG2ooAigiBSgCECgCCCgCBCgCCCAFIAEQzQ5BOGogAkEoEB4aIABBxIULKAIAEMwOBEAgACgCEEEAOgBWCyADQdAAaiQAC4UBAQN/IwBBEGsiAiQAIAAhAQJAA0AgASgCECIBKAIIIgMNASABLQBwBEAgASgCeCEBDAELCyAAQTBBACAAKAIAQQNxQQNHG2ooAigQHyEBIAIgAEFQQQAgACgCAEEDcUECRxtqKAIoEB82AgQgAiABNgIAQaztBCACEDILIAJBEGokACADC54BAQF/AkBBvIULKAIAQbiFCygCAHJFDQACQCAAKAIQKAJkIgFFDQAgAS0AUQ0AIABBARDpBUUNACAAQTBBACAAKAIAQQNxQQNHG2ooAigQKyAAKAIQKAJkEIsCCyAAKAIQKAJoIgFFDQAgAS0AUQ0AIABBABDpBUUNACAAQTBBACAAKAIAQQNxQQNHG2ooAigQKyAAKAIQKAJoEIsCCwvNXwIKfAZ/IwBBkAFrIg8kAAJAAkACQAJAAkAgAARAIAFFDQEgAkUNAiADKAIAIhBFDQMCQCAQQQhxBEAgDyAQNgIUIA8gEDYCGEEAIQMgASACIA9BFGpBABCgCCEQIAAgASACIAQQQANAIAIgA0ZFBEAgDyAQIANBMGxqIgEpAyg3AyggDyABKQMgNwMgIA8gASkDSDcDOCAPIAFBQGspAwA3AzAgACAPQSBqQQIQNyADQQFqIQMMAQsLIBAQFwwBCwJAIBBBgOAfcQRAIBBBDHZB/wBxIhFBGkcNASABQQhqKwMAIQUgDyABKQMINwMoIA8gASkDADcDICAPIAErAxA5AzAgDyAFIAWgIgUgASsDGKE5AzggDyABKwMgOQNAIA8gBSABKwMooTkDSCAPIAErAzA5A1AgDyAFIAErAzihOQNYIA8gASsDQDkDYCAPIAUgASsDSKE5A2ggDyABKwNQOQNwIA8gBSABKwNYoTkDeCAPIAEpA2g3A4gBIA8gASkDYDcDgAEgACABIAIgBBD/ASAAIA9BIGpBB0EAEP8BDAILIBBBBHEEQCAPIBA2AgwgDyAQNgIgIAEgAiAPQQxqQQEQoAghEiACQQZsQQJqQRAQGCERQQAhAwNAIAIgA0ZFBEAgESATQQR0aiIBIBIgA0EGdGoiECkDADcDACABIBApAwg3AwggASAQKQMYNwMYIAEgECkDEDcDECABIBApAxg3AyggASAQKQMQNwMgIAEgECkDKDcDOCABIBApAyA3AzAgAUFAayAQKQMgNwMAIAEgECkDKDcDSCABIBApAzg3A1ggASAQKQMwNwNQIANBAWohAyATQQZqIRMMAQsLIBEgE0EEdGoiASARKQMANwMAIAEgESkDCDcDCCARIBNBAXIiAUEEdGoiAiARKQMYNwMIIAIgESkDEDcDACAAIBFBEGogASAEEP8BIBEQFyASEBcMAgsgD0HXBTYCBCAPQYe8ATYCAEGI8wgoAgBBrb4EIA8QHRoQbgALIA8gAygCADYCECABIAIgD0EQakEAEKAIIRACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBFBAWsOGQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZCyACQQFqIhNBEBAYIRFBASEDA0AgAiADRgRAIBEgECACQTBsaiIBQRhqKQMANwMIIBEgASkDEDcDACARIAJBBHRqIgMgAUEQayICQQhqKQMANwMIIAMgAikDADcDACAAIBEgEyAEEEAgERAXIA8gAikDCDcDKCAPIAIpAwA3AyAgDyABKQMYNwM4IA8gASkDEDcDMCAPIA8rAzAgDysDICABKwMAoaA5A0AgDyAPKwM4IA8rAyggASsDCKGgOQNIIAAgD0EwakECEDcgDyAPKQNINwM4IA8gDykDQDcDMCAAIA9BIGpBAhA3DBoFIBEgA0EEdCISaiIUIAEgEmoiEikDADcDACAUIBIpAwg3AwggA0EBaiEDDAELAAsACyACQQJqIgNBEBAYIgIgASkDCDcDCCACIAEpAwA3AwAgAiAQKQMgNwMQIAIgECkDKDcDGCACIBArAyAgECsDMCIGIBArA0ChRAAAAAAAAAhAoyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQQCACEBcgDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDcMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBgiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEAgAhAXDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBgiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCACIBApA4ABNwNAIAIgECkDiAE3A0ggAiAQKQOgATcDUCACIBApA6gBNwNYIAAgAkEGIAQQQCACEBcgDyAQKwMQIBArA7ABIBArAwChoDkDICAPIBArAxggECsDuAEgECsDCKGgOQMoIA8gECkDSDcDOCAPIBApA0A3AzAgACAPQSBqIgFBAhA3IA8gECkDiAE3AzggDyAQKQOAATcDMCAAIAFBAhA3IA8gECkDCDcDOCAPIBApAwA3AzAgACABQQIQNwwVCyACQQRHDRtBDEEQEBgiAiABKQMINwMIIAIgASkDADcDACACIAEpAxA3AxAgAiABKQMYNwMYIAIgECsDMCIFIBArA0AgBaEiCaAiBjkDICACIBArAzgiByAQKwNIIAehIgqgIgg5AyggAiAGIAUgECsDIKGgIgU5AzAgECsDKCELIAIgCSAFoCIJIAYgBaGgOQNQIAIgCTkDQCACIAggByALoaAiBTkDOCACIAogBaAiBjkDSCACIAYgCCAFoaA5A1ggAiAQKwNgIgUgECsDUCAFoSIJoCIGOQOQASACIBArA2giByAQKwNYIAehIgqgIgg5A5gBIAIgBiAFIBArA3ChoCIFOQOAASAQKwN4IQsgAiAJIAWgIgk5A3AgAiAJIAYgBaGgOQNgIAIgCCAHIAuhoCIFOQOIASACIAogBaAiBjkDeCACIAYgCCAFoaA5A2ggAiABKQMgNwOgASACIAEpAyg3A6gBIAIgASkDMDcDsAEgAiABKQM4NwO4ASAAIAJBDCAEEEAgDyACKQMoNwMoIA8gAikDIDcDICAPIAIrAyAiBSACKwMwIgYgBaGhIgU5AzAgDyACKwMoIgcgAisDOCIIIAehoSIHOQM4IA8gBSACKwNAIAahoDkDQCAPIAcgAisDSCAIoaA5A0ggDyACKQNYNwNYIA8gAikDUDcDUCAAIA9BIGoiAUEEEDcgDyACKQNoNwMoIA8gAikDYDcDICAPIAIrA2AiBSACKwNwIgYgBaGhIgU5AzAgDyACKwNoIgcgAisDeCIIIAehoSIHOQM4IA8gBSACKwOAASAGoaA5A0AgDyAHIAIrA4gBIAihoDkDSCAPIAIpA5gBNwNYIA8gAikDkAE3A1AgACABQQQQNyACEBcMFAsgAkEFaiIDQRAQGCICIAErAwAiBSABKwMQIgagRAAAAAAAAOA/oiIHIAUgBqEiBkQAAAAAAADAP6KgIgU5AwAgECsDSCEJIBArAzghCiABKwMoIQsgASsDGCEMIAIgByAGRAAAAAAAANA/oqEiCDkDICACIAg5AxAgAiAMIAugRAAAAAAAAOA/oiIGOQMoIAIgBiAKIAmhIgdEAAAAAAAACECiRAAAAAAAAOA/oqAiCTkDGCACIAk5AwggECsDMCEKIBArAyAhCyACIAdEAAAAAAAA0D+iIgwgCaA5A4gBIAIgBTkDgAEgAiAHRAAAAAAAAOA/oiAGIAegIgcgDKEiCaA5A3ggAiAJOQNoIAIgBTkDYCACIAc5A1ggAiAFOQNQIAIgBzkDSCACIAY5AzggAiAFIAsgCqEiBaA5A3AgAiAIIAVEAAAAAAAA4D+ioCIFOQNAIAIgBTkDMCAAIAIgAyAEEEAgDyABKwMQOQMgIA8gASsDGCABKwMoIgWgRAAAAAAAAOA/ojkDKCAPIAErAwA5AzAgDyAFIAErAwggASsDOKFEAAAAAAAA4D+ioDkDOCAAIA9BIGpBAhA3IAIQFwwTCyACQQFqIgNBEBAYIgIgECsDECIGOQMAIAIgECsDGCAQKwM4IgcgECsDSKFEAAAAAAAA4D+iIgWhOQMIIBArAzAhCCACIAcgBaE5AxggAiAIOQMQIAIgASsDIDkDICABKwMoIQcgAiAGOQMwIAIgBSAHoCIFOQM4IAIgBTkDKCACIAErAwgiBSAFIAErAzihRAAAAAAAAOA/oqE5A0ggAiABKwMAOQNAIAAgAiADIAQQQCACEBcMEgsgAkEEaiIDQRAQGCICIAErAwAgASsDEKBEAAAAAAAA4D+iIgUgECsDICAQKwMwoSIGRAAAAAAAANA/oiIJoCIHOQMAIAErAyghCCABKwMYIQogAiAHOQMQIAIgCiAIoEQAAAAAAADgP6IiCDkDCCAQKwNIIQogECsDOCELIAIgCDkDeCACIAUgCaEiCTkDcCACIAk5A2AgAiAFIAZEAAAAAAAACMCiRAAAAAAAANA/oqAiBTkDUCACIAU5A0AgAiAGRAAAAAAAAOA/oiAHoCIFOQMwIAIgBTkDICACIAggCyAKoUQAAAAAAADgP6IiBqAiBTkDaCACIAU5A1ggAiAFOQMoIAIgBTkDGCACIAYgBaAiBTkDSCACIAU5AzggACACIAMgBBBAIA8gASsDEDkDICAPIAErAxggASsDKCIFoEQAAAAAAADgP6I5AyggDyABKwMAOQMwIA8gBSABKwMIIAErAzihRAAAAAAAAOA/oqA5AzggACAPQSBqQQIQNyACEBcMEQsgAkECaiIDQRAQGCICIAErAwAgASsDEKBEAAAAAAAA4D+iIgUgECsDICAQKwMwoSIHRAAAAAAAAAhAokQAAAAAAADQP6IiCKAiBjkDACABKwMoIQkgASsDGCEKIAIgBjkDECACIAogCaBEAAAAAAAA4D+iIgY5AwggECsDSCEJIBArAzghCiACIAY5A1ggAiAFIAihIgg5A1AgAiAIOQNAIAIgBSAHRAAAAAAAANA/oiIHoTkDMCACIAUgB6A5AyAgAiAGIAogCaEiBkQAAAAAAADQP6KgIgU5A0ggAiAFOQMYIAIgBkQAAAAAAADgP6IgBaAiBTkDOCACIAU5AyggACACIAMgBBBAIA8gASsDEDkDICAPIAErAxggASsDKCIFoEQAAAAAAADgP6I5AyggDyABKwMAOQMwIA8gBSABKwMIIAErAzihRAAAAAAAAOA/oqA5AzggACAPQSBqQQIQNyACEBcMEAsgAkEBaiIDQRAQGCICIAErAwAiBSABKwMQIgagRAAAAAAAAOA/oiIHIBArAyAgECsDMKEiCKAiCTkDACABKwMoIQogASsDGCELIBArA0ghDCAQKwM4IQ0gAiAHIAUgBqFEAAAAAAAA0D+ioSIFOQNAIAIgBTkDMCACIAkgCKEiBTkDICACIAU5AxAgAiALIAqgRAAAAAAAAOA/oiANIAyhIgZEAAAAAAAA0D+ioCIFOQNIIAIgBTkDCCACIAZEAAAAAAAA4D+iIAWgIgc5AzggAiAHOQMoIAIgBiAFoDkDGCAAIAIgAyAEEEAgDyABKwMQOQMgIA8gASsDGCABKwMoIgWgRAAAAAAAAOA/ojkDKCAPIAErAwA5AzAgDyAFIAErAwggASsDOKFEAAAAAAAA4D+ioDkDOCAAIA9BIGpBAhA3IAIQFwwPCyACQQRqIgNBEBAYIgIgASsDACIFIAErAxAiBqBEAAAAAAAA4D+iIgcgBSAGoUQAAAAAAADAP6IiCKAgECsDICAQKwMwoUQAAAAAAADgP6IiBaAiBjkDACABKwMoIQkgASsDGCEKIBArA0ghCyAQKwM4IQwgAiAGOQNwIAIgBiAFoSIGOQNgIAIgBjkDUCACIAcgCKEiBiAFoSIFOQNAIAIgBTkDMCACIAY5AyAgAiAGOQMQIAIgCiAJoEQAAAAAAADgP6IiBiAMIAuhIgdEAAAAAAAA0D+iIgihIgU5A1ggAiAFOQNIIAIgBiAIoCIGOQMYIAIgBjkDCCACIAUgB0QAAAAAAADgP6IiBaEiBzkDeCACIAc5A2ggAiAFIAagIgU5AzggAiAFOQMoIAAgAiADIAQQQCAPIAErAxA5AyAgDyABKwMYIAErAygiBaBEAAAAAAAA4D+iOQMoIA8gAisDQDkDMCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgD0EgaiIDQQIQNyAPIAIrA3A5AyAgDyABKwMYIAErAygiBaBEAAAAAAAA4D+iOQMoIA8gASsDADkDMCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgA0ECEDcgAhAXDA4LIAJBEBAYIgMgASsDECIFOQMAIAMgASsDGCABKwMooEQAAAAAAADgP6IgECsDOCAQKwNIoSIHRAAAAAAAAMA/oqAiBjkDCCAQKwMwIQggECsDICEJIAMgB0QAAAAAAADgP6IgBqAiBzkDOCADIAU5AzAgAyAHOQMoIAMgBjkDGCADIAUgCSAIoSIFIAWgoCIFOQMgIAMgBTkDECAAIAMgAiAEEEAgAxAXIAJBEBAYIgMgASsDECAQKwMgIBArAzChIgagIgU5AwAgECsDSCEHIBArAzghCCABKwMoIQkgASsDGCEKIAMgBTkDMCADIAYgBaAiBTkDICADIAU5AxAgAyAKIAmgRAAAAAAAAOA/oiAIIAehIgZEAAAAAAAAFMCiRAAAAAAAAMA/oqAiBTkDGCADIAU5AwggAyAGRAAAAAAAAOA/oiAFoCIFOQM4IAMgBTkDKCAAIAMgAiAEEEAgDyADKwMQOQMgIA8gASsDGCABKwMoIgWgRAAAAAAAAOA/ojkDKCAPIAErAwA5AzAgDyAFIAErAwggASsDOKFEAAAAAAAA4D+ioDkDOCAAIA9BIGpBAhA3IAMQFwwNCyACQRAQGCIDIAErAwAiBjkDACABKwMoIQUgASsDGCEHIBArA0ghCCAQKwM4IQkgAyAGOQMQIAMgByAFoEQAAAAAAADgP6IgCSAIoSIFRAAAAAAAAMA/oqAiBzkDOCADIAYgBSAFoKEiBjkDMCADIAY5AyAgAyAHOQMIIAMgBUQAAAAAAADgP6IgB6AiBTkDKCADIAU5AxggACADIAIgBBBAIAMQFyACQRAQGCIDIAErAwAgECsDICAQKwMwoaEiBTkDACABKwMoIQYgASsDGCEHIBArA0ghCCAQKwM4IQkgAyAFOQMQIAMgBSAJIAihIgWhIgg5AzAgAyAIOQMgIAMgByAGoEQAAAAAAADgP6IgBUQAAAAAAAAUwKJEAAAAAAAAwD+ioCIGOQM4IAMgBjkDCCADIAVEAAAAAAAA4D+iIAagIgU5AyggAyAFOQMYIAAgAyACIAQQQCAPIAErAxA5AyAgDyABKwMYIAErAygiBaBEAAAAAAAA4D+iOQMoIA8gAysDMDkDMCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgD0EgakECEDcgAxAXDAwLIAJBEBAYIgMgASsDACABKwMQoEQAAAAAAADgP6IgECsDICAQKwMwoSIGRAAAAAAAACJAokQAAAAAAADAP6KhIgU5AwAgASsDKCEHIAErAxghCCAQKwNIIQkgECsDOCEKIAMgBTkDMCADIAYgBaAiBTkDICADIAU5AxAgAyAIIAegRAAAAAAAAOA/oiAKIAmhIgZEAAAAAAAAwD+ioCIFOQMYIAMgBTkDCCADIAZEAAAAAAAA4D+iIAWgIgU5AzggAyAFOQMoIAAgAyACIAQQQCADEBcgAkEQEBgiAyABKwMAIAErAxCgRAAAAAAAAOA/oiAQKwMgIBArAzChIgZEAAAAAAAAIkCiRAAAAAAAAMA/oqEiBTkDACAQKwNIIQcgECsDOCEIIAErAyghCSABKwMYIQogAyAFOQMwIAMgBiAFoCIFOQMgIAMgBTkDECADIAogCaBEAAAAAAAA4D+iIAggB6EiBkQAAAAAAAAUQKJEAAAAAAAAwD+ioSIFOQMYIAMgBTkDCCADIAZEAAAAAAAA4D+iIAWgIgU5AzggAyAFOQMoIAAgAyACIAQQQCADEBcgAkEQEBgiAyABKwMAIAErAxCgRAAAAAAAAOA/oiAQKwMgIBArAzChIgZEAAAAAAAAwD+ioCIFOQMAIBArA0ghByAQKwM4IQggASsDKCEJIAErAxghCiADIAU5AzAgAyAGIAWgIgU5AyAgAyAFOQMQIAMgCiAJoEQAAAAAAADgP6IgCCAHoSIGRAAAAAAAABRAokQAAAAAAADAP6KhIgU5AxggAyAFOQMIIAMgBkQAAAAAAADgP6IgBaAiBTkDOCADIAU5AyggACADIAIgBBBAIAMQFyACQRAQGCIDIAErAwAgASsDEKBEAAAAAAAA4D+iIBArAyAgECsDMKEiBkQAAAAAAADAP6KgIgU5AwAgASsDKCEHIAErAxghCCAQKwNIIQkgECsDOCEKIAMgBTkDMCADIAYgBaAiBTkDICADIAU5AxAgAyAIIAegRAAAAAAAAOA/oiAKIAmhIgZEAAAAAAAAwD+ioCIFOQMYIAMgBTkDCCADIAZEAAAAAAAA4D+iIAWgIgU5AzggAyAFOQMoIAAgAyACIAQQQCAPIAMrAxA5AyAgDyABKwMYIAErAygiBaBEAAAAAAAA4D+iOQMoIA8gASsDADkDMCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgD0EgaiICQQIQNyAPIAErAwAgASsDECIGoEQAAAAAAADgP6IgECsDICAQKwMwoUQAAAAAAAAiQKJEAAAAAAAAwD+ioTkDICABKwMoIQUgASsDGCEHIA8gBjkDMCAPIAcgBaBEAAAAAAAA4D+iOQMoIA8gBSABKwMIIAErAzihRAAAAAAAAOA/oqA5AzggACACQQIQNyADEBcMCwsgAkEQEBgiAyABKwMAIAErAxCgRAAAAAAAAOA/oiAQKwMgIBArAzChIgWhIgY5AwAgASsDKCEHIAErAxghCCAQKwNIIQkgECsDOCEKIAMgBjkDMCADIAUgBaAgBqAiBTkDICADIAU5AxAgAyAIIAegRAAAAAAAAOA/oiAKIAmhIgZEAAAAAAAAwD+ioCIFOQMYIAMgBTkDCCADIAZEAAAAAAAA4D+iIAWgIgU5AzggAyAFOQMoIAAgAyACIAQQQCADEBcgAkEQEBgiAyABKwMAIAErAxCgRAAAAAAAAOA/oiAQKwMgIBArAzChIgWhIgY5AwAgECsDSCEHIBArAzghCCABKwMoIQkgASsDGCEKIAMgBjkDMCADIAUgBaAgBqAiBTkDICADIAU5AxAgAyAKIAmgRAAAAAAAAOA/oiAIIAehIgZEAAAAAAAAFMCiRAAAAAAAAMA/oqAiBTkDGCADIAU5AwggAyAGRAAAAAAAAOA/oiAFoCIFOQM4IAMgBTkDKCAAIAMgAiAEEEAgDyADKwMQOQMgIA8gASsDGCABKwMoIgWgRAAAAAAAAOA/ojkDKCAPIAErAwA5AzAgDyAFIAErAwggASsDOKFEAAAAAAAA4D+ioDkDOCAAIA9BIGoiAkECEDcgDyABKwMQOQMgIA8gASsDGCABKwMoIgWgRAAAAAAAAOA/ojkDKCAPIAMrAwA5AzAgDyAFIAErAwggASsDOKFEAAAAAAAA4D+ioDkDOCAAIAJBAhA3IAMQFwwKCyACQRAQGCIDIAErAwAiBjkDACADIBArAxggECsDOCIHIBArA0ihRAAAAAAAAOA/oiIFoTkDCCAQKwMwIQggAyAHIAWhOQMYIAMgCDkDECADIAErAyA5AyAgASsDKCEHIAMgBjkDMCADIAUgB6AiBTkDOCADIAU5AyggACADIAIgBBBAIA8gASsDECAQKwMgIBArAzChRAAAAAAAANA/oiIFoCIGOQMgIAErAyghByABKwMYIQggECsDSCEJIBArAzghCiAPIAUgBqA5AzAgDyAIIAegRAAAAAAAAOA/oiAKIAmhIgVEAAAAAAAAwD+ioCIGOQMoIA8gBiAFRAAAAAAAANA/oqE5AzggACAPQSBqIgJBAhA3IA8gASsDECAQKwMgIBArAzChRAAAAAAAANA/oiIFoCIGOQMgIAErAyghByABKwMYIQggECsDSCEJIBArAzghCiAPIAUgBqA5AzAgDyAIIAegRAAAAAAAAOA/oiAKIAmhIgVEAAAAAAAAwD+ioSIGOQMoIA8gBUQAAAAAAADQP6IgBqA5AzggACACQQIQNyAPIAErAxAgECsDICAQKwMwoUQAAAAAAADQP6IiBaA5AyAgDyABKwMoIBArAzggECsDSKFEAAAAAAAACECiRAAAAAAAANA/oqAiBjkDKCABKwMAIQcgDyAGOQM4IA8gByAFoTkDMCAAIAJBAhA3IAMQFwwJCyACQRAQGCIDIAErAwAgASsDEKBEAAAAAAAA4D+iIgYgECsDICAQKwMwoUQAAAAAAADgP6IiBaAiBzkDACABKwMoIQggASsDGCEJIAMgBiAFoSIGOQMwIAMgBjkDICADIAc5AxAgAyAFIAkgCKBEAAAAAAAA4D+iIgagIgc5AzggAyAGIAWhIgU5AyggAyAFOQMYIAMgBzkDCCAAIAMgAiAEEEAgAxAXIA8gASsDACABKwMQoEQAAAAAAADgP6IiBiAQKwMgIBArAzChRAAAAAAAAAhAokQAAAAAAADQP6IiBaAiBzkDICAPIAUgASsDGCABKwMooEQAAAAAAADgP6IiCKAiCTkDKCAPIA8pAyg3A2ggDyAGIAWhIgY5A1AgDyAGOQNAIA8gBzkDMCAPIA8pAyA3A2AgDyAJOQNYIA8gCCAFoSIFOQNIIA8gBTkDOCAAIA9BIGoiAkEFEDcgDyABKwMAIgYgASsDEKBEAAAAAAAA4D+iIBArAyAgECsDMKFEAAAAAAAACECiRAAAAAAAANA/oqA5AyAgASsDKCEFIAErAxghByAPIAY5AzAgDyAHIAWgRAAAAAAAAOA/ojkDKCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgAkECEDcgDyABKwMQIgU5AyAgDyABKwMYIAErAygiBqBEAAAAAAAA4D+iOQMoIA8gBSABKwMAoEQAAAAAAADgP6IgECsDICAQKwMwoUQAAAAAAAAIQKJEAAAAAAAA0D+ioTkDMCAPIAYgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgAkECEDcMCAsgAkEMaiIDQRAQGCICIAErAwAgASsDEKBEAAAAAAAA4D+iIgcgECsDICAQKwMwoSIGRAAAAAAAANA/oqAiBTkDACABKwMoIQkgASsDGCEKIBArA0ghCyAQKwM4IQwgAiAFIAZEAAAAAAAAwD+iIgahIgg5A/ABIAIgBzkD4AEgAiAGIAcgBqEiDSAGoSIGoCIOOQPQASACIAY5A8ABIAIgBjkDsAEgAiAOOQOgASACIAY5A5ABIAIgBjkDgAEgAiANOQNwIAIgBzkDYCACIAg5A1AgAiAFOQNAIAIgBTkDMCACIAg5AyAgAiAFOQMQIAIgCiAJoEQAAAAAAADgP6IgDCALoSIGRAAAAAAAAOA/oqAiBTkD+AEgAiAFOQPYASACIAU5A8gBIAIgBTkDCCACIAZEAAAAAAAAwD+iIgYgBaAiBTkD6AEgAiAFOQO4ASACIAU5AxggAiAGIAWgIgU5A6gBIAIgBTkDKCACIAYgBaAiBTkDmAEgAiAFOQNoIAIgBTkDOCACIAYgBaAiBTkDiAEgAiAFOQN4IAIgBTkDWCACIAU5A0ggACACIAMgBBBAIA8gAisD4AEiBTkDICABKwMoIQYgASsDGCEHIA8gBTkDMCAPIAcgBqBEAAAAAAAA4D+iIgU5AyggDyAFIBArAzggECsDSKFEAAAAAAAAwD+ioDkDOCAAIA9BIGoiA0ECEDcgDyACKwPgASIFOQMgIAErAyghBiABKwMYIQcgECsDSCEIIBArAzghCSAPIAU5AzAgDyAHIAagRAAAAAAAAOA/oiAJIAihIgVEAAAAAAAA0D+ioCIGOQMoIA8gBUQAAAAAAADAP6IgBqA5AzggACADQQIQNyAPIAErAxA5AyAgDyABKwMYIAErAygiBaBEAAAAAAAA4D+iOQMoIA8gASsDADkDMCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgA0ECEDcgAhAXDAcLIAJBBGoiA0EQEBgiAiABKwMAIAErAxCgRAAAAAAAAOA/oiAQKwMgIBArAzChIgdEAAAAAAAAwD+iIgagIgU5AwAgASsDKCEIIAErAxghCSAQKwNIIQogECsDOCELIAIgBSAHRAAAAAAAANA/oqEiBzkDcCACIAcgBqEiDDkDYCACIAw5A1AgAiAHOQNAIAIgBTkDMCACIAYgBaAiBTkDICACIAU5AxAgAiAJIAigRAAAAAAAAOA/oiALIAqhIgVEAAAAAAAA4D+ioCIGOQN4IAIgBjkDCCACIAVEAAAAAAAAwD+iIgcgBqAiBjkDaCACIAY5AxggAiAGIAVEAAAAAAAA0D+ioCIFOQNYIAIgBTkDKCACIAUgB6AiBTkDSCACIAU5AzggACACIAMgBBBAIA8gASsDACABKwMQoEQAAAAAAADgP6IiBTkDICABKwMoIQYgASsDGCEHIA8gBTkDMCAPIAcgBqBEAAAAAAAA4D+iIgU5AyggDyAFIBArAzggECsDSKFEAAAAAAAAwD+ioDkDOCAAIA9BIGoiA0ECEDcgDyABKwMAIAErAxCgRAAAAAAAAOA/oiIFOQMgIAErAyghBiABKwMYIQcgECsDSCEIIBArAzghCSAPIAU5AzAgDyAHIAagRAAAAAAAAOA/oiAJIAihIgVEAAAAAAAA0D+ioCIGOQMoIA8gBiAFRAAAAAAAAMA/oqA5AzggACADQQIQNyAPIAErAxA5AyAgDyABKwMYIAErAygiBaBEAAAAAAAA4D+iOQMoIA8gASsDADkDMCAPIAUgASsDCCABKwM4oUQAAAAAAADgP6KgOQM4IAAgA0ECEDcgAhAXDAYLIAJBDGoiA0EQEBgiAiABKwMAIAErAxCgRAAAAAAAAOA/oiIHIBArAyAgECsDMKEiBkQAAAAAAADQP6KgIgU5AwAgASsDKCEKIAErAxghCyAQKwNIIQwgECsDOCENIAIgBSAGRAAAAAAAAMA/oiIIoSIJOQPwASACIAc5A+ABIAIgByAIoSIOIAihIgYgCKAiCDkD0AEgAiAGOQPAASACIAY5A7ABIAIgCDkDoAEgAiAGOQOQASACIAY5A4ABIAIgDjkDcCACIAc5A2AgAiAJOQNQIAIgBTkDQCACIAU5AzAgAiAJOQMgIAIgBTkDECACIAsgCqBEAAAAAAAA4D+iIA0gDKEiBkQAAAAAAADgP6KgIgU5A/gBIAIgBTkD2AEgAiAFOQPIASACIAU5AwggAiAFIAZEAAAAAAAAwD+iIgWgIgY5A+gBIAIgBjkDuAEgAiAGOQMYIAIgBiAFoCIGOQOoASACIAY5AyggAiAGIAWgIgY5A5gBIAIgBjkDaCACIAY5AzggAiAGIAWgIgU5A4gBIAIgBTkDeCACIAU5A1ggAiAFOQNIIAAgAiADIAQQQCAPIAIpA+ABNwMgIA8gAikD6AE3AyggDyAPKwMgOQMwIA8gASsDGCABKwMooEQAAAAAAADgP6I5AzggACAPQSBqIgNBAhA3IA8gASsDEDkDICAPIAErAxggASsDKCIFoEQAAAAAAADgP6I5AyggDyABKwMAOQMwIA8gBSABKwMIIAErAzihRAAAAAAAAOA/oqA5AzggACADQQIQNyACEBcMBQsgAkEEaiIDQRAQGCICIAErAwAgASsDEKBEAAAAAAAA4D+iIBArAyAgECsDMKEiB0QAAAAAAADAP6IiBqAiBTkDACABKwMoIQggASsDGCEJIBArA0ghCiAQKwM4IQsgAiAFIAdEAAAAAAAA0D+ioSIHOQNwIAIgByAGoSIMOQNgIAIgDDkDUCACIAc5A0AgAiAFOQMwIAIgBSAGoCIFOQMgIAIgBTkDECACIAkgCKBEAAAAAAAA4D+iIAsgCqEiBUQAAAAAAADgP6KgIgY5A3ggAiAGOQMIIAIgBiAFRAAAAAAAAMA/oiIHoCIGOQNoIAIgBjkDGCACIAYgBUQAAAAAAADQP6KgIgU5A1ggAiAFOQMoIAIgBSAHoCIFOQNIIAIgBTkDOCAAIAIgAyAEEEAgDyABKwMAIAErAxCgRAAAAAAAAOA/oiIFOQMgIAIrAwghBiAPIAU5AzAgDyAGOQMoIA8gASsDGCABKwMooEQAAAAAAADgP6I5AzggACAPQSBqIgNBAhA3IA8gASsDEDkDICAPIAErAxggASsDKCIFoEQAAAAAAADgP6I5AyggDyABKwMAOQMwIA8gBSABKwMIIAErAzihRAAAAAAAAOA/oqA5AzggACADQQIQNyACEBcMBAsgAkEFaiIDQRAQGCICIBArAxAgECsDICIIIBArAzAiB6FEAAAAAAAA4D+iIgmhIgU5AwAgECsDGCEKIBArA0ghCyAQKwM4IQYgAiAHOQMQIAIgBiAGIAuhRAAAAAAAAOA/oiIHoTkDGCACIAogB6E5AwggAiABKwMgOQMgIAErAyghBiACIAU5A2AgAiAFOQNQIAIgCCAJoCIIOQNAIAIgBjkDOCACIAg5AzAgAiAGOQMoIAIgBiAHoCIGOQNYIAIgBjkDSCACIAErAzgiBzkDaCACIAErAwgiBiAGIAehRAAAAAAAAOA/oqE5A3ggASsDACEHIAIgBjkDiAEgAiAHOQNwIAIgBTkDgAEgACACIAMgBBBAIAIQFwwDCyACQQNqIgNBEBAYIgIgECsDECAQKwMgIBArAzAiB6FEAAAAAAAA4D+ioSIFOQMAIBArAxghCCAQKwNIIQkgECsDOCEGIAIgBzkDECACIAYgBiAJoUQAAAAAAADgP6IiBqE5AxggAiAIIAahOQMIIAIgASsDIDkDICABKwMoIQcgAiAFOQNAIAIgBTkDMCACIAcgBqAiBjkDOCACIAY5AyggAiABKwM4Igc5A0ggAiABKwMIIgYgBiAHoUQAAAAAAADgP6KhOQNYIAErAwAhByACIAY5A2ggAiAHOQNQIAIgBTkDYCAAIAIgAyAEEEAgAhAXDAILIAJBA2oiA0EQEBgiAiABKwMAIgk5AwAgAiABKwMIIBArAzggECsDSKFEAAAAAAAA4D+iIgahIgc5AwggECsDMCEIIBArAyAhBSACIAc5AxggAiAFIAUgCKFEAAAAAAAA4D+ioCIFOQMgIAIgBTkDECACIBArAyg5AyggAiABKwMQOQMwIAErAxghByACIAErAygiCDkDSCACIAU5A0AgAiAFOQNQIAIgCCAGoDkDWCACIAcgByAIoUQAAAAAAADgP6KhOQM4IAErAzghBSACIAk5A2AgAiAFIAagOQNoIAAgAiADIAQQQCACEBcMAQsgAkEFaiIDQRAQGCICIAErAwA5AwAgAiABKwMIIBArAzggECsDSKFEAAAAAAAA4D+iIgahIgc5AwggECsDMCEIIBArAyAhBSACIAc5AxggAiAFIAUgCKFEAAAAAAAA4D+iIgmgIgU5AyAgAiAFOQMQIAIgECsDKDkDKCACIAErAxA5AzAgASsDGCEHIAIgASsDKCIIOQNIIAIgBTkDQCACIAU5A1AgAiAIIAagOQNYIAIgByAHIAihRAAAAAAAAOA/oqE5AzggAiABKwM4IgUgBqA5A2ggECsDECEGIAIgBTkDeCACIAYgCaEiBjkDcCACIAY5A2AgASsDMCEGIAIgBTkDiAEgAiAGOQOAASAAIAIgAyAEEEAgAhAXCyAQEBcLIA9BkAFqJAAPC0GO1AFBh7wBQcUFQa4sEAAAC0Hk1AFBh7wBQcYFQa4sEAAAC0HkkgNBh7wBQccFQa4sEAAAC0HNmQNBh7wBQcgFQa4sEAAAC0GmswJBh7wBQbMGQa4sEAAAC0GmswJBh7wBQcoGQa4sEAAACwkAIABBARDyBQtYAQF/IwBBIGsiBCQAIARCADcDGCAEQgA3AxAgAgRAIAEgAiAAEQAAGgsgBCADOQMAIARBEGoiAkHShwEgBBBWIAEgAhCfASAAEQAAGiACEGcgBEEgaiQAC7gBAQR/IAAoAhAiAiACKAL0ASABazYC9AEDQCACKAKgAiADQQJ0aigCACIFBEAgAigCqAIgBUcEQCAFQVBBACAFKAIAQQNxQQJHG2ooAiggARCuAyAAKAIQIQILIANBAWohAwwBBQNAAkAgAigCmAIgBEECdGooAgAiA0UNACACKAKoAiADRwRAIANBMEEAIAMoAgBBA3FBA0cbaigCKCABEK4DIAAoAhAhAgsgBEEBaiEEDAELCwsLC6kHAgd/AnwjAEEgayIEJAAgACgCECIHKAIMIQggByABNgIMAkACQCACLQBSQQFGBEAgAigCSCEGIwBB0ABrIgEkACAAENAEIgMgAygCACIFKAIEIgk2AgQgAyAFKAIMNgIMAkACQCAJQQRJBEAgAyAFKAIINgIIIAMgBSgC2AE2AtgBIAMgBSgC7AE2AuwBIAMgBSgC/AE2AvwBIAMgAy8BjAJB/v8DcSAFLwGMAkEBcXI7AYwCIAIrA0AhCiACKwM4IQsCQCACLQBQIgNB4gBHBEAgA0H0AEcNASAKIAIrAzAgBhCiD6FEAAAAAAAA4D+ioEQAAAAAAADwv6AhCgwBCyAKIAIrAzAgBhCiD6FEAAAAAAAA4L+ioEQAAAAAAADwv6AhCgsgASAKOQMQIAEgCzkDCCABIAIoAgg2AhwgASACKAIENgIYIAEgAisDEDkDKCABIAAoAhAoAghBsp8BECMiAjYCQCAAKAIQKALcASEDIAFBADoASCABIAM2AkQCQCACBEAgAi0AAA0BCyABQceXATYCQAsgBigCACECIAYoAgRBAUcNASAAIAAoAgAoAsgCENsBIAAgAigCGCIDQY/4ACADGxBCIAAgAiABQQhqEKEPIAEtAEhBAXFFDQIgASgCRBAXDAILIAFBwQU2AgQgAUGdwAE2AgBBiPMIKAIAQa2+BCABEB0aEG4ACyAAIAIgAUEIahCgDwsgACgCECICQQA2AvwBIAJBADYC7AEgAkIANwPYASAAEM4EIAFB0ABqJAAMAQsgAigCTEUNASAAQQAQ8wggACACKAIIEEIgAisDQCEKIAQCfAJAIAItAFAiAUHiAEcEQCABQfQARw0BIAogAisDMEQAAAAAAADgP6KgDAILIAIrAyAgCiACKwMwRAAAAAAAAOC/oqCgDAELIAogAisDIEQAAAAAAADgP6KgCyACKwMQoSILOQMYIActAI0CQQJxBEAgBCALIAqhOQMYC0EAIQEDQCACKAJMIAFNBEAgABDyCAUgAisDOCEKAkAgAUE4bCIDIAIoAkhqIgUtADAiBkHyAEcEQCAGQewARw0BIAogAisDKEQAAAAAAADgv6KgIQoMAQsgCiACKwMoRAAAAAAAAOA/oqAhCgsgBCAEKQMYNwMIIAQgCjkDECAEIAQpAxA3AwAgACAEIAUQnAYgBCAEKwMYIAIoAkggA2orAyihOQMYIAFBAWohAQwBCwsLIAcgCDYCDAsgBEEgaiQAC/ECAQR/IwBBMGsiAyQAIAMgAjYCDCADIAI2AiwgAyACNgIQAkACQAJAAkACQEEAQQAgASACEEsiBUEASA0AQQEhAiAFQQFqIQYCQCAFIAAQOSAAECFrIgRPBEAgABAkQQAgBiAEayIEQQFGGw0BIAAgBBC1AgtBACECCyADQgA3AxggA0IANwMQIAVBEE9BACACGw0BIANBEGohBCAFIAIEfyAEBSAAEF0LIAYgASADKAIsEEsiAUcgAUEATnENAiABQQBMDQAgABAkBEAgAUGAAk8NBCACBEAgABBdIANBEGogARAeGgsgACAALQAPIAFqOgAPIAAQIUEQSQ0BQaG2A0H5gAFB1wFB9B4QAAALIAINBCAAIAAoAgQgAWo2AgQLIANBMGokAA8LQZ+lA0H5gAFBygFB9B4QAAALQZCaA0H5gAFBzwFB9B4QAAALQYbNAUH5gAFB0gFB9B4QAAALQeqgAUH5gAFB2QFB9B4QAAALaAEDfyMAQRBrIgEkAAJAIAAQJARAIAAgABAhIgMQxQIiAg0BIAEgA0EBajYCAEGI8wgoAgBBgOoDIAEQHRoQJgALIABBABCeASAAKAIAIQILIABCADcCACAAQgA3AgggAUEQaiQAIAILVQECfwJAIAAoAgAiAgRAIAFFDQEgACgCBCABEDgiAEYEfyACIAEgABD4AQVBAQtFDwtBvdQBQbr+AEHAAEH0PhAAAAtBkNQBQbr+AEHBAEH0PhAAAAvSAQIBfwJ8IwBBEGsiAyQAIAJFIAJB2gBGciACQbQBRnJFIAJBjgJHcUUEQCACBEAgASsDCCEEIAErAwAhBQJAAkACQCACQY4CRwRAIAJBtAFGDQIgAkHaAEcNASABIASaOQMADAMLIAEgBDkDAAwCCyADQcABNgIEIANB2L0BNgIAQYjzCCgCAEGtvgQgAxAdGhBuAAsgBJohBQsgASAFOQMICyAAIAEpAwA3AwAgACABKQMINwMIIANBEGokAA8LQd2NA0HYvQFBrgFB/ocBEAAAC5ICAQh8IAErAwgiAyACKwMAIAErAwAiBaEiBEQtQxzr4jYaP0QtQxzr4jYavyAERAAAAAAAAAAAZhugRAAAAAAAACRAIAQgAisDCCADoSIGEE5ELUMc6+I2Gj+goyIJoiIHRAAAAAAAAOA/oiIIoCEEIAAgAyAIoSIIIAQgCCAGRC1DHOviNho/RC1DHOviNhq/IAZEAAAAAAAAAABmG6AgCaIiA6AiBiADIASgIgkQJRAlECU5AxggBSADRAAAAAAAAOA/oiIKoCEDIAAgBSAKoSIFIAMgByAFoCIKIAcgA6AiBxAlECUQJTkDECAAIAggBCAGIAkQMxAzEDM5AwggACAFIAMgCiAHEDMQMxAzOQMAC8QBAgR/A3wgAEHIhQsoAgBEAAAAAAAA8D9EAAAAAAAAAAAQUCEHAkAgAEGIhQsoAgBEAAAAAAAA8D9EAAAAAAAAAAAQUCIIRAAAAAAAAAAAYQ0AA0AgAkEERg0BIAEgAkEDdHYiBEEPcSEFQQAhAAJAA0AgAEEIRg0BIABBGGwhAyAAQQFqIQAgBSADQfCMBWoiAygCAEcNAAsgBiADKwMIIAggByAEQf8BcSADKAIUERcAoCEGCyACQQFqIQIMAAsACyAGC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ0wQiAjYCCEHwggstAAAEQCAEIAI2AgBBiPMIKAIAQazdAyAEEB0aCyADQQA2AhQgA0EAOgAMIAAgASADEIoGGiADKAIQIARBEGokAA8LQc/hAEG1vgFBgwpB+uEAEAAAC9kGAg1/AX4jAEGwAWsiBCQAIARBmAFqIAJBOhDIASAEQgA3A5ABIAFBA2tBAkkhAgJ/QQAgBCgCmAEiDSAEKAKcASIOaiIFLQAAQTpHDQAaIARBgAFqIAVBAWpBOhDIASAEIAQpA4ABIhE3A5ABQQAgEaciByARQiCIpyIKaiIFLQAAQTpHDQAaIARBgAFqIAVBAWpBABDIASAEKAKEASEIIAQoAoABCyELQQAgASACGyEMIARCADcDiAEgBEIANwOAASAAIAFBAnRqQUBrIQICQAJAA0AgAigCACICRQRAQQAhBQwCCyAEQfgAaiACKAIEQToQyAEgBEIANwNwQQAhCUEAIQUgBCgCeCIGIAQoAnwiD2oiEC0AAEE6RgRAIARBqAFqIBBBAWpBABDIASAEIAQpA6gBIhE3A3AgEUIgiKchCSARpyEFCyAEIAQpAng3A2ggBCAEKQKYATcDYCAEQegAaiAEQeAAahDbBEUEQCAEIA02AlwgBCAONgJYIAQgBjYCVCAEIA82AlAgBEGAAWpBqfcEIARB0ABqEIcBDAELAkAgBUUgB0VyDQAgBCAEKQNwNwNIIAQgBCkDkAE3A0AgBEHIAGogBEFAaxDbBA0AIAQgBzYCPCAEIAo2AjggBCAFNgI0IAQgCTYCMCAEQYABakH99gQgBEEwahCHAQwBCyALBEAgAigCDCgCCCEGIAQgCDYCpAEgBCALNgKgASAGRQ0DIARBqAFqIAZBABDIASAEIAQpA6ABNwMoIAQgBCkCqAE3AyAgBEEoaiAEQSBqENsERQ0BCwJAIAVFIAEgDEZyDQAgACAMIAUgAxC3Aw0AIAQgBTYCFCAEIAk2AhAgBEGAAWpB/70EIARBEGoQhwEMAQsLAkAgAigCEA0AQQAhBUHIsARBABAyIAIoAhANACAEQYABakHavgRBABCHAQwBCyAAKAIIQQBKBEAgAigCBCEFIAQgAigCDCgCCDYCCCAEIAU2AgQgBCABQQJ0QZCJBWooAgA2AgBBiPMIKAIAQY3wAyAEEB0aCyACIQULIAMEQCAEQYABahDrASADEIMBGgsgBEGAAWoQZyAAIAFBAnRqIAU2AlQgBEGwAWokACAFDwtBkNQBQbr+AEHlAEHlPhAAAAtLAQJ/IwBBEGsiAyQAIAAoAhAoAgwgAhA4IQQgAyACNgIIIAMgBDYCBCADIAE2AgBBAnRB0IQFaigCAEHPxwMgAxCHASADQRBqJAALKQEBfwNAIAAiASgCECgCsAEiAA0ACwNAIAEiACgCECgCeCIBDQALIAALhAIBBn8jAEEQayIEJAAjAEEQayIDJAAgASIHQQRqIQUCQCABKAIEIgZFBEAgBSEBDAELIAIoAgAhCANAIAYiASgCECIGIAhLBEAgASEFIAEoAgAiBg0BDAILIAYgCE8NASABQQRqIQUgASgCBCIGDQALCyADIAE2AgwgBCAFKAIAIgEEf0EABUEUEIIBIQEgAyAHQQRqNgIEIAEgAigCADYCECADQQE6AAggByADKAIMIAUgARDtBCADQQA2AgAgAygCACECIANBADYCACACBEAgAhAXC0EBCzoADCAEIAE2AgggA0EQaiQAIAAgBCgCCDYCACAAIAQtAAw6AAQgBEEQaiQACwoAIAAoAgQQhgQLSAECfyAAQQAgAEEAShshAwNAIAIgA0YEQCABBEAgARAXCw8LIAEgAkECdGooAgAiAARAIAAQxAkLIAAQFyACQQFqIQIMAAsACxAAQSAQggEgACABIAIQjQMLqgkCDX8EfAJAIABFIAFFcg0AAkACQCAAKAIAQQBMDQAgASgCAEEATA0AIAEoAighCCAAKAIoIQsgACgCICABKAIgIAAoAhAiChD4BCEVAkAgACsDGCIWIAErAxgiF6AgBCAVomMEQCAHIAcrAwBEAAAAAAAA8D+gOQMAIAArAwghBCAAKAIgIQIgACAKEPcEIQMgASsDCCEWIAEoAiAhByABIAoQ9wQhASAVRAAAAAAAAAAAZEUNASAVIBWiIBVEAAAAAAAA8D8gBaEQqAEgBUQAAAAAAADwv2EbIQVBACEIIApBACAKQQBKGyEJIAYgBCAWoqIhBANAIAggCUYNBSADIAhBA3QiAGoiDSAEIAAgAmorAwAgACAHaisDAKGiIAWjIgYgDSsDAKA5AwAgACABaiIAIAArAwAgBqE5AwAgCEEBaiEIDAALAAsgC0UgCEVyDQIgAUEoaiENIApBACAKQQBKGyERRAAAAAAAAPA/IAWhIRUDQCALRQ0EIAsoAgwhDyALKAIQIhBFBEAgCyADIAogD2xBA3RqIhA2AhALIAsrAwAhFiALKAIIIRIgDSEIA0ACQCAIKAIAIgwEQCAMKAIMIQggDCgCECIJRQRAIAwgAyAIIApsQQN0aiIJNgIQCyAAIAFGIAggD0hxIAggD0ZyDQEgDCsDACEXIAwoAgghEyAHIAcrAwhEAAAAAAAA8D+gOQMIIAIgCiAPIAgQlwIiBCAEoiAEIBUQqAEgBUQAAAAAAADwv2EbIQQgBiAWIBeioiEXQQAhCANAIAggEUYNAiAQIAhBA3QiDmoiFCAXIA4gEmorAwAgDiATaisDAKGiIASjIhggFCsDAKA5AwAgCSAOaiIOIA4rAwAgGKE5AwAgCEEBaiEIDAALAAsgCygCFCELDAILIAxBFGohCAwACwALAAtBupIDQcrAAUGaAUGzJhAAAAtBppMDQcrAAUGKAUGzJhAAAAsgACABRgRAQQEgCnQiAUEAIAFBAEobIQ0DQCAJIA1GDQIgACgCJCAJQQJ0aigCACEKIAkhCANAIAEgCEZFBEAgCiAAKAIkIAhBAnRqKAIAIAIgAyAEIAUgBiAHEL4DIAhBAWohCAwBCwsgCUEBaiEJDAALAAsgCyAWIBdkRXJFBEBBACEIQQEgCnQiCUEAIAlBAEobIQkDQCAIIAlGDQIgACgCJCAIQQJ0aigCACABIAIgAyAEIAUgBiAHEL4DIAhBAWohCAwACwALIBYgF2NFIAhyRQRAQQAhCEEBIAp0IglBACAJQQBKGyEJA0AgCCAJRg0CIAEoAiQgCEECdGooAgAgACACIAMgBCAFIAYgBxC+AyAIQQFqIQgMAAsACyALRQRAQQAhCEEBIAp0IglBACAJQQBKGyEJA0AgCCAJRg0CIAAoAiQgCEECdGooAgAgASACIAMgBCAFIAYgBxC+AyAIQQFqIQgMAAsACyAIRQRAQQAhCEEBIAp0IglBACAJQQBKGyEJA0AgCCAJRg0CIAEoAiQgCEECdGooAgAgACACIAMgBCAFIAYgBxC+AyAIQQFqIQgMAAsAC0HXmgNBysABQewBQbMmEAAACwsQABClAbdEAADA////30GjC/IWAQd/AkACQAJAAkACQAJAIABBAEggAUEATHIgAkEATHJFBEAgASACIAAgBiAHQQAQ4QkiCQRAIAFBAWohCiAJKAIYIQsgCSgCFCEIQQAhBwNAIAcgCkcEQCAIIAdBAnRqQQA2AgAgB0EBaiEHDAELCwJAIAZBAWsOCAcGAwUDAwMEAAsgBkEQRw0CIAhBBGohCkEAIQdBACEGAkADQAJAIAAgBkYEQANAIAEgB0YNAiAHQQJ0IQIgCCAHQQFqIgdBAnRqIgYgBigCACACIAhqKAIAajYCAAwACwALIAMgBkECdCIMaigCACINIAFPDQIgBCAMaigCACACTw0CIAogDUECdGoiDCAMKAIAQQFqNgIAIAZBAWohBgwBCwsgCSgCHCAFIAkoAiggAGwQHhpBACEHA0AgACAHRgRAA0AgAUEATA0LIAggAUECdGoiAiACQQRrKAIANgIAIAFBAWshAQwACwAFIAQgB0ECdCICaigCACEFIAggAiADaigCAEECdGoiAiACKAIAIgJBAWo2AgAgCyACQQJ0aiAFNgIAIAdBAWohBwwBCwALAAtB15oDQcW5AUGYBUGP9AAQAAALQazcAUHFuQFBxQRBj/QAEAAAC0GzlANBxbkBQcEEQY/0ABAAAAtB15oDQcW5AUGmBUGP9AAQAAALIAhBBGohBkEAIQdBACEFA0AgACAFRgRAA0AgASAHRgRAQQAhBwNAIAAgB0YEQANAIAFBAEwNCiAIIAFBAnRqIgIgAkEEaygCADYCACABQQFrIQEMAAsABSAEIAdBAnQiAmooAgAhBSAIIAIgA2ooAgBBAnRqIgIgAigCACICQQFqNgIAIAsgAkECdGogBTYCACAHQQFqIQcMAQsACwAFIAdBAnQhAiAIIAdBAWoiB0ECdGoiBSAFKAIAIAIgCGooAgBqNgIADAELAAsACwJAIAMgBUECdCIKaigCACIMIAFPDQAgBCAKaigCACACTw0AIAYgDEECdGoiCiAKKAIAQQFqNgIAIAVBAWohBQwBCwtB15oDQcW5AUGJBUGP9AAQAAALIAhBBGohCiAJKAIcIQxBACEHQQAhBgNAIAAgBkYEQANAIAEgB0YEQEEAIQcDQCAAIAdGBEADQCABQQBMDQkgCCABQQJ0aiICIAJBBGsoAgA2AgAgAUEBayEBDAALAAUgDCAIIAMgB0ECdCICaiIGKAIAQQJ0aigCAEECdGogAiAFaigCADYCACACIARqKAIAIQIgCCAGKAIAQQJ0aiIGIAYoAgAiBkEBajYCACALIAZBAnRqIAI2AgAgB0EBaiEHDAELAAsABSAHQQJ0IQIgCCAHQQFqIgdBAnRqIgYgBigCACACIAhqKAIAajYCAAwBCwALAAsCQCADIAZBAnQiDWooAgAiDiABTw0AIAQgDWooAgAgAk8NACAKIA5BAnRqIg0gDSgCAEEBajYCACAGQQFqIQYMAQsLQdeaA0HFuQFB+QRBj/QAEAAACyAIQQRqIQogCSgCHCEMQQAhB0EAIQYDQCAAIAZGBEADQCABIAdGBEBBACEHA0AgACAHRgRAA0AgAUEATA0IIAggAUECdGoiAiACQQRrKAIANgIAIAFBAWshAQwACwAFIAwgCCADIAdBAnQiBmooAgBBAnRqIgooAgAiAkEEdGoiDSAFKwMAOQMAIA0gBSsDCDkDCCAEIAZqKAIAIQYgCiACQQFqNgIAIAsgAkECdGogBjYCACAHQQFqIQcgBUEQaiEFDAELAAsABSAHQQJ0IQIgCCAHQQFqIgdBAnRqIgYgBigCACACIAhqKAIAajYCAAwBCwALAAsCQCADIAZBAnQiDWooAgAiDiABTw0AIAQgDWooAgAgAk8NACAKIA5BAnRqIg0gDSgCAEEBajYCACAGQQFqIQYMAQsLQdeaA0HFuQFB5gRBj/QAEAAACyAIQQRqIQogCSgCHCEMQQAhB0EAIQYDQCAAIAZGBEADQCABIAdGBEBBACEHA0AgACAHRgRAA0AgAUEATA0HIAggAUECdGoiAiACQQRrKAIANgIAIAFBAWshAQwACwAFIAwgCCADIAdBAnQiBmooAgBBAnRqIgooAgAiAkEDdGogBSAHQQN0aisDADkDACAEIAZqKAIAIQYgCiACQQFqNgIAIAsgAkECdGogBjYCACAHQQFqIQcMAQsACwAFIAdBAnQhAiAIIAdBAWoiB0ECdGoiBiAGKAIAIAIgCGooAgBqNgIADAELAAsACwJAIAMgBkECdCINaigCACIOIAFPDQAgBCANaigCACACTw0AIAogDkECdGoiDSANKAIAQQFqNgIAIAZBAWohBgwBCwtB15oDQcW5AUHUBEGP9AAQAAALIAhBADYCACAJIAA2AggCf0EAIQNBACEEIAkiASgCBCIAQQAgAEEAShshAiABKAIQIQkgASgCGCEFIAEoAhQhBiAAQQQQRCEHA0AgAiADRwRAIAcgA0ECdGpBfzYCACADQQFqIQMMAQsLQQAhAwJAAkACQAJAAkACQAJAAkACQAJAIAlBAWsOCAABBQIFBQUDBQsgBigCACEAIAEoAhwhCQNAIAQgASgCAE4NBCAGIARBAnRqIQogBiAEQQFqIgRBAnRqIQgDQCAIKAIAIgIgAEoEQAJAIAcgBSAAQQJ0aiIMKAIAIgJBAnRqKAIAIgsgCigCAEgEQCAFIANBAnRqIAI2AgAgCSADQQN0aiAJIABBA3RqKwMAOQMAIAcgDCgCAEECdGogAzYCACADQQFqIQMMAQsgBSALQQJ0aigCACACRw0JIAkgC0EDdGoiAiAJIABBA3RqKwMAIAIrAwCgOQMACyAAQQFqIQAMAQsLIAggAzYCACACIQAMAAsACyAGKAIAIQAgASgCHCEJA0AgBCABKAIATg0DIAYgBEECdGohCiAGIARBAWoiBEECdGohCANAIAgoAgAiAiAASgRAAkAgByAFIABBAnRqIgwoAgAiAkECdGooAgAiCyAKKAIASARAIAUgA0ECdGogAjYCACAJIANBBHRqIgIgCSAAQQR0aiILKwMAOQMAIAIgCysDCDkDCCAHIAwoAgBBAnRqIAM2AgAgA0EBaiEDDAELIAUgC0ECdGooAgAgAkcNCSAJIAtBBHRqIgIgCSAAQQR0aiILKwMAIAIrAwCgOQMAIAIgCysDCCACKwMIoDkDCAsgAEEBaiEADAELCyAIIAM2AgAgAiEADAALAAsgBigCACEAIAEoAhwhCQNAIAQgASgCAE4NAiAGIARBAnRqIQogBiAEQQFqIgRBAnRqIQgDQCAIKAIAIgIgAEoEQAJAIAcgBSAAQQJ0IgJqIgwoAgAiC0ECdGooAgAiDSAKKAIASARAIAUgA0ECdCINaiALNgIAIAkgDWogAiAJaigCADYCACAHIAwoAgBBAnRqIAM2AgAgA0EBaiEDDAELIAsgBSANQQJ0IgxqKAIARw0JIAkgDGoiCyALKAIAIAIgCWooAgBqNgIACyAAQQFqIQAMAQsLIAggAzYCACACIQAMAAsACyAGKAIAIQADQCAEIAEoAgBODQEgBiAEQQJ0aiEIIAYgBEEBaiIEQQJ0aiEJA0AgCSgCACICIABKBEACQCAHIAUgAEECdGoiCygCACICQQJ0aigCACIKIAgoAgBIBEAgBSADQQJ0aiACNgIAIAcgCygCAEECdGogAzYCACADQQFqIQMMAQsgBSAKQQJ0aigCACACRw0JCyAAQQFqIQAMAQsLIAkgAzYCACACIQAMAAsACyABIAM2AgggASEDCyAHEBcgAwwEC0HpxgFBxbkBQakJQcIyEAAAC0HpxgFBxbkBQb8JQcIyEAAAC0HpxgFBxbkBQdUJQcIyEAAAC0HpxgFBxbkBQegJQcIyEAAACwsyAQF/IABBACAAQQBKGyEAA0AgACADRkUEQCACIANBAnRqIAE4AgAgA0EBaiEDDAELCwu6BQILfwF9IwBBEGsiCCQAIAJBACACQQBKGyENAkACQANAIAQgDUYEQAJAIAMgAEECdGpBADYCACMAQSBrIgQkAAJAAkAgAkGAgICABEkEQEEAIAIgAkEEEEUiBRsNASAIQgA3AgggCCACNgIEIAggBTYCACAEQSBqJAAMAgsgBEEENgIEIAQgAjYCAEGI8wgoAgBBseoDIAQQHRoQJgALIAQgAkECdDYCEEGI8wgoAgBBgOoDIARBEGoQHRoQJgALIAgoAgAiBSAANgIAQf////8HIQBBASECIAgoAgQhDiABKAIIRQ0ADAMLBSADIARBAnRqQX82AgAgBEEBaiEEDAELCwNAIAIgBkwNAkEBIQRBASABIAUgBkECdGooAgAiAEEUbGoiCSgCACIHIAdBAU0bIQcgAyAAQQJ0aigCACIAQQFqIQoDQCAEIAdHBEACQCADIAkoAgQgBEECdGooAgAiC0ECdGoiDCgCAEEATg0AIAwgCjYCACACIA5ODQAgBSACQQJ0aiALNgIAIAJBAWohAgsgBEEBaiEEDAELCyAGQQFqIQYMAAsACwNAIAIgBkwNAUEBIQRBASABIAUgBkECdGooAgAiAEEUbGoiCSgCACIHIAdBAU0bIQcgAyAAQQJ0aigCACEAA0AgBCAHRwRAAkAgAyAEQQJ0IgogCSgCBGooAgAiC0ECdGoiDCgCAEEATg0AIAwCfyAJKAIIIApqKgIAIg+LQwAAAE9dBEAgD6gMAQtBgICAgHgLIABqNgIAIAIgDk4NACAFIAJBAnRqIAs2AgAgAkEBaiECCyAEQQFqIQQMAQsLIAZBAWohBgwACwALIABBCmohAEEAIQQDQCAEIA1HBEAgAyAEQQJ0aiIBKAIAQQBIBEAgASAANgIACyAEQQFqIQQMAQsLIAUQFyAIQRBqJAAL2zECEX8KfCMAQeADayICJAACQCAAEDVBAkgNACAAEMEKIQcCQCAAQbefARAjIgZFDQAgAiACQfgCajYC5AIgAiACQfACajYC4AIgBkG2iAEgAkHgAmoQSSIGRQ0AIAIrA/ACIhOZRJXWJugLLhE+Yw0AAkAgBkEBRgRAIAIgEzkD+AIgEyEUDAELIAIrA/gCIhSZRJXWJugLLhE+Yw0BCyAURAAAAAAAAPA/YSATRAAAAAAAAPA/YXENAEHwggstAAAEQCACIBQ5A9gCIAIgEzkD0AJBiPMIKAIAQeXwBCACQdACahAtCyAAEBohBAN/IAQEfyAEKAIQKAKUASIGIAIrA/ACIAYrAwCiOQMAIAYgAisD+AIgBisDCKI5AwggACAEEBshBAwBBUEBCwshBAsgBCAHaiENIAEoAgAiBEUNAEHwggstAAAEQCAAEB8hBCACIAEoAgQ2AsQCIAIgBDYCwAJBiPMIKAIAQez4AyACQcACahAdGiABKAIAIQQLIARBA08EQAJAAkACQAJAAkACQAJAIARBA2sODwABBgYCAgICAgICAgMECAULIABBARD0BiEFDAULIABBABD0BiEFDAQLIAQhAyMAQSBrIgokACAAIgcQNSIJQTAQGCEAIApBCGogBxDcAiAKKwMQIhZEAAAAAAAAFECiIRcgCisDCCIYRAAAAAAAABRAoiEZIAotABggBxAaIQtBAXEhCCAAIQQDQCALBEAgCygCECIBKwMgIRQgASsDKCETIAEoApQBIgErAwghGiABKwMAIRsCfCAIBEAgFgJ/IBNEAAAAAAAA4D+iRAAAAAAAAFJAoiITRAAAAAAAAOA/RAAAAAAAAOC/IBNEAAAAAAAAAABmG6AiE5lEAAAAAAAA4EFjBEAgE6oMAQtBgICAgHgLt6AgGAJ/IBREAAAAAAAA4D+iRAAAAAAAAFJAoiIURAAAAAAAAOA/RAAAAAAAAOC/IBREAAAAAAAAAABmG6AiFJlEAAAAAAAA4EFjBEAgFKoMAQtBgICAgHgLt6BEAAAAAAAAJECiIRVEAAAAAAAAJECiDAELIBkgFKJEAAAAAAAAUkCiIhREAAAAAAAA4D9EAAAAAAAA4L8gFEQAAAAAAAAAAGYboCEVIBcgE6JEAAAAAAAAUkCiIhREAAAAAAAA4D9EAAAAAAAA4L8gFEQAAAAAAAAAAGYboAshFCAEIAs2AhQgBAJ/IBpEAAAAAAAAJECiRAAAAAAAAFJAoiITRAAAAAAAAOA/RAAAAAAAAOC/IBNEAAAAAAAAAABmG6AiE5lEAAAAAAAA4EFjBEAgE6oMAQtBgICAgHgLIgE2AhAgBAJ/IBtEAAAAAAAAJECiRAAAAAAAAFJAoiITRAAAAAAAAOA/RAAAAAAAAOC/IBNEAAAAAAAAAABmG6AiE5lEAAAAAAAA4EFjBEAgE6oMAQtBgICAgHgLIgY2AgwgBAJ/IBSZRAAAAAAAAOBBYwRAIBSqDAELQYCAgIB4CyIMIAFqNgIsIAQCfyAVmUQAAAAAAADgQWMEQCAVqgwBC0GAgICAeAsiDiAGajYCKCAEIAEgDGs2AiQgBCAGIA5rNgIgIARBMGohBCAHIAsQGyELDAELC0EBIAkgCUEBTBtBAWshDEEAIQggACEBAkADQCAIIAxGDQEgCEEBaiIIIQsgAUEwaiIGIQQDQCAJIAtGBEAgBiEBDAILAkACQCABKAIoIAQoAiBIDQAgBCgCKCABKAIgSA0AIAEoAiwgBCgCJEgNACAEKAIsIAEoAiRODQELIAtBAWohCyAEQTBqIQQMAQsLCwJAAkACQAJAAkACQAJAAkACQCADQQdrDggCAwABBwYEBQcLIAcgACAJQSxBARDbAiAHIAAgCUEtQQEQ2gIMBwsgByAAIAlBLUEBENoCIAcgACAJQSxBARDbAgwGCyAHIAAgCUEuQQEQ2wIgByAAIAlBLUEBENoCDAULIAcgACAJQS9BARDaAiAHIAAgCUEsQQEQ2wIMBAsgByAAIAlBLEEAENsCIAcgACAJQS1BABDaAgwDCyAHIAAgCUEtQQAQ2gIgByAAIAlBLEEAENsCDAILIAcgACAJQS9BABDaAiAHIAAgCUEsQQAQ2wIMAQsgByAAIAlBLkEAENsCIAcgACAJQS1BABDaAgtBACELIAlBACAJQQBKGyEBIAAhBANAIAEgC0YNASAEKAIMIQYgBCgCFCgCECgClAEiByAEKAIQt0QAAAAAAABSQKNEAAAAAAAAJECjOQMIIAcgBrdEAAAAAAAAUkCjRAAAAAAAACRAozkDACALQQFqIQsgBEEwaiEEDAALAAsgABAXIApBIGokAAwDCyAAQX8Q9AYhBQwCCyAAEDUiAUEQEBghByACIAFBAXRBBBAYIgM2AtgDIAIgAyABQQJ0ajYC3AMgABAaIQYDQCAGBEAgBigCECIJKAKUASELQQAhBANAIARBAkYEQCAHIAVBBHRqIgQgCSsDIDkDACAEIAkrAyg5AwggBUEBaiEFIAAgBhAbIQYMAwUgAkHYA2ogBEECdGooAgAgBUECdGogCyAEQQN0aisDALY4AgAgBEEBaiEEDAELAAsACwsgAkIANwKkAyACQgA3AqwDQQAhBSACQQA2ArQDIAJCADcCnAMgAkECNgKAAyACQgA3A/gCIAJBADYC8AIgAkHAA2ogABDcAkQcx3Ecx3G8PyETRBzHcRzHcbw/IRQgAi0A0AMEQCACKwPAA0QAAAAAAABSQKMiFCAUoCETIAIrA8gDRAAAAAAAAFJAoyIUIBSgIRQLIAIgBzYCmAMgAiAUOQOQAyACIBM5A4gDIAEgAkHYA2ogAkHwAmoQ9AkgABAaIQYDQCAGBEAgBigCECgClAEhAUEAIQQDQCAEQQJGBEAgBUEBaiEFIAAgBhAbIQYMAwUgASAEQQN0aiACQdgDaiAEQQJ0aigCACAFQQJ0aioCALs5AwAgBEEBaiEEDAELAAsACwsgAxAXIAcQF0EAIQUMAQsgAiABKAIENgIAQYL2AyACECcLIAUgDWohDQwBCyAAEDVBAE4EQEGY5AogABA1NgIAQZzkCgJ/QZjkCigCAEEEarifIhSZRAAAAAAAAOBBYwRAIBSqDAELQYCAgIB4CzYCAEHk5ApBmOQKKAIAQeAAEBg2AgAgABAaIQQgAkHwAmogABDcAiACKwPwAiETAn8gAi0AgANFBEAgAisD+AIhFEEoDAELIAIrA/gCRAAAAAAAAFJAoyEUIBNEAAAAAAAAUkCjIRNBKQshBwJAA0AgBUGY5AooAgAiBk8NAUHk5AooAgAgBUHgAGxqIgYgBCgCECgClAEiAysDADkDCCAGIAMrAwg5AxAgBkEoaiAEIBMgFCAHER4ARQRAIAZBATYCHCAGIAU2AhggBkIANwNYIAYgBDYCACAFQQFqIQUgACAEEBshBAwBCwtB5OQKKAIAEBdB5OQKQQA2AgAQvgoMAgtBACEFIAJB8AJqQQBB0AAQMBogBgRAQeTkCigCACEHRP///////+9/IRRE////////7/8hFUT////////v/yEWRP///////+9/IRcDQCAFIAZGBEBEmpmZmZmZqT8hEwJAIABBv+cAECMiAEUNACAALQAARQ0AIAAQpgIhEwtBiOQKIBYgFiAXoSAToiIYoCIWOQMAQZDkCiAXIBihIhc5AwBBgOQKIBQgFSAUoSAToiIToSIUOQMAQfjjCiAVIBOgIhM5AwAgAiAXOQOYAyACIBY5A6gDIAIgFzkD+AIgAiATOQOQAyACIBY5A4gDIAIgFDkDsAMgAiATOQOAAyACIBQ5A6ADIAEoAgAhAEEAEPUGIQcCQAJAIABBAkYEQCAHRQ0CIAJB8AJqEL0KQQAhBgNAQeTkCigCACEBQZjkCigCACEHQQAhBANAIAQgB0cEQCABIARB4ABsaiIAIAArAwhEzczMzMzM8D+iOQMIIAAgACsDEETNzMzMzMzwP6I5AxAgBEEBaiEEDAELCyAGQQFqIgYQ9QYNAAtB8IILLQAARQ0BIAIgBjYCEEGI8wgoAgBBud0DIAJBEGoQHRoMAQsgB0UNASACQfACahC9CkEAIQVBACEEA0AgAkHwAmohCSAFBEAgCRC7CgtBqOQKQv////////93NwMAQaDkCkL/////////9/8ANwMAAkBBmOQKKAIAIgEEQCAJKAIAIQBE////////738hE0T////////v/yEUQQAhCANAIAEgCEYNAkGg5AogEyAAIAhBAnRqKAIAIgYrAwAQMyITOQMAQajkCiAUIAYrAwAQJSIUOQMAIAhBAWohCAwACwALQdmSA0GmugFB0AFBlZYBEAAAC0Gw5AogACgCACsDCDkDACAAIAFBAnRqQQRrKAIAKwMIIRVBwOQKIBQgE6E5AwBBuOQKIBU5AwBEAAAAAAAAAAAhE0QAAAAAAAAAACEUIwBBEGsiBiQAELQKEPMJQQFBEBAYIgBBnOQKKAIAQQJ0IgE2AgQgACABQSgQGDYCACAAIQFBqOUKIAkQjQU2AgAjAEEgayIAJABByOQKQSgQiQVB2OQKQZzkCigCACIIQQF0IgM2AgACQAJAAkBB1OQKKAIAIgVFBEAgA0GAgICABE8NAUEAIAggA0EEEEUiBRsNAkHU5AogBTYCAAsgA0EAIANBAEobIQhBACEDA0AgAyAIRwRAIAUgA0ECdGpBADYCACADQQFqIQMMAQsLQdzkCkEAQQAQkgQ2AgBB4OQKQQBBABCSBDYCAEHc5AooAgBBADYCAEHc5AooAgAiA0Hg5AooAgAiBTYCBCAFIAM2AgBB4OQKKAIAQQA2AgRB1OQKKAIAIgUgAzYCACAFQdjkCigCAEECdGpBBGtB4OQKKAIANgIAIABBIGokAAwCCyAAQQQ2AgQgACADNgIAQYjzCCgCAEGx6gMgABAdGhAmAAsgACAIQQN0NgIQQYjzCCgCAEGA6gMgAEEQahAdGhAmAAsgCRCNBSEAA0AgARDOBkUEQCABKAIMIQMgASgCACEIA0AgCCADQShsaigCICIFRQRAIAEgA0EBaiIDNgIMDAELCyAGIAUoAhQrAwA5AwAgBiAFKwMYOQMIIAYrAwghEyAGKwMAIRQLAkAgAEUNAAJAIAEQzgYNACAAKwMIIhUgE2MNACATIBViDQEgACsDACAUY0UNAQsCQAJ/IAArAwBBoOQKKwMAoUHA5AorAwCjQdjkCigCACIDt6IiFZlEAAAAAAAA4EFjBEAgFaoMAQtBgICAgHgLIgVBACAFQQBKGyIFIANBAWsgAyAFShsiBRDwBiIDDQBBASEIA0AgBSAIaxDwBiIDDQEgBSAIaiAIQQFqIQgQ8AYiA0UNAAsLQeDkCigCACEIAkACQEHc5AooAgAiCiADRwRAIAMgCEYNASADIAAQ8gZFDQELA0AgCCADKAIEIgNHBEAgAyAAEPIGDQELCyADKAIAIQMMAQsDQCADKAIAIgMgCkYNASADIAAQ8gZFDQALCwJAIAVBAEwNACAFQdjkCigCAEEBa04NAEHU5AooAgAgBUECdGoiCCgCACIFBEAgBSAFKAIMQQFrNgIMCyAIIAM2AgAgAyADKAIMQQFqNgIMCyADKAIEIQogAyADEK0KIAAQswoiDEEAEJIEIgUQ8QYgAyAFEIoFIggEQCABIAMQzwYgASADIAggCCAAEP0EEPkECyAFIAxBARCSBCIDEPEGIAMgChCKBSIFBEAgASADIAUgBSAAEP0EEPkECyAJEI0FIQAMAQsgARDOBkUEQCABKAIAIAEoAgxBKGxqIgMgAygCICIDKAIgNgIgIAEgASgCCEEBazYCCCADKAIAIQggAygCBCIFKAIEIREgAygCCCIKBH8gCkEkQSAgAy0AEBtqBUGo5QoLKAIAIQwgBRCtCiEOIAMoAhQiCkGk5QooAgAiDzYCEEGk5QogD0EBajYCACADKAIIIAMsABAgChDzBiAFKAIIIAUsABAgChDzBiADEK4KIAEgBRDPBiAFEK4KIAggDiAMIAwrAwggDisDCGQiAxsiDyAMIA4gAxsQswoiDCADEJIEIgUQ8QYgDCADRSAKEPMGIAoQ/AQgCCAFEIoFIgMEQCABIAgQzwYgASAIIAMgAyAPEP0EEPkECyAFIBEQigUiA0UNASABIAUgAyADIA8Q/QQQ+QQMAQsLQdzkCigCACEAA0AgACgCBCIAQeDkCigCAEcEQCAAKAIIELIKDAELCyABBEAgASgCABAXCyABEBcgBkEQaiQAIAJB5OQKKAIAIgApAxA3A7gCIAIgACkDCDcDsAIgAiACKQOgAzcDqAIgAiACKQOYAzcDoAIgAkGwAmogAkGgAmoQ2QIhEyACIAApAxA3A5gCIAIgACkDCDcDkAIgAiACKQOAAzcDiAIgAiACKQP4AjcDgAIgAkGQAmogAkGAAmoQ2QIhFCACIAApAxA3A/gBIAIgACkDCDcD8AEgAiACKQOwAzcD6AEgAiACKQOoAzcD4AEgAkHwAWogAkHgAWoQ2QIhFyACIAApAxA3A9gBIAIgACkDCDcD0AEgAiACKQOQAzcDyAEgAiACKQOIAzcDwAFBASEFIAJB0AFqIAJBwAFqENkCIRUgACIGIgkhAQNAQZjkCigCACAFSwRAIAJB5OQKKAIAIAVB4ABsaiIDKQMQNwOYASACIAMpAwg3A5ABIAIgAikDoAM3A4gBIAIgAikDmAM3A4ABIAJBkAFqIAJBgAFqENkCIRYgAiADKQMQNwN4IAIgAykDCDcDcCACIAIpA7ADNwNoIAIgAikDqAM3A2AgAkHwAGogAkHgAGoQ2QIhGCACIAMpAxA3A1ggAiADKQMINwNQIAIgAikDgAM3A0ggAiACKQP4AjcDQCACQdAAaiACQUBrENkCIRkgAiADKQMQNwM4IAIgAykDCDcDMCACIAIpA5ADNwMoIAIgAikDiAM3AyAgAyAAIBMgFmQiCBshACADIAkgFyAYZCIKGyEJIAMgBiAUIBlkIgwbIQYgAyABIAJBMGogAkEgahDZAiIaIBVjIgMbIQEgFiATIAgbIRMgGCAXIAobIRcgGSAUIAwbIRQgGiAVIAMbIRUgBUEBaiEFDAELCyAAQQhqIAIrA5gDIAIrA6ADENgCIAlBCGogAisDqAMgAisDsAMQ2AIgBkEIaiACKwP4AiACKwOAAxDYAiABQQhqIAIrA4gDIAIrA5ADENgCQQAhAUHk5AooAgAhCUGY5AooAgAhCCAEIQYDQCABIAhHBEAgCSABQeAAbGohAwJAIAZFBEAgAy0AIEEBRw0BC0ECIAMoAlwiACAAQQJNG0EBayEKIAMoAlgiBSsDCCEUIAUrAwAhF0EBIQREAAAAAAAAAAAhE0QAAAAAAAAAACEVRAAAAAAAAAAAIRYDQCAEIApHBEAgFiAFIARBAWoiAEEEdGoiDCsDACIbIBQgBSAEQQR0aiIEKwMIIhihoiAXIBggDCsDCCIZoaIgBCsDACIcIBkgFKGioKCZRAAAAAAAAOA/oiIaoCEWIBogFCAYoCAZoEQAAAAAAAAIQKOiIBWgIRUgGiAXIBygIBugRAAAAAAAAAhAo6IgE6AhEyAAIQQMAQsLIAMgFSAWozkDECADIBMgFqM5AwgLIAFBAWohAQwBCwsgEEEBaiIQEPUGIgAEQCAAIAdJIQFBASEFIAAhB0EBIQRBACASQQFqIAEbIhJFDQFBkOQKQZDkCisDACIUQYjkCisDACITIBShRJqZmZmZmak/oiIVoSIUOQMAQYjkCiATIBWgIhM5AwBBgOQKQYDkCisDACIVQfjjCisDACIWIBWhRJqZmZmZmak/oiIXoSIVOQMAQfjjCiAWIBegIhY5AwAgAiAUOQOYAyACIBM5A6gDIAIgFDkD+AIgAiAWOQOQAyACIBM5A4gDIAIgFTkDsAMgAiAWOQOAAyACIBU5A6ADIAtBAWohCwwBCwtB8IILLQAABEAgAiAQNgKwAUGI8wgoAgAiAEG53QMgAkGwAWoQHRogAiALNgKgASAAQdTdAyACQaABahAdGgtByOQKQSgQiQVB1OQKKAIAEBdB1OQKQQA2AgAQ8wkQtAoLQQAhBEHk5AooAgAhAUGY5AooAgAhBkEBIQkDQCAEIAZGDQEgASAEQeAAbGoiACgCACgCECgClAEiByAAKwMIOQMAIAcgACsDEDkDCCAEQQFqIQQMAAsACxC+CiACKALwAhAXIAkgDWohDQwEBSAHIAVB4ABsaiIEKwMoIRggBCsDCCETIAQrAzAhGSAEKwM4IRogBUEBaiEFIBUgBCsDECIbIAQrA0CgECUhFSAWIBMgGqAQJSEWIBQgGyAZoBAzIRQgFyATIBigEDMhFwwBCwALAAtB2ZIDQaa6AUHdAEHSEhAAAAtBx5YDQaa6AUH8AEGG4gAQAAALIAJB4ANqJAAgDQtJAAJAIAAEQCABIAAoAghPDQEgACgCACAAKAIEIAFqIAAoAgxwQQJ0aigCAA8LQaHSASAEIAMgAhAAAAtB3rIDIAQgAyACEAAACw4AIABB0ABqEENB0ABqCxkBAX8gARClCyECIAAgATYCBCAAIAI2AgALJAAgAEECTwR/IABBAmpBfnEiACAAQQFrIgAgAEECRhsFQQELC6sBAQR/IwBBEGsiBSQAIAEQlgshAiMAQRBrIgMkAAJAIAJB9////wNNBEACQCACEJYFBEAgACACEM4BIAAhBAwBCyADQQhqIAIQxwNBAWoQxgMgAygCDBogACADKAIIIgQQ8wEgACADKAIMEPIBIAAgAhC5AQsgBCABIAIQ6QIgA0EANgIEIAQgAkECdGogA0EEahDUASADQRBqJAAMAQsQwgEACyAFQRBqJAALBwAgAEEEagvGAQEGfyMAQRBrIgQkACAAEMkDKAIAIQUCfyACKAIAIAAoAgBrIgNB/////wdJBEAgA0EBdAwBC0F/CyIDQQQgAxshAyABKAIAIQYgACgCACEHIAVBoARGBH9BAAUgACgCAAsgAxA2IggEQCAFQaAERwRAIAAQ2wMaCyAEQSE2AgQgACAEQQhqIAggBEEEahB1IgUQ0wsgBRB0IAEgACgCACAGIAdrajYCACACIAAoAgAgA0F8cWo2AgAgBEEQaiQADwsQjgEACxMAIAAgAUEAIAAoAgAoAjQRBAALEwAgACABQQAgACgCACgCJBEEAAvtAgECfyMAQRBrIgokACAKIAA2AgwCQAJAAkAgAygCACILIAJHDQAgCSgCYCAARgR/QSsFIAAgCSgCZEcNAUEtCyEAIAMgC0EBajYCACALIAA6AAAMAQsgBhAiRSAAIAVHckUEQEEAIQAgCCgCACIBIAdrQZ8BSg0CIAQoAgAhACAIIAFBBGo2AgAgASAANgIADAELQX8hACAJIAlB6ABqIApBDGoQngcgCWtBAnUiBUEXSg0BAkACQAJAIAFBCGsOAwACAAELIAEgBUoNAQwDCyABQRBHIAVBFkhyDQAgAygCACIBIAJGIAEgAmtBAkpyDQIgAUEBay0AAEEwRw0CQQAhACAEQQA2AgAgAyABQQFqNgIAIAEgBUHArglqLQAAOgAADAILIAMgAygCACIAQQFqNgIAIAAgBUHArglqLQAAOgAAIAQgBCgCAEEBajYCAEEAIQAMAQtBACEAIARBADYCAAsgCkEQaiQAIAALCwAgAEGQpwsQogIL7wIBA38jAEEQayIKJAAgCiAAOgAPAkACQAJAIAMoAgAiCyACRw0AIABB/wFxIgwgCS0AGEYEf0ErBSAMIAktABlHDQFBLQshACADIAtBAWo2AgAgCyAAOgAADAELIAYQIkUgACAFR3JFBEBBACEAIAgoAgAiASAHa0GfAUoNAiAEKAIAIQAgCCABQQRqNgIAIAEgADYCAAwBC0F/IQAgCSAJQRpqIApBD2oQoQcgCWsiBUEXSg0BAkACQAJAIAFBCGsOAwACAAELIAEgBUoNAQwDCyABQRBHIAVBFkhyDQAgAygCACIBIAJGIAEgAmtBAkpyDQIgAUEBay0AAEEwRw0CQQAhACAEQQA2AgAgAyABQQFqNgIAIAEgBUHArglqLQAAOgAADAILIAMgAygCACIAQQFqNgIAIAAgBUHArglqLQAAOgAAIAQgBCgCAEEBajYCAEEAIQAMAQtBACEAIARBADYCAAsgCkEQaiQAIAALCwAgAEGIpwsQogILFAAgAEHfAHEgACAAQeEAa0EaSRsLGwEBfyABQQEQjgwhAiAAIAE2AgQgACACNgIACyQAIABBC08EfyAAQQhqQXhxIgAgAEEBayIAIABBC0YbBUEKCwskAQJ/IwBBEGsiAiQAIAAgARCkBSEDIAJBEGokACABIAAgAxsLEwAgACABIAIgACgCACgCMBEEAAtnAgF/AX4jAEEQayICJAAgAAJ+IAFFBEBCAAwBCyACIAGtQgBB8AAgAWciAUEfc2sQsAEgAikDCEKAgICAgIDAAIVBnoABIAFrrUIwhnwhAyACKQMACzcDACAAIAM3AwggAkEQaiQAC1IBAn9BrNkKKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bRQRAIAA/AEEQdE0NASAAEAsNAQtB1IoLQTA2AgBBfw8LQazZCiAANgIAIAELfwIBfgN/AkAgAEKAgICAEFQEQCAAIQIMAQsDQCABQQFrIgEgACAAQgqAIgJCCn59p0EwcjoAACAAQv////+fAVYgAiEADQALCyACUEUEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQpsa0EwcjoAACADQQlLIAQhAw0ACwsgAQscACAAQYFgTwR/QdSKC0EAIABrNgIAQX8FIAALC8QBAQN/An8CQCABKAJMIgJBAE4EQCACRQ0BQbyLCygCACACQf////8DcUcNAQsCQCAAQf8BcSICIAEoAlBGDQAgASgCFCIDIAEoAhBGDQAgASADQQFqNgIUIAMgADoAACACDAILIAEgAhDABwwBCyABQcwAaiIEENsMGgJAAkAgAEH/AXEiAiABKAJQRg0AIAEoAhQiAyABKAIQRg0AIAEgA0EBajYCFCADIAA6AAAMAQsgASACEMAHIQILIAQQ2wMaIAILCxABAX8gACgCACAAQQA2AgALjQEBAn8CQCAAKAJMIgFBAE4EQCABRQ0BQbyLCygCACABQf////8DcUcNAQsgACgCBCIBIAAoAghHBEAgACABQQFqNgIEIAEtAAAPCyAAEL8FDwsgAEHMAGoiAhDbDBoCfyAAKAIEIgEgACgCCEcEQCAAIAFBAWo2AgQgAS0AAAwBCyAAEL8FCyACENsDGgvvAQEDfyAARQRAQajZCigCAARAQajZCigCABDdAyEBC0GA1wooAgAEQEGA1wooAgAQ3QMgAXIhAQtBoIsLKAIAIgAEQANAIAAoAkwaIAAoAhQgACgCHEcEQCAAEN0DIAFyIQELIAAoAjgiAA0ACwsgAQ8LIAAoAkxBAEghAgJAAkAgACgCFCAAKAIcRg0AIABBAEEAIAAoAiQRBAAaIAAoAhQNAEF/IQEMAQsgACgCBCIBIAAoAggiA0cEQCAAIAEgA2usQQEgACgCKBEkABoLQQAhASAAQQA2AhwgAEIANwMQIABCADcCBCACDQALIAELbAECfyAAKAJMGiAAEN0DGiAAIAAoAgwRAgAaIAAtAABBAXFFBEAgACgCOCEBIAAoAjQiAgRAIAIgATYCOAsgAQRAIAEgAjYCNAsgAEGgiwsoAgBGBEBBoIsLIAE2AgALIAAoAmAQFyAAEBcLCwIAC1IBA38CQCACBEADQAJ/IAAgASACQQF2IgYgA2xqIgUgBBEAACIHQQBIBEAgBgwBCyAHRQ0DIAMgBWohASACIAZBf3NqCyICDQALC0EAIQULIAUL4QEBBX8gABC/DSIBRQRAQQAPCwJ/IAAQqwIEQCMAQRBrIgMkACADIAA2AgAjAEEQayIFJAAgBSADNgIMIwBBoAFrIgAkACAAQQhqIgRBgIkJQZABEB4aIAAgATYCNCAAIAE2AhwgAEH/////B0F+IAFrIgIgAkH/////B0sbIgI2AjggACABIAJqIgI2AiQgACACNgIYIARBstwBIAMQvQwaIAFBfkcEQCAAKAIcIgQgBCAAKAIYRmtBADoAAAsgAEGgAWokACAFQRBqJAAgA0EQaiQAIAEMAQsgACABEMANCwsaACAAKAIwIAEQ3g0iAEUEQEEADwsgACgCEAs2ACAAIAEQowMiAEUEQEEADwsgACgCACEBIAIEQCAAIAJBCCABEQQADwsgAEEAQYABIAERBAALPQEBfyAAIAEgASgCAEEDcUECdEHE8gdqKAIAIgERAAAiBUUEQEF/DwsgACAFIAIgAyABIARBAEcQ/w1BAAsJAEH7iAsQhAsLUQECfEECQQFBAyAAKwMIIAErAwgiA6EgAisDACABKwMAIgShoiACKwMIIAOhIAArAwAgBKGioSIDRAAAAAAAAAAAYxsgA0QAAAAAAAAAAGQbC0kBAXwgASgCFCAAEKcDIQFEAAAAAAAA8D8gACgCLLcgASgCILhEAAAAAAAA8D+go6EgASgCLCIAKwNAIAArAzAiAqGiIAKgEC4LPQEBfCABKAIYIAAQpwMhASAAKAIstyABKAIguEQAAAAAAADwP6CjIAEoAiwiACsDOCAAKwMoIgKhoiACoAtxAgJ/AXwgACABEIoIBHwgACgCCCICIAEoAggiAyACIANIG7cgACgCACICIAEoAgAiAyACIANKG7ehIAAoAgwiAiABKAIMIgMgAiADSBu3IAAoAgQiACABKAIEIgEgACABShu3oaIFRAAAAAAAAAAACws8AQJ/IwBBEGsiASQAQQEgABBFIgJFBEAgASAANgIAQYjzCCgCAEGA6gMgARAdGhAmAAsgAUEQaiQAIAILCQBB+4YLEIQLC+ABAgh8AX8gAUEgQRhB0IYLLQAAIgwbaisDACEEIAIgAUEYQSAgDBtqKwMAIgU5AxggAiAEOQMQIAIgASkDODcDACACIAFBQGspAwA3AwggAiACKwMAIAREAAAAAAAA4D+ioSIGOQMAIAIgAisDCCAFRAAAAAAAAOA/oqEiBzkDCCADKwMAIQggAysDCCEJIAMrAxAhCiAAIAMrAxgiCyAFIAegIgUgBSALYxs5AxggACAKIAQgBqAiBCAEIApjGzkDECAAIAkgByAHIAlkGzkDCCAAIAggBiAGIAhkGzkDAAsQAEHApwpBwNUKKAIAEJQBC6EBAQJ/AkACQCABEDgiAkUNACAAEDkgABAhayACSQRAIAAgAhC1AgsgABAhIQMgABAkBEAgACADaiABIAIQHhogAkGAAk8NAiAAIAAtAA8gAmo6AA8gABAhQRBJDQFBobYDQfmAAUGEAkGx7QAQAAALIAAoAgAgA2ogASACEB4aIAAgACgCBCACajYCBAsPC0GfzQFB+YABQYICQbHtABAAAAsjACAAKAIIRQRAQfadA0GtuwFBngNBtx4QAAALIABBABDHCAvsDAIKfwZ8AkAgASgCECgCCEUNACAAKAIAIAAgARArIAEQvw9FDQAgASgCECICKwBAIAArAIACZkUNACAAKwCQAiACKwAwZkUNACACKwBIIAArAIgCZkUNACAAKwCYAiACKwA4ZkUNACgCHCIDIAIsAIQBRg0AIAIgAzoAhAEgACABEB8Q+AMgAUHAhAsoAgBBo4EFEHkiAi0AAARAIAAgAhD4AwsCQCABQYyECygCAEGjgQUQeSICLQAARQ0AIAIQ8QMaQcCACyECA0AgAigCACIDRQ0BIAJBBGohAiADQbkwEEdFDQALDAELIAAoApgBIQkgABDQBCIHQQg2AgwgByABNgIIIAdBAjYCBCAJQYCAgAhxBEAgByABECsoAhAvAbIBQQNPBHwCfyABKAIQKAKUASsDEEQAAAAAAABSQKIiDEQAAAAAAADgP0QAAAAAAADgvyAMRAAAAAAAAAAAZhugIgyZRAAAAAAAAOBBYwRAIAyqDAELQYCAgIB4C7cFRAAAAAAAAAAACzkDsAELIAAgASgCECgCeCABEMQIAkAgCUGAgIQCcUUNACAHKALYAUUEQCAHLQCMAkEBcUUNAQsgARCAAyEFIAEoAhAiAisDGCEOIAIrAxAhDEEAIQMCQCABQYyECygCAEGjgQUQigEiAi0AAEUNACACEPEDGkHAgAshAgNAIAIoAgAiBkUNASACQQRqIQIgBkHQsAEQRkUgA3IhAwwACwALQQAhAgJAIAVBfXFBAUcNACABKAIQKAIMIgIoAghBBEcNACACKwMQEMIHmUQAAAAAAADgP2NFDQAgAikDGEIAUg0AIAIpAyBCAFINACACKAIEQQBHIANyIQQLAkACQAJAIAlBgIAgcUUgAkUgBEEBcXJyRQRAIAIoAgQhBiACKAIIIQggAigCLCEEQQAhBSABQagpECMiCgRAIAoQhwIhBQsgAigCBEEARyADckEBcUUEQCAHQQA2ApACQQJBEBBEIgMgDCABKAIQIgIrA1giDaE5AwAgAisDUCEPIAMgDCANoDkDECADIA4gD0QAAAAAAADgP6IiDaE5AwgMAgtBASAGIAZBAU0bIQZBFCAFIAVBPWtBR0kbIQUgAigCCCIDQQJLDQIgAikDIEIAUg0CIAIpAxhCAFINAiACKAIABEAgB0EBNgKQAkECQRAQRCIDIA45AwggAyAMOQMAIAMgDCAEIAZBBXRqIgJBEGsrAwCgOQMQIAJBCGsrAwAhDQwCCyAHQQI2ApACRBgtRFT7IRlAIAW4oyEPIAQgBkEFdGoiAkEIaysDACEQIAJBEGsrAwAhEUEAIQIgBUEQEEQhA0EAIQQDQCAEIAVGBEADQCACIAVGDQYgAyACQQR0aiIEIAwgBCsDAKA5AwAgBCAOIAQrAwigOQMIIAJBAWohAgwACwAFIAMgBEEEdGoiBiAQIA0QU6I5AwggBiARIA0QQaI5AwAgBEEBaiEEIA8gDaAhDQwBCwALAAsgB0EANgKQAkECQRAQRCIDIAwgASgCECICKwNYoTkDACADIA4gAisDUEQAAAAAAADgP6IiDaE5AwggAyAMIAIrA2CgOQMQCyADIA4gDaA5AxhBAiEFDAELIAdBAjYCkAIgAyAGQQFrbCECIAMgBU8EQCADIAVuIQYgBCACQQR0aiEIQQAhBCAFQRAQRCEDQQAhAgNAIAIgBUYNAiADIAJBBHRqIgogDCAIIARBBHRqIgsrAwCgOQMAIAogDiALKwMIoDkDCCACQQFqIQIgBCAGaiEEDAALAAsgBCACQQR0aiEEQQAhAkEBIAggCEEDSRsiBUEQEEQhAwNAIAIgBUYNASADIAJBBHQiBmoiCCAMIAQgBmoiBisDAKA5AwAgCCAOIAYrAwigOQMIIAJBAWohAgwACwALIAlBgMAAcUUEQCAAIAMgAyAFEJECGgsgByAFNgKUAiAHIAM2ApgCC0HgggsgAUG+mwEQIxDNAjYCAAJAIAAoAjwiAkUNACACKAI4IgJFDQAgACACEQEACyAAIAEgASgCECgCCCgCBCgCFBEDAAJAIAEoAhAoAnwiAUUNACABLQBRQQFHDQAgAEEKIAEQrwMLAkAgACgCPCIBRQ0AIAEoAjwiAUUNACAAIAERAQALQeCCCygCABDNAhAXQeCCCygCABAXQeCCC0EANgIAIAAQzgQLC40EAQh/IwBBwAJrIgMkACAAIQEDQCABIQICQAJAAkACQAJAIAEtAAAiBA4OAwEBAQEBAQEBBAQEBAQACwJAIARBKGsOBQICAQEEAAsgBEEgRg0DCwNAIAQhB0EBIQQgB0UgB0EoayIIQQRNQQBBASAIdEETcRtyDQIgAi0AASEEIAJBAWohAgwACwALIAFBAWohAgsCQCABIAJNBEACQAJAAkAgBEEoaw4CAAECCyAGIAIhAUEBIQZFDQUgAyAANgIgQfj/AyADQSBqEDJBwIALQQA2AgAMAwsgBkEAIQYgAiEBDQQgAyAANgIwQZqABCADQTBqEDJBwIALQQA2AgAMAgsgBARAIAZFBEAgBUE/RgRAIAMgADYCAEGq9QQgAxAnQbyCC0EANgIADAQLQcCCCxDICCADQUBrIAVBAnRqQcCCCxAhNgIAIAVBAWohBQtBwIILIAEgAiABaxDHD0HAggsQyAggAiEBDAQLIAYEQCADIAA2AhBBtoAEIANBEGoQMkHAgAtBADYCAAwCC0EAIQFBwIILEPIDIQADQCABIAVGBEAgBUECdEHAgAtqQQA2AgAMAwUgAUECdCICQcCAC2ogACADQUBrIAJqKAIAajYCACABQQFqIQEMAQsACwALQfnfAEGtuwFB6BxBkekAEAAACyADQcACaiQAQcCACw8LIAFBAWohAQwACwALQwACQCAAECQEQCAAECFBD0YNAQsgABDICAsCQCAAECQEQCAAQQA6AA8MAQsgAEEANgIECyAAECQEfyAABSAAKAIACwvxAgEEfyMAQTBrIgMkACADIAI2AgwgAyACNgIsIAMgAjYCEAJAAkACQAJAAkBBAEEAIAEgAhBLIgVBAEgNAEEBIQIgBUEBaiEGAkAgBSAAEDkgABAhayIETwRAIAAQJEEAIAYgBGsiBEEBRhsNASAAIAQQzQQLQQAhAgsgA0IANwMYIANCADcDECAFQRBPQQAgAhsNASADQRBqIQQgBSACBH8gBAUgABBdCyAGIAEgAygCLBBLIgFHIAFBAE5xDQIgAUEATA0AIAAQJARAIAFBgAJPDQQgAgRAIAAQXSADQRBqIAEQHhoLIAAgAC0ADyABajoADyAAECFBEEkNAUGhtgNB+YABQdcBQfQeEAAACyACDQQgACAAKAIEIAFqNgIECyADQTBqJAAPC0GfpQNB+YABQcoBQfQeEAAAC0GQmgNB+YABQc8BQfQeEAAAC0GGzQFB+YABQdIBQfQeEAAAC0HqoAFB+YABQdkBQfQeEAAACw0AIAAgASABEDgQxw8LXAAgASgCCCACTQRAQd6yA0Gl/wBBCEGPJBAAAAsgACABKAIAIAEoAgQgAmogASgCDHBBBXRqIgEpAwA3AwAgACABKQMYNwMYIAAgASkDEDcDECAAIAEpAwg3AwgLzwMCBX8BfiMAQdAAayIDJAACf0EAIAJFDQAaIANByABqIAJBOhDIASAAIAFBAnRqKAJAIQQCQCADKAJMIgcgAygCSGotAABBOkYEQCAEIQFBASEGA0AgAQRAIANBQGsgASgCBEE6EMgBQQAhBSAEIQIDQCABIAJGBEACQCAFQQFxDQAgBwRAIAMgAykCSDcDMCADIAMpAkA3AyggA0EwaiADQShqEJgGRQ0BCyABKAIEIQAgAyABKAIMKAIINgIkIAMgADYCIEGQgAtBgDYgA0EgahCHAUEAIQYLIAEoAgAhAQwDBUEAIQAgASgCBCACKAIEECoEf0EBBSABKAIMKAIIIAIoAgwoAggQKgtFIAVBAXFyIQUgAigCACECDAELAAsACwsgBkUNAQsgA0IANwNAQQEhAUEAIQIDQCAEBEAgA0E4aiAEKAIEQToQyAECQCACBEAgAyADKQNANwMYIAMgAykDODcDECADQRhqIANBEGoQmAYNAQsgAyADKQM4QiCJNwMAQZCAC0GkNSADEIcBQQAhAQsgAyADKQM4Igg3A0AgCKchAiAEKAIAIQQMAQsLQaOBBSABQQFxDQEaC0GQgAsQ6wELIANB0ABqJAALWgECfyAAKAKYASEBA0AgAQRAIAEoAgQgASgCyAQQFyABKALMBBAXIAEQFyEBDAELC0GIgAtBADYCAEGMgAtBADYCACAAQQA2ArgBIABCADcDmAEgAEEANgIcCzEBAX8CQCABRQ0AIAEtAABFDQAgACgCPCICRQ0AIAIoAnAiAkUNACAAIAEgAhEDAAsLrQECAn8CfCMAQSBrIgMkAAJAIAAoAjwiBEUNACAEKAJgIgRFDQAgACgCECgCmAFFDQAgASsAGCEFIAErAAghBiADIAErABAgASsAAKBEAAAAAAAA4D+iOQMAIAMgBSAGoEQAAAAAAADgP6I5AwggAyABKQMYNwMYIAMgASkDEDcDECAALQCZAUEgcUUEQCAAIAMgA0ECEJECGgsgACADIAIgBBEFAAsgA0EgaiQACzEBAX8CQCAAKAI8IgFFDQAgASgCBCIBRQ0AIAAgAREBAAsgACgCAEEANgIYIAAQ9wgLgwEBA38jAEEgayIBJAAgACgCECICKAIMIgNBDE8EQCABQeQANgIUIAFBm74BNgIQQYjzCCgCAEGtvgQgAUEQahAdGhBuAAsgASACKAIINgIIIAEgA0ECdCICQfiFBWooAgA2AgQgASACQaiGBWooAgA2AgAgAEGQCCABEBwgAUEgaiQACykBAX9B48EBIQEgACAALQCQAUEBRgR/IAAoAowBKAIABUHjwQELEBkaCxUAIAAgASACQdYjQcUAQZC8ARD5CgsLACAAQcDSBBAZGgtxAQF/IwBBEGsiBSQAIABB98QDEBkaIAAgARCBASACBEAgAEHfABBjIAAgAhCBAQsgBSADNgIAIABByDYgBRAcAkAgBEHvKxAjIgFFDQAgAS0AAEUNACAAQSAQYyAAIAEQgQELIABBIhBjIAVBEGokAAvSAQEGfyMAQSBrIgIkACAAKAIQIgEoAqgBIQMgACABKwOgARBzIABBpZMEEBkaA0ACQCADRQ0AIAMoAgAiBUUNACADQQRqIQMgBSIBQaP7ABBGRQ0BA0AgASIEQQFqIQEgBC0AAA0ACwNAIAQtAAEEQCACIARBAWoiATYCECAAQdbHAyACQRBqEBwDQCABLQAAIAEiBEEBaiEBDQALDAELCyAFQbkwEEZFBEAgACgCEEIANwOgAQsgAiAFNgIAIABBoIMEIAIQHAwBCwsgAkEgaiQAC7oCAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRAIAAoAgQhAyAAKAIAIQQMAQsgBkEBdEEBIAYbIgJB////P0sEQEHEACEADAILIAAoAgAgAkEFdBA2IgRFBEBBMCEADAILIAQgACgCDCIFQQV0akEAIAIgBWtBBXQQMBogBSAAKAIIIgYgACgCBCIDakkEQCADQQV0IQggBCACIAUgA2siBWsiA0EFdGogBCAIaiAFQQV0EFQaIAAgAzYCBAsgACACNgIMIAAgBDYCAAsgBCADIAZqIAJwQQV0aiICIAEpAwA3AwAgAiABKQMYNwMYIAIgASkDEDcDECACIAEpAwg3AwggACAAKAIIQQFqNgIIIAdBEGokAA8LIAcgABB6NgIAQYjzCCgCAEGSgQQgBxAdGhAmAAsvAAJ/QQAgACgCECIALQCsAUEBRw0AGkEBIAAoAsQBQQFLDQAaIAAoAswBQQFLCwu0AgEMfyAAKAIAIAAoAgQQtgZFBEBBrqEDQfTbAEHAAEGD6AAQAAALIAAoAgAhBCAAKAIEIQUjAEEQayIHJAAgB0HHADYCDCAFIARrQQJ1IghBAk4EQAJAIAdBDGohCSAEKAIAIQogBCEBIAhBAmtBAm0hCwNAIAJBAXQiDEEBciEGIAJBAnQgAWpBBGohAwJAIAggDEECaiICTARAIAYhAgwBCyACIAYgAygCACADKAIEIAkoAgARAAAiBhshAiADQQRqIAMgBhshAwsgASADKAIANgIAIAMhASACIAtMDQALIAVBBGsiBSABRgRAIAEgCjYCAAwBCyABIAUoAgA2AgAgBSAKNgIAIAQgAUEEaiIBIAkgASAEa0ECdRCcCQsLIAdBEGokACAAIAAoAgRBBGs2AgQLWQECfyAAIAAoAgAiAigCBCIBNgIAIAEEQCABIAA2AggLIAIgACgCCCIBNgIIAkAgASgCACAARgRAIAEgAjYCAAwBCyABIAI2AgQLIAIgADYCBCAAIAI2AggLWQECfyAAIAAoAgQiAigCACIBNgIEIAEEQCABIAA2AggLIAIgACgCCCIBNgIIAkAgASgCACAARgRAIAEgAjYCAAwBCyABIAI2AgQLIAIgADYCACAAIAI2AggLGwAgAARAIAAoAgAQhgQgACgCBBCGBCAAEBcLC18BA39BCBDFAxCSCyIAQYzsCTYCAEHLOBA4IgFBDWoQggEiAkEANgIIIAIgATYCBCACIAE2AgAgACACQQxqQcs4IAFBAWoQHjYCBCAAQbzsCTYCACAAQcjsCUE/EAEACxYAQX8gAEECdCAAQf////8DSxsQggELjAIBBH8gACgCIEEBRgRAIAAoAgwiBCAAKAIIIgVBAWpMBEAgACAAKAIUIAQgBUELaiIEQQQQfTYCFCAAIAAoAhggACgCDCAEQQQQfTYCGCAAKAIoIgYEQCAAAn8gACgCHCIHBEAgByAAKAIMIAQgBhB9DAELIAQgBhBECzYCHAsgACAENgIMCyAFQQJ0IgQgACgCFGogATYCACAAKAIYIARqIAI2AgAgACgCKCIEBEAgACgCHCAEIAVsaiADIAQQHhoLIAAoAgAgAUwEQCAAIAFBAWo2AgALIAAoAgQgAkwEQCAAIAJBAWo2AgQLIAAgACgCCEEBajYCCA8LQf3ZAUHFuQFB/wlBuwwQAAAL2gEBAn8gAEUEQEEADwsgACgCACAAKAIEIAAoAgggACgCECAAKAIoIAAoAiAQ4QkiASgCFCAAKAIUIAAoAgBBAnRBBGoQHhogACgCFCAAKAIAQQJ0aigCACICBEAgASgCGCAAKAIYIAJBAnQQHhoLIAAoAhwiAgRAIAEoAhwgAiAAKAIIIAAoAihsEB4aCyABIAEtACRBfnEgAC0AJEEBcXIiAjoAJCABIAJBfXEgAC0AJEECcXIiAjoAJCABIAJB+wFxIAAtACRBBHFyOgAkIAEgACgCCDYCCCABC1sBAX8gACgCBCIDIAFLBEAgA0EhTwR/IAAoAgAFIAALIAFBA3ZqIgAgAC0AACIAQQEgAUEHcSIBdHIgAEF+IAF3cSACGzoAAA8LQYyxA0Gg/gBB0ABByCEQAAALagIBfwJ8IwBBIGsiAyQAAkAgACACECMiAEUNACADIANBEGo2AgQgAyADQRhqNgIAIABBtogBIAMQSUECRw0AIAMrAxghBCADKwMQIQUgAUEBOgBRIAEgBTkDQCABIAQ5AzgLIANBIGokAAtEAQF/IABB2ChBwAJBARAxGiAAEOUFIAAQKygCEC8BsAFBCBAYIQEgACgCECABNgKUASAAIAAQKygCECgCdEEBcRC5BAv7AwMJfwF9AnwgA0EEEBghBSADQQQQGCEGIANBBBAYIQggA0EEEBghCiADIAEQ1wIgAyACENcCIAAgAyABIAoQ1gIgAyAKENcCIANBACADQQBKGyEJA0AgByAJRwRAIAUgB0ECdCILaiACIAtqKgIAIAogC2oqAgCTOAIAIAdBAWohBwwBCwsgAyAFIAYQkQogBEEAIARBAEobIQcgBEEBayELIAMgBSAFELsCIQ9BACECA0ACQAJAAkAgAiAHRg0AQQAhBCADQQAgA0EAShshCUPK8knxIQ4DQCAEIAlHBEAgDiAFIARBAnRqKgIAixC+BSEOIARBAWohBAwBCwsgDrtE/Knx0k1iUD9kRQ0AIAMgBhDXAiADIAEQ1wIgAyAFENcCIAAgAyAGIAgQ1gIgAyAIENcCIAMgBiAIELsCIhBEAAAAAAAAAABhDQAgAyABIA8gEKO2Ig4gBhCDBSACIAtODQIgAyAFIA6MIAgQgwUgAyAFIAUQuwIhECAPRAAAAAAAAAAAYg0BQaSDBEEAEDJBASEMCyAFEBcgBhAXIAgQFyAKEBcgDA8LIBAgD6O2IQ5BACEEA3wgAyAERgR8IBAFIAYgBEECdCIJaiINIA4gDSoCAJQgBSAJaioCAJI4AgAgBEEBaiEEDAELCyEPCyACQQFqIQIMAAsACz4CAn8BfSAAQQAgAEEAShshAANAIAAgAkZFBEAgASACQQJ0aiIDIAMqAgAiBCAElDgCACACQQFqIQIMAQsLCzsAIAFBAWohAQNAIAEEQCAAIAIgAysDAKIgACsDAKA5AwAgAUEBayEBIABBCGohACADQQhqIQMMAQsLC48GAg9/AX0jAEEQayIJJAAgAkEAIAJBAEobIQsgAhC4ASEHA0AgBCALRgRAIAMgAEECdGpBADYCAEEBIAEgAEEUbGoiCigCACIEIARBAU0bIQVBASEEA0AgBCAFRgRAQQAhBEEAIQUgAkEBRwRAIAJBAWsiCBC4ASEFCyAJIAg2AgwgCSAFNgIIQQAhBgNAIAQgC0ZFBEAgACAERwRAIAUgBkECdGogBDYCACAHIARBAnRqIAY2AgAgBkEBaiEGCyAEQQFqIQQMAQsLIAhBAm0hBANAIARBAEgEQCAFQQRrIQ5B/////wchAANAAkAgCEUNACAFKAIAIQQgBSAOIAhBAnRqKAIAIgI2AgAgByACQQJ0akEANgIAIAkgCEEBayIINgIMIAlBCGpBACAHIAMQpQogAyAEQQJ0aigCACIKQf////8HRg0AQQEhAkEBIAEgBEEUbGoiDSgCACIAIABBAU0bIQ8DQCACIA9GBEAgCiEADAMLAn8gAkECdCIAIA0oAghqKgIAIhOLQwAAAE9dBEAgE6gMAQtBgICAgHgLIApqIgYgAyANKAIEIABqKAIAIhBBAnQiAGoiDCgCAEgEQCAAIAdqIhEoAgAhBCAMIAY2AgADQAJAIARBAEwNACADIAUgBEEBdiIAQQJ0aigCACIMQQJ0IhJqKAIAIAZMDQAgBSAEQQJ0aiAMNgIAIAcgEmogBDYCACAAIQQMAQsLIAUgBEECdGogEDYCACARIAQ2AgALIAJBAWohAgwACwALCyAAQQpqIQBBACEEA0AgBCALRwRAIAMgBEECdGoiASgCAEH/////B0YEQCABIAA2AgALIARBAWohBAwBCwsgBRAXIAcQFyAJQRBqJAAFIAlBCGogBCAHIAMQpQogBEEBayEEDAELCwUgAyAEQQJ0IgYgCigCBGooAgBBAnRqAn8gCigCCCAGaioCACITi0MAAABPXQRAIBOoDAELQYCAgIB4CzYCACAEQQFqIQQMAQsLBSADIARBAnRqQf////8HNgIAIARBAWohBAwBCwsLMAEBf0HI5AoQ7wYiAkEANgIgIAIgAToAECACIAA2AgggAkEANgIUIAJBADYCDCACCw8AIAAgAEHJ3wAQIxC8CgtMAAJAIAAEQCABIAAoAghPDQEgACgCACAAKAIEIAFqIAAoAgxwQQJ0ag8LQaHSAUHV/gBBFUHmJxAAAAtB3rIDQdX+AEEVQeYnEAAAC6cCAQd/IwBBEGsiCiQAAkAgAARAAkAgACgCCCIIIAAoAgwiBUcEQCAAKAIEIQYgACgCACEHDAELIAhBAXRBASAIGyIFQf////8DSwRAQcQAIQAMAwsgACgCACAFQQJ0EDYiB0UEQEEwIQAMAwsgByAAKAIMIglBAnRqQQAgBSAJa0ECdBAwGiAJIAAoAggiCCAAKAIEIgZqSQRAIAZBAnQhCyAHIAUgCSAGayIJayIGQQJ0aiAHIAtqIAlBAnQQVBogACAGNgIECyAAIAU2AgwgACAHNgIACyAHIAYgCGogBXBBAnRqIAE2AgAgACAIQQFqNgIIIApBEGokAA8LQaHSASAEIAMgAhAAAAsgCiAAEHo2AgBBiPMIKAIAQZKBBCAKEB0aECYACwkAIABBBBCSDAsLACAEIAI2AgBBAwuZAgEDfyABKAIQIgQoArABRQRAIAFBMEEAIAEoAgBBA3EiBUEDRxtqKAIoKAIQKAL0ASIGIAFBUEEAIAVBAkcbaigCKCgCECgC9AEiBSAFIAZIGyEGIAQgAjYCsAEDQCABKAIQIQUCQCADRQRAIAIoAhAhBAwBCyACKAIQIgQgBC8BqAEgBS8BqAFqOwGoAQsgBCAELwGaASAFLwGaAWo7AZoBIAQgBCgCnAEgBSgCnAFqNgKcASAGIAIgAkEwayIEIAIoAgBBA3FBAkYbKAIoIgUoAhAoAvQBRwRAIAAgBRCoCyACIAQgAigCAEEDcUECRhsoAigoAhAoAsgBKAIAIgINAQsLDwtB1tEBQbDBAUGLAUH35wAQAAALdAECfyMAQSBrIgIkAAJAIACtIAGtfkIgiFAEQCAAIAEQRSIDRQ0BIAJBIGokACADDwsgAiABNgIEIAIgADYCAEGI8wgoAgBBseoDIAIQHRoQJgALIAIgACABbDYCEEGI8wgoAgBBgOoDIAJBEGoQHRoQJgALOQECfyMAQRBrIgMkACADQQxqIgQgARBMIAIgBBDOAyIBEMEBNgIAIAAgARDAASAEEEggA0EQaiQACzcBAn8jAEEQayICJAAgAkEMaiIDIAAQTCADEMMBQcCuCUHargkgARDDAiADEEggAkEQaiQAIAELOQECfyMAQRBrIgMkACADQQxqIgQgARBMIAIgBBDQAyIBEMEBOgAAIAAgARDAASAEEEggA0EQaiQAC6cBAQR/IwBBEGsiBSQAIAEQOCECIwBBEGsiAyQAAkAgAkH3////B00EQAJAIAIQpQUEQCAAIAIQzgEgACEEDAELIANBCGogAhDTA0EBahDSAyADKAIMGiAAIAMoAggiBBDzASAAIAMoAgwQ8gEgACACELkBCyAEIAEgAhCjAiADQQA6AAcgAiAEaiADQQdqEM0BIANBEGokAAwBCxDCAQALIAVBEGokAAsXACAAIAM2AhAgACACNgIMIAAgATYCCAsSACAAIAEgAkL/////DxC0BacLgwEBAn8gACABQQEQiAEiASgCEEEANgLEAUEFEK4HIQIgASgCECIDQQA2AswBIAMgAjYCwAFBBRCuByECIAEoAhAiAyACNgLIAUHI2gooAgAiAiAAIAIbKAIQQbgBQcABIAIbaiABNgIAIAMgAjYCvAFByNoKIAE2AgAgA0EANgK4ASABC9IKAQ1/IAEsAAAiAkUEQCAADwsCQCAAIAIQxQEiAEUNACABLQABRQRAIAAPCyAALQABRQ0AIAEtAAJFBEAgAC0AASICQQBHIQQCQCACRQ0AIAAtAABBCHQgAnIiAiABLQABIAEtAABBCHRyIgVGDQAgAEEBaiEBA0AgASIALQABIgNBAEchBCADRQ0BIABBAWohASACQQh0QYD+A3EgA3IiAiAFRw0ACwsgAEEAIAQbDwsgAC0AAkUNACABLQADRQRAIABBAmohAiAALQACIgRBAEchAwJAAkAgBEUNACAALQABQRB0IAAtAABBGHRyIARBCHRyIgQgAS0AAUEQdCABLQAAQRh0ciABLQACQQh0ciIFRg0AA0AgAkEBaiEAIAItAAEiAUEARyEDIAFFDQIgACECIAEgBHJBCHQiBCAFRw0ACwwBCyACIQALIABBAmtBACADGw8LIAAtAANFDQAgAS0ABEUEQCAAQQNqIQIgAC0AAyIEQQBHIQMCQAJAIARFDQAgAC0AAUEQdCAALQAAQRh0ciAALQACQQh0ciAEciIEIAEoAAAiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnIiBUYNAANAIAJBAWohACACLQABIgFBAEchAyABRQ0CIAAhAiAEQQh0IAFyIgQgBUcNAAsMAQsgAiEACyAAQQNrQQAgAxsPCyAAIQRBACECIwBBoAhrIggkACAIQZgIakIANwMAIAhBkAhqQgA3AwAgCEIANwOICCAIQgA3A4AIAkACQAJAAkAgASIFLQAAIgFFBEBBfyEJQQEhAAwBCwNAIAQgBmotAABFDQQgCCABQf8BcUECdGogBkEBaiIGNgIAIAhBgAhqIAFBA3ZBHHFqIgAgACgCAEEBIAF0cjYCACAFIAZqLQAAIgENAAtBASEAQX8hCSAGQQFLDQELQX8hA0EBIQcMAQtBASEKQQEhAQNAAn8gBSAJaiABai0AACIDIAAgBWotAAAiB0YEQCABIApGBEAgAiAKaiECQQEMAgsgAUEBagwBCyADIAdLBEAgACAJayEKIAAhAkEBDAELIAIiCUEBaiECQQEhCkEBCyIBIAJqIgAgBkkNAAtBfyEDQQAhAEEBIQJBASEHQQEhAQNAAn8gAyAFaiABai0AACILIAIgBWotAAAiDEYEQCABIAdGBEAgACAHaiEAQQEMAgsgAUEBagwBCyALIAxJBEAgAiADayEHIAIhAEEBDAELIAAiA0EBaiEAQQEhB0EBCyIBIABqIgIgBkkNAAsgCiEACwJ/IAUgBSAHIAAgA0EBaiAJQQFqSyIAGyIKaiADIAkgABsiC0EBaiIHENABBEAgCyAGIAtBf3NqIgAgACALSRtBAWohCkEADAELIAYgCmsLIQ0gBkEBayEOIAZBP3IhDEEAIQMgBCEAA0ACQCAEIABrIAZPDQBBACECIARBACAMEO0CIgEgBCAMaiABGyEEIAFFDQAgASAAayAGSQ0CCwJ/An8gBiAIQYAIaiAAIA5qLQAAIgFBA3ZBHHFqKAIAIAF2QQFxRQ0AGiAIIAFBAnRqKAIAIgEgBkcEQCAGIAFrIgEgAyABIANLGwwBCwJAIAUgByIBIAMgASADSxsiAmotAAAiCQRAA0AgACACai0AACAJQf8BcUcNAiAFIAJBAWoiAmotAAAiCQ0ACwsDQCABIANNBEAgACECDAYLIAUgAUEBayIBai0AACAAIAFqLQAARg0ACyAKIQEgDQwCCyACIAtrCyEBQQALIQMgACABaiEADAALAAsgCEGgCGokACACIQQLIAQLzAEBA38jAEEgayIDQgA3AxggA0IANwMQIANCADcDCCADQgA3AwAgAS0AACICRQRAQQAPCyABLQABRQRAIAAhAQNAIAEiA0EBaiEBIAMtAAAgAkYNAAsgAyAAaw8LA0AgAyACQQN2QRxxaiIEIAQoAgBBASACdHI2AgAgAS0AASECIAFBAWohASACDQALAkAgACIBLQAAIgJFDQADQCADIAJBA3ZBHHFqKAIAIAJ2QQFxRQ0BIAEtAAEhAiABQQFqIQEgAg0ACwsgASAAaws8ACAAKAJMQQBOBEAgAEIAQQAQvAUaIAAgACgCAEFfcTYCAA8LIABCAEEAELwFGiAAIAAoAgBBX3E2AgALgAEBBH8gACAAQT0QtwUiAUYEQEEADwsCQCAAIAEgAGsiBGotAAANAEHYigsoAgAiAUUNACABKAIAIgJFDQADQAJAIAAgAiAEEOABRQRAIAEoAgAgBGoiAi0AAEE9Rg0BCyABKAIEIQIgAUEEaiEBIAINAQwCCwsgAkEBaiEDCyADC+ICAQV/AkACQAJAIAIoAkxBAE4EQCABQQJIDQEMAgtBASEGIAFBAUoNAQsgAiACKAJIIgJBAWsgAnI2AkggAUEBRw0BIABBADoAACAADwsgAUEBayEEIAAhAQJAA0ACQAJAAkAgAigCBCIDIAIoAggiBUYNAAJ/IANBCiAFIANrEO0CIgcEQCAHIAIoAgQiA2tBAWoMAQsgAigCCCACKAIEIgNrCyEFIAEgAyAFIAQgBCAFSxsiAxAeGiACIAIoAgQgA2oiBTYCBCABIANqIQEgBw0CIAQgA2siBEUNAiAFIAIoAghGDQAgAiAFQQFqNgIEIAUtAAAhAwwBCyACEL8FIgNBAE4NAEEAIQQgACABRg0DIAItAABBEHENAQwDCyABIAM6AAAgAUEBaiEBIANB/wFxQQpGDQAgBEEBayIEDQELCyAARQRAQQAhBAwBCyABQQA6AAAgACEECyAGDQALIAQLCQAgAL1CNIinC5kBAQN8IAAgAKIiAyADIAOioiADRHzVz1o62eU9okTrnCuK5uVavqCiIAMgA0R9/rFX4x3HPqJE1WHBGaABKr+gokSm+BARERGBP6CgIQUgACADoiEEIAJFBEAgBCADIAWiRElVVVVVVcW/oKIgAKAPCyAAIAMgAUQAAAAAAADgP6IgBCAFoqGiIAGhIARESVVVVVVVxT+ioKELkgEBA3xEAAAAAAAA8D8gACAAoiICRAAAAAAAAOA/oiIDoSIERAAAAAAAAPA/IAShIAOhIAIgAiACIAJEkBXLGaAB+j6iRHdRwRZswVa/oKJETFVVVVVVpT+goiACIAKiIgMgA6IgAiACRNQ4iL7p+qi9okTEsbS9nu4hPqCiRK1SnIBPfpK+oKKgoiAAIAGioaCgC40BACAAIAAgACAAIAAgAEQJ9/0N4T0CP6JEiLIBdeDvST+gokQ7j2i1KIKkv6CiRFVEiA5Vwck/oKJEfW/rAxLW1L+gokRVVVVVVVXFP6CiIAAgACAAIABEgpIuscW4sz+iRFkBjRtsBua/oKJEyIpZnOUqAECgokRLLYocJzoDwKCiRAAAAAAAAPA/oKMLbQECfwJAIAAoAhAiAC0AVCIDIAEoAhAiAS0AVEcNAAJAIAArAzggASsDOGEEQCAAKwNAIAErA0BhDQELIAMNAQsgACsDECABKwMQYQRAQQEhAiAAKwMYIAErAxhhDQELIAAtACxBAXMhAgsgAgtLAQJ/QX8hAQJAIABBCHUiAkHYAWtBCEkNAAJAIAJB/wFHBEAgAg0BIABByJ4Iai0AAA0BDAILIABBfnFB/v8DRg0BCyAAIQELIAEL0QEBAX8CQCAAQQBIDQAgAEH/AE0EQCABIAA6AABBAQ8LIABB/w9NBEAgASAAQT9xQYABcjoAASABIABBBnZBwAFyOgAAQQIPCyAAQf//A00EQCABIABBP3FBgAFyOgACIAEgAEEMdkHgAXI6AAAgASAAQQZ2QT9xQYABcjoAAUEDDwsgAEH//8MASw0AIAEgAEE/cUGAAXI6AAMgASAAQRJ2QfABcjoAACABIABBBnZBP3FBgAFyOgACIAEgAEEMdkE/cUGAAXI6AAFBBCECCyACC0QBA38DQCAAKAIAIQIgACgCECgCCCEDIAEgACgCCE9FBEAgAiABQQJ0aigCACADEQEAIAFBAWohAQwBCwsgAiADEQEAC0UAAkAgABAkBEAgABAhQQ9GDQELIABBABDFDQsCQCAAECQEQCAAQQA6AA8MAQsgAEEANgIECyAAECQEfyAABSAAKAIACwuHAQECfwJAIAAgASkDCBDiA0UNACAAEDQgAEYEQCAAIAEQbyECA0AgAgRAIAAgAiABEHEgACACEPMHIQIMAQsLIAAtABhBIHEEQCABEPgNCyAAIAEQ6AcgARDlByAAQQEgASkDCBDqBwsgACABQeQCQQBBABDkAw0AIAAQNCAARgRAIAEQFwsLCzUBAX9BGBDiASIFIAQ6ABQgBSAAIAEQqQE2AgggACACEKkBIQAgBSADNgIQIAUgADYCDCAFC7gDAQl8AkACQEEBQX9BACAAKwMIIgggASsDCCIJoSIFIAIrAwAiCyABKwMAIgShoiACKwMIIgogCaEgACsDACIGIAShIgyioSIHRC1DHOviNhq/YxsgB0QtQxzr4jYaP2QbIgANACAEIAZiBEBBASEBIAYgC2MgBCALZHENAiAEIAtjRSAGIAtkRXINAQwCC0EBIQEgCCAKYyAJIApkcQ0BIAggCmRFDQAgCSAKYw0BCwJAQQFBf0EAIAUgAysDACIFIAShoiADKwMIIgcgCaEgDJqioCIMRC1DHOviNhq/YxsgDEQtQxzr4jYaP2QbIgINACAEIAZiBEBBASEBIAUgBmQgBCAFZHENAiAEIAVjRSAFIAZjRXINAQwCC0EBIQEgByAJYyAHIAhkcQ0BIAcgCGNFDQAgByAJZA0BCyAAIAJsQQFBf0EAIAogB6EiCiAGIAWhoiAIIAehIAsgBaEiBqKhIghELUMc6+I2Gr9jGyAIRC1DHOviNho/ZBtBAUF/QQAgCiAEIAWhoiAJIAehIAaioSIERC1DHOviNhq/YxsgBEQtQxzr4jYaP2QbbHFBH3YhAQsgAQvjAwIIfwJ+IwBBIGsiBiQAQeCICygCACEDAkACQAJAIAAoAgQiBUEDbEECayIHQdyICygCACIESwRAIARB/////wBPDQEgB0GAgICAAU8NAiADIAdBBHQiAhA2IgNFDQMgBEEEdCIEIAJJBEAgAyAEakEAIAIgBGsQMBoLQdyICyAHNgIAQeCICyADNgIACyADIAAoAgAiACkDADcDACADIAApAwg3AwggACkDACEKIAMgACkDCDcDGCADIAo3AxBBAiEEQQIgBSAFQQJNG0EBayEJQQEhBQNAIAUgCUZFBEAgAyAEQQR0aiICIAAgBUEEdGoiCCkDADcDACACIAgpAwg3AwggCCkDACEKIAIgCCkDCCILNwMYIAIgCjcDECACIAo3AyAgAiALNwMoIARBA2ohBCAFQQFqIQUMAQsLIAMgBEEEdGoiAiAAIAlBBHRqIgApAwA3AwAgAiAAKQMINwMIIAApAwAhCiACIAApAwg3AxggAiAKNwMQIAEgAzYCACABIAc2AgQgBkEgaiQADwtByL8DQcqBAUHNAEGJtQEQAAALIAZBEDYCBCAGIAc2AgBBiPMIKAIAQbHqAyAGEB0aECYACyAGIAI2AhBBiPMIKAIAQYDqAyAGQRBqEB0aECYACzwAQcyICygCACAATQRAQd6yA0G6ugFBMEGtKBAAAAtBxIgLKAIAQciICygCACAAakHQiAsoAgBwQShsagvmAQIFfwJ8IwBBMGsiAiQAIAAoAgQiBEEBayEGIAAoAgAhBQNAIAQgAyIARwRAIAIgBSAAIAZqIARwQQR0aiIDKQMINwMoIAIgAykDADcDICACIAUgAEEEdGoiAykDCDcDGCACIAMpAwA3AxAgAiABKQMINwMIIAIgASkDADcDACAAQQFqIQNBAUF/QQAgAisDKCACKwMYIgehIAIrAwAgAisDECIIoaIgAisDCCAHoSACKwMgIAihoqEiB0QtQxzr4jYav2MbIAdELUMc6+I2Gj9kG0EBRw0BCwsgAkEwaiQAIAAgBE8LrwQBBH8jAEEQayIEJAACQAJAIAAEQCABRQ0BAkAgAUHSPhBhDQAgAUH1wQEQYQ0AIAFBnxcQYQ0AIAFB5sEBEGFFDQMLIAEtAAAhAiAEQbYDNgIAAkAgAEHBhCBBgIAgIAJB9wBGGyAEENEMIgNBAEgNACMAQSBrIgIkAAJ/AkACQEHmwgEgASwAABDFAUUEQEHUigtBHDYCAAwBC0GYCRBDIgANAQtBAAwBCyAAQQBBkAEQMBogAUErEMUBRQRAIABBCEEEIAEtAABB8gBGGzYCAAsCQCABLQAAQeEARwRAIAAoAgAhAQwBCyADQQNBABAFIgFBgAhxRQRAIAIgAUGACHKsNwMQIANBBCACQRBqEAUaCyAAIAAoAgBBgAFyIgE2AgALIABBfzYCUCAAQYAINgIwIAAgAzYCPCAAIABBmAFqNgIsAkAgAUEIcQ0AIAIgAkEYaq03AwAgA0GTqAEgAhAJDQAgAEEKNgJQCyAAQfYDNgIoIABB9wM2AiQgAEH4AzYCICAAQfkDNgIMQd2KCy0AAEUEQCAAQX82AkwLIABBoIsLKAIAIgE2AjggAQRAIAEgADYCNAtBoIsLIAA2AgAgAAshBSACQSBqJAAgBQ0AQdSKCygCACEAIAMQxgdB1IoLIAA2AgBBACEFCyAEQRBqJAAgBQ8LQb3TAUHCvQFBIUHK6AAQAAALQefTAUHCvQFBIkHK6AAQAAALQZKqA0HCvQFBJEHK6AAQAAAL8wIBBHwCfAJAIAEgAEE4bGoiACsDGCIDIAArAwgiBERIr7ya8td6PqBkRQRAIAMgBERIr7ya8td6vqBjDQEgACsDECAAKwMAZEUNAQsgAyACKwMIIgahmURIr7ya8td6PmUEQEQAAAAAAADwP0QAAAAAAADwvyACKwMAIAArAxBjGwwCCyAAKwMAIQUgBCAGoZlESK+8mvLXej5lBEBEAAAAAAAA8D9EAAAAAAAA8L8gAisDACAFYxsMAgsgACsDECAFoSAGIAShoiADIAShIAIrAwAgBaGioQwBCyADIAIrAwgiBaGZREivvJry13o+ZQRARAAAAAAAAPA/RAAAAAAAAPC/IAIrAwAgACsDEGMbDAELIAQgBaGZREivvJry13o+ZQRARAAAAAAAAPA/RAAAAAAAAPC/IAIrAwAgACsDAGMbDAELIAArAwAgACsDECIGoSAFIAOhoiAEIAOhIAIrAwAgBqGioQtEAAAAAAAAAABkC54MAg9/BH4CQAJAIAEEQCACRQ0BIAIoAgAiBUE/TARAIAJBCGohB0EAIQMCQANAIANBwABGDQEgA0EUbCADQQFqIQMgB2oiACgCEA0ACyAAIAEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCACIAVBAWo2AgBBAA8LQabaAUHVwAFBoQFBlv4AEAAACyADRQ0CIAAhBSMAQaAEayIGJAACQCACBEAgAQRAIAVBCGohCiACQQhqIQcgAigCBCEMAkADQAJAIARBwABGBEAgBSABKQIANwKICiAFQZgKaiABKAIQNgIAIAVBkApqIAEpAgg3AgAgBSAKKQIANwKcCiAFQaQKaiAKKQIINwIAIAVBnApqIQBBASEEA0AgBEHBAEYNAiAGQRBqIAAgCiAEQRRsahD8AiAAIAYpAhg3AgggACAGKQIQNwIAIARBAWohBAwACwALIAcgBEEUbCIAaiIJKAIQRQ0CIAAgCmoiACAJKQIANwIAIAAgCSgCEDYCECAAIAkpAgg3AgggBEEBaiEEDAELCyAFIAAQ/QI3A7AKIAIQvQ4gBUIANwPADiAGQgA3AhQgBkEBNgIQIAZBADYCHCAGQX82AhggBUHgDmoiACAGKQIYNwIAIAUgBikCEDcC2A4gBUIANwPoDiAFQfAOakIANwMAIAVB0A5qIAApAwA3AwAgBSAFKQPYDjcDyA4gBUG8DGohCyAFQdgOaiEQIAVByA5qIREgBUHADmohDSAFQbgKaiEOQQAhBANAIARBwQBHBEAgCyAEQQJ0IgBqQQA2AgAgACAOakF/NgIAIARBAWohBAwBCwtBACEEAkACQAJAA0AgBEHBAEYEQAJAQQAhAEEAIQcDQCAAQcAARwRAIAogAEEUbGohEiAGQRBqIABBA3RqIQkgAEEBaiIBIQQDQCAEQcEARgRAIAEhAAwDBSAGIBIgCiAEQRRsahD8AiAGEP0CIAkpAwAgBkEQaiAEQQN0aikDAHx9IhMgFCATIBRWIg8bIRQgACAHIA8bIQcgBCAIIA8bIQggBEEBaiEEDAELAAsACwtBACEAIAUgB0EAEOIFIAUgCEEBEOIFQQAhBwNAAkAgBSgCxA4iCCAFKALADiIEaiEBIARBwABKIAhBwABKciABQcAASnINAEIAIRRBACEIQQAhBANAIARBwQBGBEAgBSAHIAAQ4gUMAwUgCyAEQQJ0aigCAEUEQCAGQRBqIgkgCiAEQRRsaiIBIBEQ/AIgCRD9AiEWIAUpA+gOIRMgBiABIBAQ/AIgBiAGKQIINwMYIAYgBikCADcDECAJEP0CIAUpA/AOfSIVIBYgE30iE1QhAQJAIBUgE30gEyAVfSATIBVUGyITIBRYIAhxRQRAIBMhFCABIQAgBCEHDAELIBMgFFINACAEIAcgDSABQQJ0aigCACANIABBAnRqKAIASCIJGyEHIAEgACAJGyEAC0EBIQgLIARBAWohBAwBCwALAAsLIAFBwABMBEAgBEHAAEohAEEAIQQDQCAEQcEARwRAIAsgBEECdGooAgBFBEAgBSAEIAAQ4gULIARBAWohBAwBCwsgBSgCxA4hCCAFKALADiEECyAEIAhqQcEARw0AIAQgCHJBAEgNAyADEIkIIgE2AgAgAiAMNgIEIAEgDDYCBEEAIQQDQCAEQcEARwRAIA4gBEECdGooAgAiAEECTw0GIAUgCiAEQRRsaiABIAIgABtBABC3BBogBEEBaiEEDAELCyADKAIAKAIAIAIoAgBqQcEARw0FIAZBoARqJAAMCQsFIAZBEGogBEEDdGogCiAEQRRsahD9AjcDACAEQQFqIQQMAQsLQd6LA0HovAFBswFB9OAAEAAAC0HvlQNB6LwBQbUBQfTgABAAAAtBiooDQei8AUGIAkGFNBAAAAtBtosDQei8AUHFAEH0ogEQAAALQaGqAUHovAFB3ABB7jIQAAALQeTCAUHovAFBJkH0ogEQAAALQbvuAEHovAFBJUH0ogEQAAALQQEPC0HkwgFB1cABQZUBQZb+ABAAAAtBu+4AQdXAAUGWAUGW/gAQAAALQfcWQdXAAUGkAUGW/gAQAAAL1gYBC38jAEEwayIFJAAgAS0AACIBQQRxIQogAUEIcSELIAFBAXEhCSABQQJxIQwDQCAAIgYtAAAiAwRAIAchCCADwCEHIAZBAWohAAJ/AkACQAJAAkACQAJAIANBPGsOAwEEAgALIANBLUYNAiADQSZHDQMCQCAJDQAgAC0AACIEQTtGDQAgACEBAkAgBEEjRgRAIAYtAAJBIHJB+ABHBEAgBkECaiEBA0AgASwAACEEIAFBAWohASAEQTBrQQpJDQALDAILIAZBA2ohAQNAAkAgAS0AACIEwEEwa0EKSQ0AIARB/wFxIg1B4QBrQQZJDQAgDUHBAGtBBUsNAwsgAUEBaiEBDAALAAsDQCABLQAAIQQgAUEBaiEBIARB3wFxwEHBAGtBGkkNAAsLIARB/wFxQTtGDQQLIAJBrN4BEBkMBQsgAkGi3gEQGQwECyACQafeARAZDAMLIAxFDQEgAkG93gEQGQwCCyAIQf8BcUEgRyAHQSBHckUEQCAKRQ0BIAJBz94BEBkMAgsCQAJAAkACQCADQQprDgQBAwMCAAsgA0EnRwRAIANBIkcNAyACQZveARAZDAULIAJBt94BEBkMBAsgCUUNAiACQdbeARAZDAMLIAlFDQEgAkHJ3gEQGQwCCyALRSAHQQBOcg0AAn9BAiADQeABcUHAAUYNABpBAyADQfABcUHgAUYNABogA0H4AXFB8AFGQQJ0CyIIRSEEQQEhAQNAIARBAXEiA0UgASAISXEEQCABIAZqLQAARSEEIAFBAWohAQwBBSADRQRAIAUCfwJAAkACQAJAIAhBAmsOAwMAAQILIAYtAAJBP3EgBi0AAUE/cUEGdHIgB0EPcUEMdHIMAwsgBi0AA0E/cSAGLQACQT9xQQZ0ciAGLQABQT9xQQx0ciAHQQdxQRJ0cgwCCyAFQZ8BNgIEIAVB6r0BNgIAQYjzCCgCAEGtvgQgBRAdGhBuAAsgAC0AAEE/cSAHQR9xQQZ0cgs2AhAgBUEjaiIBQQ1BlN4BIAVBEGoQugEaIAAgCGpBAWshACACIAEQGQwECwsLQbDiBEEtQQFBiPMIKAIAEEoaECYACyAFQQA6ACQgBSAHOgAjIAIgBUEjahAZC0EATg0BCwsgBUEwaiQAC1QBAXwgACgCECIAIABBKEEgIAEbaisDAEQAAAAAAABSQKJEAAAAAAAA4D+iIgI5A1ggACACOQNgIAAgAEEgQSggARtqKwMARAAAAAAAAFJAojkDUAvQAQECfyMAQSBrIgEkACABQgA3AxAgAUIANwMIA0AgASAAQQFqNgIcIAAtAAAiAARAAkACQCAAQSZHDQAgAUEcahDCDiIADQBBJiEADAELIABB/gBNDQAgAEH+D00EQCABQQhqIABBBnZBQHIQngEgAEE/cUGAf3IhAAwBCyABQQhqIgIgAEEMdkFgchCeASACIABBBnZBP3FBgH9yEJ4BIABBP3FBgH9yIQALIAFBCGogAMAQngEgASgCHCEADAELCyABQQhqELEDIAFBIGokAAswACABECsgASACQQBBARBgIgFByyhBuAFBARAxGiAAIAEQ1wUgASgCEEEBOgBxIAELsggBFH8jAEEgayIIJAACQCAABEBBsNoKKAIAIhEoAhAiBCgC6AEhCwNAAkAgBCgC7AEgC0oEQCALQQZ0IhIgBCgCxAFqIgEtADFBAUYEQCABKAI0IQYMAgsgASgCBCEPIAAQ4A5BACEFQQAhBkEAIQkDQCARKAIQIgQoAsQBIBJqIgIoAgAiAyAJTARAQQAhASADQQAgA0EAShshBQNAIAEgBUYEQAJAQQAhASACQUBrKAIAIgVBACAFQQBKGyEFA0AgASAFRg0BIAIoAkQgAUECdGooAgAoAhAiAy0AoQFBAUYEQCAIIAMpAsABNwMQIAhBEGpBfxCCDiAGaiEGCyABQQFqIQEMAAsACwUgAigCBCABQQJ0aigCACgCECIDLQChAUEBRgRAIAggAykCyAE3AxggCEEYakEBEIIOIAZqIQYLIAFBAWohAQwBCwsgAkEBOgAxIAIgBjYCNAwDCwJAIAVBAEwNACAPIAlBAnRqIQNBACEEA0AgAygCACgCECgCyAEgBEECdGooAgAiAkUNASAFIAJBUEEAIAIoAgBBA3FBAkcbaigCKCgCECgC+AEiASABIAVIGyEHA0AgASAHRwRAIAFBAWoiASAAKAIISQR/IAAgARDaBSACKAIQLgGaAWwFQQALIAZqIQYMAQsLIARBAWohBAwACwALIA8gCUECdGohE0EAIQwCQANAIBMoAgAoAhAoAsgBIAxBAnRqKAIAIg0EQAJAIAAoAggiASANQVBBACANKAIAQQNxQQJHG2ooAigoAhAoAvgBIgJLDQAgAkEBaiIOIAFLBEADQCABIA5PDQICQCAAKAIMIgMgAUcEQCAAKAIEIQQgACgCACEHDAELIAFBAXRBASABGyIDQf////8DSwRAQcQAIQAMDQsgACgCACADQQJ0EDYiB0UEQEEwIQAMDQsgByAAKAIMIgpBAnRqQQAgAyAKa0ECdBAwGiAKIAAoAggiASAAKAIEIgRqSQRAIARBAnQhFCAHIAMgCiAEayIKayIEQQJ0aiAHIBRqIApBAnQQVBogACAENgIECyAAIAM2AgwgACAHNgIACyAHIAEgBGogA3BBAnRqQQA2AgAgACABQQFqIgE2AggMAAsACyABIA5NDQADQCABIA5NDQEgACABQQFrENoFGiAAIAAoAghBAWsiATYCCAwACwALIAAgAhDaBSEBIAIgACgCCE8NAiACIAUgAiAFShshBSAAKAIAIAAoAgQgAmogACgCDHBBAnRqIAEgDSgCEC4BmgFqNgIAIAxBAWohDAwBCwsgCUEBaiEJDAELC0G/swNB2/8AQRVB4iEQAAALIAhBIGokACAQDwsgC0EBaiELIAYgEGohEAwACwALQYPTAUHEuwFBoAxBwSsQAAALIAggABB6NgIAQYjzCCgCAEGSgQQgCBAdGhAmAAufDAIIfwh8IwBBMGsiBiQAAkAgAQRAIAErAxAhDiABKwMAIREgBiABKwMIIhUgASsDGCIToEQAAAAAAADgP6IiEjkDKCAGIBEgDqBEAAAAAAAA4D+iIhQ5AyAMAQsgBkIANwMoIAZCADcDICAAECshByAAKAIQIggrA1giDyAIKwNQRAAAAAAAAOA/oiIQIAcoAhAtAHRBAXEiBxshEyAQIA8gBxshDiAPmiIPIBCaIhAgBxshFSAQIA8gBxshEQsgAUEARyENIA4gExAlIRBBASELRAAAAAAAAAAAIQ8CQAJAIANFDQAgAy0AACIMRQ0AIBBEAAAAAAAAEECiIRBBACEIQQAhBwJAAn8CQAJAAkACQAJAAkACQAJAIAxB3wBrDgcEBwcHCwcBAAsgDEHzAGsOBQEGBgYCBAsgAy0AAQ0FAkAgBQRAIAZBIGogBSASIBAQ/wIMAQsgBiAOOQMgCyAEQQJxIQdBASEJDAcLIAYgFTkDKCADLQABIgNB9wBHBEAgA0HlAEcEQCADDQUgBQRAIAZBIGogBSAQmiAUEP8CC0EBIQkgBEEBcSEHRBgtRFT7Ifm/IQ8MCAsCQCAFBEAgBkEgaiAFIBCaIBAQ/wIMAQsgBiAOOQMgCyAEQQNxIQdBASEJRBgtRFT7Iem/IQ8MBwsCQCAFBEAgBkEgaiAFIBCaIg4gDhD/AgwBCyAGIBE5AyALIARBCXEhB0EBIQlE0iEzf3zZAsAhDwwGCyADLQABDQMCQCAFBEAgBkEgaiAFIBIgEJoQ/wIMAQsgBiAROQMgCyAEQQhxIQdBASEJRBgtRFT7IQlAIQ8MBQtBASEKIAQMAwsgDEHuAEcNASAGIBM5AyggAy0AASIDQfcARwRAIANB5QBHBEAgAw0CIAUEQCAGQSBqIAUgECAUEP8CCyAEQQRxIQdBASEJRBgtRFT7Ifk/IQ8MBQsCQCAFBEAgBkEgaiAFIBAgEBD/AgwBCyAGIA45AyALIARBBnEhB0EBIQlEGC1EVPsh6T8hDwwECwJAIAUEQCAGQSBqIAUgECAQmhD/AgwBCyAGIBE5AyALIARBDHEhB0EBIQlE0iEzf3zZAkAhDwwDCyAGIBI5AygLQQEhCEEACyEHDAILQQAhC0EBIQ0MAQtBACEIQQAhBwsgABArKAIQKAJ0IQMgBiAGKQMoNwMIIAYgBikDIDcDACAGQRBqIAYgA0EDcUHaAGwQtw8gBiAGKQMYNwMoIAYgBikDEDcDIAJAIAoNAAJAAkACQCAAECsoAhAoAnRBA3FBAWsOAwEAAgMLAkACQCAHQQFrDgQBBAQABAtBASEHDAMLQQQhBwwCCyAHQQFrIgNB/wFxIgRBCE9BiwEgBHZBAXFFcg0BQoiCiJCgwICBBCADQQN0rUL4AYOIpyEHDAELIAdBAWsiA0H/AXEiBEEIT0GLASAEdkEBcUVyDQBCiIiIkKDAgIEBIANBA3StQvgBg4inIQcLIAIgATYCGCACIAc6ACEgAiAGKQMgNwMAIAIgBikDKDcDCCAPIQ4CQAJAAkACQCAAECsoAhAoAnRBA3FBAWsOAwEAAgMLIA+aIQ4MAgsgD0QYLURU+yH5v6AhDgwBCyAPRBgtRFT7IQlAYQRARBgtRFT7Ifm/IQ4MAQsgD0TSITN/fNkCQGEEQEQYLURU+yHpvyEODAELRBgtRFT7Ifk/IQ4gD0QYLURU+yH5P2EEQEQAAAAAAAAAACEODAELIA9EAAAAAAAAAABhDQAgD0QYLURU+yHpv2EEQETSITN/fNkCQCEODAELIA8iDkQYLURU+yH5v2INAEQYLURU+yEJQCEOCyACIA45AxAgBisDKCEOAn8gBisDICIPRAAAAAAAAAAAYQRAQYABIA5EAAAAAAAAAABhDQEaCyAOIA8QpgFE0iEzf3zZEkCgIg5EGC1EVPshGcCgIA4gDkQYLURU+yEZQGYbRAAAAAAAAHBAokQYLURU+yEZQKMiDplEAAAAAAAA4EFjBEAgDqoMAQtBgICAgHgLIQEgAiAJOgAdIAIgAToAICACIAo6AB8gAiALOgAeIAIgDToAHCAGQTBqJAAgCAsLACAAIAFBARD1Dgu4AgIEfwN8IwBBgAFrIgEkACABIAAoAlA2AnBBiPMIKAIAIgNBy9gEIAFB8ABqEB0aA0AgACgCUCACTQRAIAArAwAhBSAAKwMIIQYgAC0AHSECIAEgACsDEDkDYCABQfSvAUHwrwEgAhs2AmggASAGOQNYIAEgBTkDUCADQfWBBCABQdAAahAtIAArAyghBSAAKwMwIQYgAC0ARSECIAFBQGsgACsDODkDACABQfSvAUHwrwEgAhs2AkggASAGOQM4IAEgBTkDMCADQaiCBCABQTBqEC0gAUGAAWokAAUgACgCVCACQQV0aiIEKwMAIQUgBCsDCCEGIAQrAxAhByABIAQrAxg5AyAgASAHOQMYIAEgBjkDECABIAU5AwggASACNgIAIANB1+8EIAEQLSACQQFqIQIMAQsLCwsAIAAgAUEAEPUOCxoBAX8Q6wMhAEH7hgstAABB8IYLKAIAIAAbCyAAIAAgASACIABBuYsBECMiAAR/IAAQhwIFQR4LEJAPC0oAIAAoAhBBwAFqIQADQCAAKAIAIgAEQCAAKAIQKAKYAhAXIAAoAhAoAqACEBcgACgCECIAQQA2ArABIABBuAFqIQAMAQsLEIoPCz8BAn8gACgCECgCqAIhAANAIAAiASgCDCIARSAAIAFGckUEQCAAKAIMIgJFDQEgASACNgIMIAIhAAwBCwsgAQt4AQR/IwBBEGsiBiQAA0AgBCgCACIHBEAgBCgCBCEIIARBCGohBCAAAn8gByACIANBCEH9ARDgAyIJBEAgASAIIAkoAgQRAAAgACgCIHIMAQsgBiAFNgIEIAYgBzYCAEHCtwQgBhAnQQELNgIgDAELCyAGQRBqJAALswMCA38CfAJAIABBzPMAECMiAUUNACABLQAARQ0AIAAoAkgoAhAiAiACLQBxQQhyOgBxIAAgASABEKsCQQBHQQF0IAAgAEEAQbCLAUEAECBEAAAAAAAALEBEAAAAAAAA8D8QUCAAIABBAEHhmwFBABAgQdfsABCKASAAIABBAEHDOUEAECBBj/gAEIoBEIIDIQEgACgCECABNgIMIABBgLUBECMhAQJ/AkACQCAAEDQgAEcEQCABRQ0CIAEtAABB4gBGDQEMAgsgAUUNACABLQAAQfQARg0BC0EADAELQQELIQECQCAAQfgYECMiAkUNACACLQAAIgJB8gBHBEAgAkHsAEcNASABQQJyIQEMAQsgAUEEciEBCyAAKAIQIAE6AJMCIAAQNCAARg0AIAAoAhAoAgwiASsDIEQAAAAAAAAgQKAhBCABKwMYRAAAAAAAADBAoCEFIAAQNCAAKAIQIgBBMGohASAALQCTAiECKAIQLQB0QQFxRQRAIAEgAkEFdEEgcWoiACAEOQMIIAAgBTkDAA8LIAFBEEEwIAJBAXEbIgJqIAQ5AwAgACACaiAFOQM4CwuvAQEDfwJ/IAEQNCIBKAIQLQBzQQFGBEAgABC6BAwBCyAAIAEQjQgLIgAiAyEBA0BBACECAkACQANAIAEtAAAiBEUNASABQQFqIQEgAkEBcQRAQQohAgJAAkACQCAEQewAaw4HAgECAQEBAAELQQ0hAgwBCyAEIQILIAMgAjoAAAwDC0EBIQIgBEHcAEYNAAsgAyAEOgAADAELIANBADoAACAADwsgA0EBaiEDDAALAAu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQjQIhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALGAAgACgCACAAKAKgASAAKAKcASABELoPC8hOAhZ/DnwjAEGwEWsiAiQAIAJB+AlqIAApAJgCNwMAIAJB8AlqIAApAJACNwMAIAJB6AlqIAApAIgCNwMAIAIgACkAgAI3A+AJAkACQAJAIAEoAhAiBCgCCCIDRQ0AIAMrABggAisD4AlmRQ0AIAIrA/AJIAMrAAhmRQ0AIAMrACAgAisD6AlmRQ0AIAIrA/gJIAMrABBmDQELIAQoAmAiAwR/IAIgAkH4CWopAwA3A6gDIAIgAkHwCWopAwA3A6ADIAIgAkHoCWopAwA3A5gDIAIgAikD4Ak3A5ADIAMgAkGQA2oQwA4NASABKAIQBSAECygCbCIDRQ0BIAMtAFFBAUcNASACIAJB+AlqKQMANwOIAyACIAJB8AlqKQMANwOAAyACIAJB6AlqKQMANwP4AiACIAIpA+AJNwPwAiADIAJB8AJqEMAORQ0BCwJAIAAoApwBQQJIDQAgACABQZCFCygCAEGjgQUQeSIDEMkEDQAgAy0AAA0BIAFBKGohBANAQTAhA0EDIQgCQAJAIAUOAwEABAALQVAhA0ECIQgLIAQgA0EAIAEoAgBBA3EgCEcbaigCAEG4hAsoAgBBo4EFEHkiAy0AAEUNASAFQQFqIQUgACADEMkERQ0ACwsgAkIANwO4AyACQgA3A7ADIAJBsANqIgQgAUEwQQAgASgCAEEDcUEDRxtqKAIoEB8Q9AMgBEGC3gFB/ZsDIAEgAUEwayIDIAEoAgBBA3FBAkYbKAIoECsQ+gEbEPQDIAQgASADIAEoAgBBA3FBAkYbKAIoEB8Q9AMgACAEEPIDEPgDIAQQZyABQZSFCygCAEGjgQUQeSIDLQAABEAgACADEPgDCwJAIAFB/IQLKAIAQaOBBRB5IgMtAAAiE0UNACADEPEDGkHAgAshDkHAgAshBQNAIAUoAgAiA0UNASAFQQRqIQUgA0G5MBBHRQ0ACwwBCyAAKAKYASEUIAAQ0AQiB0EJNgIMIAcgATYCCCAHQQM2AgQCQCABKAIQKAJgIgNFDQAgAy0AUg0AIAFBgLABECMQakUNACAHIAcvAYwCQYAEcjsBjAILAkAgE0UNACABKAIQKAIIRQ0AIAAgDhDbAQsCQEHIhQsoAgAiA0UNACABIAMQPiIDRQ0AIAMtAABFDQAgACABQciFCygCAEQAAAAAAADwP0QAAAAAAAAAABBQEP4BCwJAIBRBgICACHFFDQAgASABQTBqIgMgASgCAEEDcUEDRhsoAigQKygCEC8BsgFBA08EQCAHAn8gASADIAEoAgBBA3FBA0YbKAIoKAIQKAKUASsDEEQAAAAAAABSQKIiGEQAAAAAAADgP0QAAAAAAADgvyAYRAAAAAAAAAAAZhugIhiZRAAAAAAAAOBBYwRAIBiqDAELQYCAgIB4C7c5A7gBIAcCfyABQVBBACABKAIAQQNxQQJHG2ooAigoAhAoApQBKwMQRAAAAAAAAFJAoiIYRAAAAAAAAOA/RAAAAAAAAOC/IBhEAAAAAAAAAABmG6AiGJlEAAAAAAAA4EFjBEAgGKoMAQtBgICAgHgLtzkDwAEMAQsgB0IANwO4ASAHQgA3A8ABCwJAIBRBgIACcUUNAAJAIAEoAhAiBCgCYCIDRQRAIAcoAsgBIQMMAQsgByADKAIAIgM2AsgBCyAHIAM2AtQBIAcgAzYCzAEgByADNgLQASAEKAJsIgMEQCAHIAMoAgA2AswBCyAEKAJoIgMEQCAHIAMoAgA2AtABCyAEKAJkIgNFDQAgByADKAIANgLUAQtBACEFQQAhAwJAIBRBgIAEcUUNACACQegJakIANwMAIAJCADcD4AkgByAAIAEgAkHgCWoiAxDJCCABEIABNgLcASADEGcCQAJAIAFBwIkBECMiCARAIAgtAAANAQtBACEDIAFBrNEBECMiCEUNASAILQAARQ0BCyAIIAEQgAEhAwsCQCAHAn8CQAJAIAFBs4kBECMiCARAIAgtAAANAQsgAUGg0QEQIyIIRQ0BIAgtAABFDQELIAggARCAAQwBCyADRQ0BIAMQYgs2AtgBCwJAIAcCfwJAAkAgAUGpiQEQIyIIBEAgCC0AAA0BCyABQZfRARAjIghFDQEgCC0AAEUNAQsgCCABEIABDAELIANFDQEgAxBiCzYC4AELAkACQAJAIAFBoIkBECMiCARAIAgtAAANAQsgAUGP0QEQIyIIRQ0BIAgtAABFDQELIAcgCCABEIABNgLkASAHIAcvAYwCQYABcjsBjAIMAQsgA0UNACAHIAMQYjYC5AELAkACQCABQbyJARAjIggEQCAILQAADQELIAFBqNEBECMiCEUNASAILQAARQ0BCyAHIAggARCAATYC6AEgByAHLwGMAkGAAnI7AYwCDAELIANFDQAgByADEGI2AugBCwJAIBRBgICABHFFDQACQCABQeAiECMiBEUNACAELQAARQ0AIAQgARCAASEFCwJAIAcCfwJAIAFB0SIQIyIERQ0AIAQtAABFDQAgByAHLwGMAkHAAHI7AYwCIAQgARCAAQwBCyAFRQ0BIAUQYgs2AvwBCwJAIAcCfwJAIAFBxSIQIyIERQ0AIAQtAABFDQAgBCABEIABDAELIAVFDQEgBRBiCzYCgAILAkACQCABQboiECMiBEUNACAELQAARQ0AIAcgBCABEIABNgKEAiAHIAcvAYwCQRByOwGMAgwBCyAFRQ0AIAcgBRBiNgKEAgsgBwJ/AkAgAUHcIhAjIgRFDQAgBC0AAEUNACAHIAcvAYwCQSByOwGMAiAEIAEQgAEMAQsgBUUEQEEAIQUMAgsgBRBiCzYCiAILAkAgFEGAgIACcUUNAAJAAkACQCABQZDdABAjIggEQCAILQAADQELIAFBgN0AECMiCEUNASAILQAARQ0BCyAHIAggARDHBCIEIAEQgAE2AuwBIAQQFyAHIAcvAYwCQQFyOwGMAgwBCyAHKALIASIERQ0AIAcgBBBiNgLsAQsCQAJAIAFB89wAECMiBEUNACAELQAARQ0AIAcgBCABEMcEIgQgARCAATYC8AEgBBAXIAcgBy8BjAJBCHI7AYwCDAELIAcoAsgBIgRFDQAgByAEEGI2AvABCwJAAkAgAUHn3AAQIyIERQ0AIAQtAABFDQAgByAEIAEQxwQiBCABEIABNgL0ASAEEBcgByAHLwGMAkECcjsBjAIMAQsgBygC0AEiBEUNACAHIAQQYjYC9AELAkAgAUGM3QAQIyIERQ0AIAQtAABFDQAgByAEIAEQxwQiBCABEIABNgL4ASAEEBcgByAHLwGMAkEEcjsBjAIMAQsgBygC1AEiBEUNACAHIAQQYjYC+AELIAMQFyAFEBcCQAJAAkACQAJAAkACQAJAIBRBgICEAnFFDQAgASgCECgCCCIWRQ0AAkAgBygC2AFFBEAgBygC7AFFDQIgFEGAgCBxDQEMAgsgFEGAgCBxRQ0BCyAWKAIEIQkgACgCECsDoAEgAkGIEWpCADcDACACQgA3A4ARRAAAAAAAAOA/okQAAAAAAAAAQBAlIR9BACEIAkADQAJAIAkgFUYEQCAUQYDAAHENA0EAIQNBACEFDAELIBYoAgBBGBDPBCIEQQE2AhAgFUEwbGoiFygCBEEBa0EDbiELQQAhCiAEIQNBACEGA0AgBiALRgRAIAQhA0EAIQUCQANAIAMiBgRAIAVBBHQiAyACQcADamohDCACQeAJaiADaiEPIAYrAwghHiAGKwMAIRkgBigCECEDAkAgCgRAIAorAwghGCAKKwMAIR0gAwRAIAMrAwghGyADKwMAIRwMAgsgHiAeoCAYoSEbIBkgGaAgHaEhHAwBCyAeIB6gIAMrAwgiG6EhGCAZIBmgIAMrAwAiHKEhHQsgGyAeoSAcIBmhEKYBIRogDyAeIB8gGCAeoSAdIBmhEKYBIhggGiAYoSIYRBgtRFT7IRnAoCAYIBhEAAAAAAAAAABkG0QAAAAAAADgP6KgIhgQU6IiGqA5AwggDyAZIB8gGBBBoiIYoDkDACAMIB4gGqE5AwggDCAZIBihOQMAIAVBAWohBSADBEAgBiEKIAVBMkcNAgsCQCAIIBJHDQAgEkEBdEEBIBIbIghB/////wNLBEBBxAAhBQwECyARIAhBAnQQNiIRRQRAQTAhBQwECyARIBJBAnRqQQAgCCASa0ECdBAwGiAQIBJqIBJNDQAgEEECdCENIBEgCCASIBBrIgprIhBBAnRqIA0gEWogCkECdBBUGgsgESAQIBJqIAhwQQJ0aiAFQQF0NgIAQQAhCwNAIAUgC0YEQCACQcADaiAFQQR0aiENQQAhCwNAIAUgC0cEQCACIA0gC0F/c0EEdGoiCikDCDcD2AIgAiAKKQMANwPQAiALQQFqIQsgAkGAEWogAkHQAmoQkAEMAQsLIAIgDykDADcD4AkgAiAPKQMINwPoCSACIAwpAwA3A8ADIAIgDCkDCDcDyANBASEFIBJBAWohEiAGIQoMAwUgAiACQeAJaiALQQR0aiIKKQMINwPoAiACIAopAwA3A+ACIAtBAWohCyACQYARaiACQeACahCQAQwBCwALAAsLA0AgBARAIAQoAhAgBBAXIQQMAQsLIBVBAWohFQwECyACIAUQejYCwAJBiPMIKAIAQZKBBCACQcACahAdGhAmAAsgFygCACAGQTBsaiEMQQAhBQNAIAVBBEYEQCAGQQFqIQYgAkGAEGogAxDBCCEDDAIFIAVBBHQiDSACQYAQamoiDyAMIA1qIg0pAwA3AwAgDyANKQMINwMIIAVBAWohBQwBCwALAAsACwsDQCAFIBJHBEAgESAFIBBqIAhwQQJ0aigCACADaiEDIAVBAWohBQwBCwsgACACQYARaiIEEMAIIAQQwAggAxCRAhoLIAJBgBFqEMAIIQMgB0ECNgKQAiAHIAM2AqQCIAIoAoARIQ0gAigCjBEhAyACKAKEESEKA0AgCgRAIANFDQYgAkHoCWoiBCANKQMINwMAIAIgDSkDADcD4AkgAyEFA0AgBQRAIAIgDSAFQQFrIgVBBHRqIgYpAwg3A8gDIAIgBikDADcDwAMgBiAEKQMANwMIIAYgAikD4Ak3AwAgBCACKQPIAzcDACACIAIpA8ADNwPgCQwBBSAKQQFrIQoMAwsACwALCyACKAKIESADSw0DIAJBiBFqQgA3AwAgAkIANwOAESAHIA02ApgCIBJFDQIgESAQIAhwQQJ0aigCACEDIAcgEjYCnAIgByADNgKUAgNAIBAEQCARKAIAIQMgCCEFA0AgBQRAIBEgBUEBayIFQQJ0aiIGKAIAIAYgAzYCACEDDAEFIBBBAWshEAwDCwALAAsLIAggEkkNASAHIBE2AqACCwJAIAAoAjwiA0UNACADKAJAIgNFDQAgACADEQEACwJAIAcoAtgBIgNFBEAgBy0AjAJBAXFFDQELIAAgAyAHKALsASAHKAL8ASAHKALcARC9AQsgACgCECsDoAEhHyACQdAQakIANwMAIAJCADcDyBAgAUG+mwEQIxDNAiEXIAEoAhAoAghFDQZBACELIAFBiIULKAIARAAAAAAAAPA/RAAAAAAAAAAAEFAhICABQdyECygCAEGjgQUQeSEGQQAhBAJAIBNFDQAgDiEFA0AgBSgCACIDQQBHIQQgA0UNASAFQQRqIQUgA0HzrgEQR0UNAAsLIAYhBUEAIQgCQANAAkACQAJAAkACQCAFLQAAIgNBOmsOAgECAAsgAw0CIAtFIAhFcg0LIAYgAkHwEGoQhAYiBkECSQ0DIAEgAUEwaiIFIAEoAgBBA3FBA0YbKAIoECsgASAFIAEoAgBBA3FBA0YbKAIoEB8hBRD6ASEDIAIgAUFQQQAgASgCAEEDcUECRxtqKAIoEB82ArgCIAJBqsoDQZrMAyADGzYCtAIgAiAFNgKwAkH97wMgAkGwAmoQfCAGQQJHDQUMCgsgCEEBaiEIDAELIAtBAWohCwsgBUEBaiEFDAELCyAGQQFGDQULIAJBgApqIQwgAkHwCWohDyACKAL4ECENQQAhA0EAIQYDQAJAAkAgASgCECgCCCIEKAIEIAZLBEAgAkHgCWogBCgCACAGQTBsakEwEB4aQQAhBUEBIQhEAAAAAAAA8D8hGyADIQQDQCAFIA1GDQIgAkHYEGogAkHwEGogBRC0AiACKALYECIDRQ0CIAIrA+AQIhiZRPFo44i1+OQ+Y0UEQCAAIAMQQiAbIBihIRsCQAJAAkAgCARAIAJB4AlqIBggAkGAEGogAkGAEWoQvg9BACEIIAAgAigCgBAiBCACKAKEEEEAEP8BIAQQFyAbmUTxaOOItfjkPmMNAQwDCyAbmUTxaOOItfjkPmMEQCAAIAIoAoARIgUgAigChBFBABD/AQwCCyACQcADaiIKIAJBgBFqIgRBMBAeGiAKIBggGCAboKMgAkGAEGogBBC+DyACKALAAxAXQQAhCCAAIAIoAoAQIgQgAigChBBBABD/ASAEEBcMAgsgAigCgBEhBQsgBRAXDAULIAMhBAsgBUEBaiEFDAALAAsgAkHwEGoQzAQMCQsgBCEDCyACKALoCQRAIAAgAkHwEGoiBBDvAygCABBCIAAgBBDvAygCABBcIAIgDykDCDcDqAIgAiAPKQMANwOgAiACIAIoAuAJIgQpAwg3A5gCIAIgBCkDADcDkAIgAEECIAJBoAJqIAJBkAJqICAgHyACKALoCRDPAgsgAigC7AkiBQRAIAAgAxBCIAAgAxBcIAIgDCkDCDcDiAIgAiAMKQMANwOAAiACIAIoAuAJIAIoAuQJQQR0akEQayIEKQMINwP4ASACIAQpAwA3A/ABIABBAyACQYACaiACQfABaiAgIB8gBRDPAgsCQCATRSABKAIQKAIIKAIEQQJJcg0AIAIoAugJIAIoAuwJckUNACAAIA4Q2wELIAZBAWohBgwACwALQd2gA0GtuwFBrgZBzLYBEAAAC0GQngNBrbsBQa4GQdoeEAAAC0GYnwNBrbsBQZEGQfC1ARAAAAtBp5IDQa27AUGRBkHwtQEQAAALQY/4ACEGCwJAAkACfyABKAIQLQB0IgNBAXEEQEHHjQMhC0HbuAEMAQsgA0ECcQRAQZyPAyELQdDmAQwBCyADQQhxBEBBzowDIQtBxowDDAELIANBBHFFDQFBxY8DIQtByOYBCyEKIAJByBBqIAsQ9AMgBiEFA0ACQCAFLQAAIgNBOkcEQCADDQEgAkHIEGoQ8gMiAyAGRg0EIAAgAxBCDAQLIAIgCzYC4AEgAkHIEGpBizYgAkHgAWoQ8wMLIAVBAWohBQwACwALIAFB4IQLKAIAIAYQigEhCiAGIQMLIAYgCkcEQCAAIAoQXAsCQAJAIAQEQCAKLQAAIQ0gAy0AACEEIABBvh8QQiAAIANBj/gAIAQbIg8QXCACQeAJaiIEIAEoAhAoAggoAgBBMBAeGiACQcADaiELAn8CQEH4hAsoAgAiA0UNACABIAMQPiIDLQAARQ0AQfYBIANByaUBEEcNARpB9wEgA0HZ+AAQRw0BGkH4ASADQcv6ABBHDQEaIANB7pkBEEdFDQBB+QEMAQtB9gFB+QEgAUFQQQAgASgCAEEDcUECRxtqKAIoECsQ+gEbCyEIRAAAAAAAAAAAIRkjAEGwAWsiCSQAIAlCADcDKCAJQgA3AyAgBCgCBCEOIAkgBCgCACIMIgEpAwg3AxggCSAMKQMANwMQIAlBIGogCUEQakQAAAAAAAAAABDbDiAJIAEpAwg3A6gBIAkgDCkDADcDoAFBACEBA0AgDiABQQNqIgNLBEAgCSAJKQOgATcDcCAJIAkpA6gBNwN4IAwgAUEEdGohBkEBIQEDQCABQQRGBEBBASEBIAkrA3ghGyAJKwNwIRwDQCABQRVGBEAgAyEBDAUFIAlBMGogCUHwAGogAbhEAAAAAAAANECjQQBBABCrASAJKwM4IRogCSsDMCEYIAkgCSkDODcDCCAJIAkpAzA3AwAgCUEgaiAJIBkgHCAYoSAbIBqhEE6gIhkQ2w4gAUEBaiEBIBohGyAYIRwMAQsACwAFIAFBBHQiBCAJQfAAamoiBSAEIAZqIgQpAwA3AwAgBSAEKQMINwMIIAFBAWohAQwBCwALAAsLIAkoAiAhDCAJKAIsIQMgCSgCJCEEIAkoAighDgJAAkADQCAEBEAgA0UNAiAJQfAAaiAMQcAAEB4aIAMhAQNAIAEEQCAJQTBqIgYgDCABQQFrIgFBBnRqIgVBwAAQHhogBSAJQfAAaiIFQcAAEB4aIAUgBkHAABAeGgwBBSAEQQFrIQQMAwsACwALCyADIA5PBEAgDCAOQQFrIgVBBnRqKwMQISNEAAAAAAAAAAAhG0QAAAAAAAAAACEcRAAAAAAAAAAAIRpBACEERAAAAAAAAAAAIRgDQCAOIAQiAUYEQCALQgA3AgBBACEBA0ACQCABIA5GBEAgGEQYLURU+yEJQKAiGRBTIRggCyAZEEEgGqIgHKAgGCAaoiAboBDoBSAODQFBw5IDQdW8AUGhAkHYOxAAAAsgDCABQQZ0aiIEKwMoIRogBCsDICIYEFMhHSAEKwMIIRsgGBBBIRwgBCsDOCEZIAQtADAgCyAcIBqiIAQrAwAiHKAgGyAdIBqioBDoBUEBcQRAIBwgGkEBIBggGSALENoOCyABQQFqIQEMAQsLIA5BAmshAQNAIAFBf0cEQCAMIAFBBnRqIgQrAyghHSAEKwM4RBgtRFT7IQlAoCIZEFMhGyAEKwMIIRwgGRBBIRggBCsDICEaIAQtADAgCyAYIB2iIAQrAwAiGKAgHCAbIB2ioBDoBUEBcQRAIBggHUEAIBpEGC1EVPshCUCgIBkgCxDaDgsgAUEBayEBDAELCyAMEBcgCUGwAWokAAwEBSAMIAFBAWoiBEEAIAQgDkcbQQZ0aiIDKwMIIAwgAUEGdGoiBisDCCIboSADKwMAIAYrAwAiHKEQ2Q4hGCAMIAFBAWsgBSABG0EGdGoiAysDCCAboSADKwMAIByhENkOISIgBisDECIeICMgHyAIESAAIRoCQAJ/IAFBACABIAVHG0UEQCAiRBgtRFT7Ifm/oCAYRBgtRFT7Ifk/oCABGyEZQQAMAQsgGEQYLURU+yH5P6AhGUQAAAAAAAAAACAaIBggIqEiGEQYLURU+yEZQKAgGCAYRAAAAAAAAAAAYxtEAAAAAAAA4L+iRBgtRFT7Ifk/oCIdEEEiGKMgGEQAAAAAAAAAAGEbIhggGkQAAAAAAAAkQKJkBEAgIkQYLURU+yH5v6AiGEQAAAAAAAAAAGMgGEQYLURU+yEZQGZyBEAgGCAYRBgtRFT7IRlAo5xEGC1EVPshGUCioSEYC0EBIQEgGUQAAAAAAAAAAGMgGUQYLURU+yEZQGZyRQ0CIBkgGUQYLURU+yEZQKOcRBgtRFT7IRlAoqEhGQwCCyAZIB2gIRkgGCEaQQALIQEgGSEYCyAGIBk5AzggBiABOgAwIAYgGjkDKCAGIBg5AyAgBkHsADoAGCAGIB45AxAgBiAbOQMIIAYgHDkDAAwBCwALAAtBoqADQdW8AUHfAEGvtgEQAAALQaeSA0HVvAFB3wBBr7YBEAAACyACKALAAyIBQQBIDQEgACACKALEAyABQQEQQCACKALEAxAXIAAgDxBCIA8gCkGP+AAgDRsiAUcEQCAAIAEQXAsgAigC6AkiAwRAIAIgAkH4CWopAwA3A1ggAiACKQPwCTcDUCACIAIoAuAJIgEpAwg3A0ggAiABKQMANwNAIABBAiACQdAAaiACQUBrICAgHyADEM8CCyACKALsCSIDRQ0DIAIgAkGICmopAwA3AzggAiACKQOACjcDMCACIAIoAuAJIAIoAuQJQQR0akEQayIBKQMINwMoIAIgASkDADcDICAAQQMgAkEwaiACQSBqICAgHyADEM8CDAMLIAEoAhAhBCAIRQ0BIAi4RAAAAAAAAABAoEQAAAAAAADgv6IhIUEAIQogBCgCCCgCBCITQTAQRCEVIBNBMBBEIRYDQCAKIBNGBEAgAxBiIg8hBSADIgQhBkEAIREDQCAFQbPgARC1BSIFBEACQCAFQY/4ACAFLQAAGyIOIANGDQAgDiEDIAEoAhAtAHRBA3ENACAAIAMQQiAAIAMQXAtBACEKA0AgCiATRgRAIAYgDiARGyEGIA4gBCARQQJJGyEEIBFBAWohEUEAIQUMAwsgFiAKQTBsIghqIgUoAgQhCyAIIBVqKAIAIQ0gBSgCACEMQQAhBQNAIAUgC0YEQCAAIAwgC0EAEP8BIApBAWohCgwCBSAMIAVBBHQiCGoiCSAIIA1qIggrAwAgCSsDAKA5AwAgCSAIKwMIIAkrAwigOQMIIAVBAWohBQwBCwALAAsACwsCQCACKALoCSIFRQRAQQAhBAwBCwJAIARFDQAgASgCEC0AdEEDcQ0AIAAgBBBCIAAgBBBcIAIoAugJIQULIAIgAkH4CWopAwA3A5gBIAIgAikD8Ak3A5ABIAIgAigC4AkiAykDCDcDiAEgAiADKQMANwOAASAAQQIgAkGQAWogAkGAAWogICAfIAUQzwILIAIoAuwJIgUEQAJAIAQgBkYNACABKAIQLQB0QQNxDQAgACAGEEIgACAGEFwgAigC7AkhBQsgAiACQYgKaikDADcDeCACIAIpA4AKNwNwIAIgAigC4AkgAigC5AlBBHRqQRBrIgEpAwg3A2ggAiABKQMANwNgIABBAyACQfAAaiACQeAAaiAgIB8gBRDPAgsgDxAXQQAhBQNAIAUgE0YEQCAVEBcgFhAXDAYFIBUgBUEwbCIBaigCABAXIAEgFmooAgAQFyAFQQFqIQUMAQsACwAFIAJB4AlqIApBMGwiBCABKAIQKAIIKAIAakEwEB4aIAQgFWoiBSACKALkCSIGNgIEIAQgFmoiBCAGNgIEIAUgBkEQEEQiEDYCACAEIAIoAuQJQRAQRCIJNgIAIAIoAuQJQQFrIQ4gAigC4AkiCysDCCEbIAsrAwAhHEEAIQUDQCAFIA5JBEAgCyAFQQFqQQR0Ig1qIgQrAwghJCAEKwMAISUCQCAFRQRAIBBEAAAAAAAAAEAgHCAloSIZIBmiIBsgJKEiGiAaoqBELUMc6+I2Gj+gn6MiGCAZmqI5AwggECAaIBiiOQMADAELIBAgBUEEdGoiBEQAAAAAAAAAQCAiICWhIhkgGaIgIyAkoSIaIBqioEQtQxzr4jYaP6CfoyIYIBmaojkDCCAEIBogGKI5AwALIAsgBUEDaiIEQQR0aiIGKwMIIRogBisDACEYIBAgBUECakEEdCIIaiIMRAAAAAAAAABAICUgCCALaiIGKwMAIiKhIh0gJCAGKwMIIiOhIh4QTiIZRC1DHOviNho/YwR8IBwgGKEiHSAdoiAbIBqhIh4gHqKgRC1DHOviNho/oJ8FIBkLoyIZIB2aoiIdOQMIIAwgGSAeoiIZOQMAIA0gEGoiDyAMKQMINwMIIA8gDCkDADcDACAJIAVBBHQiBWoiBiAhIAUgEGoiBSsDAKIgHKA5AwAgBiAhIAUrAwiiIBugOQMIIAkgDWoiBSAhIA8rAwCiICWgOQMAIAUgISAPKwMIoiAkoDkDCCAIIAlqIgUgISAdoiAjoDkDCCAFICEgGaIgIqA5AwAgGCEcIBohGyAEIQUMAQsLIBAgBUEEdCIFaiIERAAAAAAAAABAICIgHKEiGiAaoiAjIBuhIhkgGaKgRC1DHOviNho/oJ+jIhggGpqiIho5AwggBCAZIBiiIhg5AwAgBSAJaiIEICEgGqIgG6A5AwggBCAhIBiiIBygOQMAIApBAWohCgwBCwALAAtBg8oBQa27AUG/EUHLNBAAAAsgBC0AdEEDcUUEQAJAIAMtAAAEQCAAIAMQQgwBCyAAQY/4ABBCIApBj/gAIAotAAAbIQoLIAAgChBcCyACQYAKaiEKIAJB8AlqIQZBACEFA0AgBSABKAIQKAIIIgMoAgRPDQEgAkHgCWogAygCACAFQTBsakEwEB4aIAAgAigC4AkgAigC5AlBABD/ASACKALoCSIEBEAgAiAGKQMINwPYASACIAYpAwA3A9ABIAIgAigC4AkiAykDCDcDyAEgAiADKQMANwPAASAAQQIgAkHQAWogAkHAAWogICAfIAQQzwILIAIoAuwJIgQEQCACIAopAwg3A7gBIAIgCikDADcDsAEgAiACKALgCSACKALkCUEEdGpBEGsiAykDCDcDqAEgAiADKQMANwOgASAAQQMgAkGwAWogAkGgAWogICAfIAQQzwILAkAgE0UgASgCECgCCCgCBEECSXINACACKALoCSACKALsCXJFDQAgACAOENsBCyAFQQFqIQUMAAsACyAXEM0CEBcgFxAXIAJByBBqEGcgACgCECIGKAIIIQUCQCAGKALYAUUEQCAGLQCMAkEBcUUNAQsgABCQAiAGKAKcAiILRQ0AIAYoAqACIgQoAgAhCEEBIQMDQCADIAtPDQEgBiAEIANBAnQiAWooAgA2ApQCIAYgBigCpAIgCEEEdGo2ApgCIAAgBigC2AEgBigC7AEgBigC/AEgBigC3AEQvQEgABCQAiADQQFqIQMgASAGKAKgAiIEaigCACAIaiEIIAYoApwCIQsMAAsACyAGQgA3ApQCIAAgBSgCECIDKAIIIgEEfyAGKALkASEDIAYvAYwCIQQgAiABKAIAIgFBEGogASgCACABKAIIGyIBKQMINwMYIAIgASkDADcDECAAIAJBEGogBEGAAXFBB3YgAyAEQQJxQQF2EL0PIAYoAugBIQMgBi8BjAIhBCACIAUoAhAoAggiASgCACABKAIEQTBsaiIBIAFBMGsoAgAgAUEsaygCAEEEdGogAUEkaygCABtBEGsiASkDCDcDCCACIAEpAwA3AwAgACACIARBgAJxQQh2IAMgBEEEcUECdhC9DyAFKAIQBSADCygCYEELIAYvAYwCQQN2QQFxIAYoAuABIAYoAvABIAYoAoACIAYoAtwBIAVBgIULKAIAQceXARB5EGoEfyAFKAIQKAIIBUEACxD/BSAAIAUoAhAoAmxBCyAGLwGMAkEDdkEBcSAGKALgASAGKALwASAGKAKAAiAGKALcASAFQYCFCygCAEHHlwEQeRBqBH8gBSgCECgCCAVBAAsQ/wUgACAFKAIQKAJkQQcgBi8BjAJBAnZBAXEgBigC6AEgBigC+AEgBigCiAIgBigC3AFBABD/BSAAIAUoAhAoAmhBBiAGLwGMAkEBdkEBcSAGKALkASAGKAL0ASAGKAKEAiAGKALcAUEAEP8FAkAgACgCPCIBRQ0AIAEoAkQiAUUNACAAIAERAQALIAAQzgQLIAJBsBFqJAALmQIBA38jAEHwAGsiAyQAIANCADcDaCADQgA3A2AgAUIANwIAAkAgACADQeAAaiIFEIQGDQAgAygCaCIAQQJJDQAgBRDvAygCAEUNACAAQQJHBEBBqJgEQQAQJwsgASADQeAAaiIAEO8DKAIAEGI2AgAgA0HIAGogAEEBELQCIAMoAkgEQCADQTBqIABBARC0AiABIAMoAjAQYjYCBAsgAgJ8IANB4ABqIgAQ7wMtABBBAUYEQCAAEO8DKwMIDAELIANBGGogA0HgAGoiAEEBELQCRAAAAAAAAAAAIAMtAChBAUcNABogAyAAQQEQtAJEAAAAAAAA8D8gAysDCKELOQMAQQEhBAsgA0HgAGoQzAQgA0HwAGokACAEC1sBAn8jAEEgayICJAADQCABIAAoAghPRQRAIAJBCGogACABELQCIAIoAggQFyABQQFqIQEMAQsLIABCADcCBCAAKAIAEBcgAEIANwIIIABCADcCACACQSBqJAAL6QEBBH8jAEEQayIEJAAgABA5IgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECEhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBdBACECDAILIAIgARA2IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDAaDAELIAFBARBEIgIgACAFEB4aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQci/A0HKgQFBzQBBibUBEAAACyAEIAE2AgBBiPMIKAIAQYDqAyAEEB0aECYAC68BAQF/IAAoAhAiAUUEQEHs+ABBrbsBQf4AQaiVARAAAAsgASgC3AEQFyABKALYARAXIAEoAuABEBcgASgC5AEQFyABKALoARAXIAEoAuwBEBcgASgC8AEQFyABKAL0ARAXIAEoAvgBEBcgASgC/AEQFyABKAKAAhAXIAEoAoQCEBcgASgCiAIQFyABKAKYAhAXIAEoAqQCEBcgASgCoAIQFyAAIAEoAgA2AhAgARAXCwgAQQEgABBEC54BAQJ/QbgCEM8EIgEgACgCECICNgIAIAAgATYCECACBEAgAUEQaiACQRBqQSgQHhogAUE4aiACQThqQSgQHhogASACKAKYATYCmAEgASACKAKcATYCnAEgASACKwOgATkDoAEgASACKAKIATYCiAEgAUHgAGogAkHgAGpBKBAeGiABDwsgAUKAgICAgICA+D83A6ABIAFCAzcDmAEgAQsEAEEBC/8DAgF8B38CfyAAKwMIIgNEAAAAAAAA4D9EAAAAAAAA4L8gA0QAAAAAAAAAAGYboCIDmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAshBgJ/IAErAwgi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CkcEQCAGIAFBAnQiC2ogCjYCACAFIAtqIAQgBWooAgA2AgAgAUEBaiEBCyACQQFqIQIMAQsLIAcgATYCACAEIQIgCCEDDAALAAsDQCADIAAoAgBODQEgCSADQQFqIghBAnRqIQUDQCACIAUoAgAiBE5FBEAgAyAGIAJBAnRqKAIAIgRHBEAgBiABQQJ0aiAENgIAIAFBAWohAQsgAkEBaiECDAELCyAFIAE2AgAgBCECIAghAwwACwALIAAgATYCCCAAIQELIAEL4wwBE38CQAJAIABFIAFFckUEQCABKAIgIAAoAiByDQEgACgCECICIAEoAhBHDQICQCAAKAIAIgQgASgCAEcNACAAKAIEIgMgASgCBEcNACABKAIYIRMgASgCFCEOIAAoAhghFCAAKAIUIQ8gBCADIAEoAgggACgCCGogAkEAEJgCIg0EQEEAIQIgA0EAIANBAEobIQggDSgCGCEQIA0oAhQhCyADQQQQRCEJA0AgAiAIRkUEQCAJIAJBAnRqQX82AgAgAkEBaiECDAELC0EAIQIgC0EANgIAAkACQAJAAkACQCAAKAIQQQFrDggAAQQCBAQEAwQLIARBACAEQQBKGyEMIA0oAhwhBCABKAIcIQMgACgCHCERQQAhAANAIAAgDEYNBCAPIABBAWoiAUECdCIIaiEKIA8gAEECdCIFaigCACEAA0AgACAKKAIATkUEQCAJIBQgAEECdGooAgAiB0ECdGogAjYCACAQIAJBAnRqIAc2AgAgBCACQQN0aiARIABBA3RqKwMAOQMAIABBAWohACACQQFqIQIMAQsLIAUgC2ohCiAIIA5qIQcgBSAOaigCACEAA0AgACAHKAIATkUEQAJAIAkgEyAAQQJ0aigCACIFQQJ0aigCACIGIAooAgBIBEAgECACQQJ0aiAFNgIAIAQgAkEDdGogAyAAQQN0aisDADkDACACQQFqIQIMAQsgBCAGQQN0aiIFIAMgAEEDdGorAwAgBSsDAKA5AwALIABBAWohAAwBCwsgCCALaiACNgIAIAEhAAwACwALIARBACAEQQBKGyEMIA0oAhwhBCABKAIcIQggACgCHCERQQAhAANAIAAgDEYNAyAPIABBAWoiAUECdCIFaiEKIA8gAEECdCIDaigCACEAA0AgACAKKAIATkUEQCAJIBQgAEECdGooAgAiB0ECdGogAjYCACAQIAJBAnRqIAc2AgAgBCACQQR0aiIHIBEgAEEEdGoiBisDADkDACAHIAYrAwg5AwggAEEBaiEAIAJBAWohAgwBCwsgAyALaiEKIAUgDmohByADIA5qKAIAIQADQCAAIAcoAgBORQRAAkAgCSATIABBAnRqKAIAIgNBAnRqKAIAIgYgCigCAEgEQCAQIAJBAnRqIAM2AgAgBCACQQR0aiIDIAggAEEEdGoiBisDADkDACADIAYrAwg5AwggAkEBaiECDAELIAQgBkEEdGoiAyAIIABBBHRqIgYrAwAgAysDAKA5AwAgAyAGKwMIIAMrAwigOQMICyAAQQFqIQAMAQsLIAUgC2ogAjYCACABIQAMAAsACyAEQQAgBEEAShshDCANKAIcIQQgASgCHCEDIAAoAhwhEUEAIQADQCAAIAxGDQIgDyAAQQFqIgFBAnQiCGohCiAPIABBAnQiBWooAgAhAANAIAAgCigCAE5FBEAgCSAUIABBAnQiB2ooAgAiBkECdGogAjYCACAQIAJBAnQiEmogBjYCACAEIBJqIAcgEWooAgA2AgAgAEEBaiEAIAJBAWohAgwBCwsgBSALaiEKIAggDmohByAFIA5qKAIAIQADQCAAIAcoAgBORQRAAkAgCSATIABBAnQiBWooAgAiBkECdGooAgAiEiAKKAIASARAIBAgAkECdCISaiAGNgIAIAQgEmogAyAFaigCADYCACACQQFqIQIMAQsgBCASQQJ0aiIGIAYoAgAgAyAFaigCAGo2AgALIABBAWohAAwBCwsgCCALaiACNgIAIAEhAAwACwALIARBACAEQQBKGyEIQQAhAANAIAAgCEYNASAPIABBAWoiAUECdCIEaiEFIA8gAEECdCIDaigCACEAA0AgACAFKAIATkUEQCAJIBQgAEECdGooAgAiDEECdGogAjYCACAQIAJBAnRqIAw2AgAgAEEBaiEAIAJBAWohAgwBCwsgAyALaiEFIAQgDmohDCADIA5qKAIAIQADQCAAIAwoAgBORQRAIAkgEyAAQQJ0aigCACIDQQJ0aigCACAFKAIASARAIBAgAkECdGogAzYCACACQQFqIQILIABBAWohAAwBCwsgBCALaiACNgIAIAEhAAwACwALIA0gAjYCCAsgCRAXCyANDwtB+tsBQcW5AUHDBUGvsgEQAAAL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AgAiEyECA0AgBiAJRwRAIAIgGyAEKwMAoDkDACACIBogBCsDCKA5AwggBkEBaiEGIAJBEGohAiAEQRBqIQQMAQsLIA1BAXQhFiAMQQF0IRcgDUEBayEYIAxBAWshGUEAIQJBACEEQQAhBkEAIQkCQAJAA0AgASAFIAlBBHRqIgopAwg3A6gCIAEgCikDADcDoAIgASAFIAkgGWogDG9BBHRqIhApAwg3A5gCIAEgECkDADcDkAIgAUGgBGogAUGgAmogAUGQAmoQsQogASATIAZBBHRqIg4pAwg3A4gCIAEgDikDADcDgAIgASATIAYgGGogDW9BBHRqIhEpAwg3A/gBIAEgESkDADcD8AEgAUGQBGogAUGAAmogAUHwAWoQsQogAUIANwP4AyABQgA3A+gBIAEgASkDqAQ3A9gBIAEgASkDmAQ3A8gBIAFCADcD8AMgAUIANwPgASABIAEpA6AENwPQASABIAEpA5AENwPAASABKwPoASABKwPYASIaoSABKwPAASABKwPQASIboaIgASsDyAEgGqEgASsD4AEgG6GioSEeIAEgECkDCDcDuAEgASAQKQMANwOwASABIAopAwg3A6gBIAEgCikDADcDoAEgASAOKQMINwOYASABIA4pAwA3A5ABIAFBsAFqIAFBoAFqIAFBkAFqELAKIRQgASARKQMINwOIASABIBEpAwA3A4ABIAEgDikDCDcDeCABIA4pAwA3A3AgASAKKQMINwNoIAEgCikDADcDYCABQYABaiABQfAAaiABQeAAahCwCiEVIAEgECkDCDcDWCABIBApAwA3A1AgASAKKQMINwNIIAEgCikDADcDQCABIBEpAwg3AzggASARKQMANwMwIAEgDikDCDcDKCABIA4pAwA3AyAgASsDMCIfIAErA1giGiABQUBrIgorAwgiIKGiIAErAyAiJCAgIBqhIiGiIAErA1AiHSABKwMoIhwgASsDOCIboaIiJSAKKwMAIiIgGyAcoaKgoKAiI0QAAAAAAAAAAGIEfyABICQgGyAaoaIgJSAfIBogHKGioKAgI6MiHCAhoiAaoDkDiAQgASAcICIgHaGiIB2gOQOABCAcRAAAAAAAAPA/ZSAcRAAAAAAAAAAAZnEgHyAhoiAdIBsgIKGiICIgGiAboaKgoJogI6MiGkQAAAAAAAAAAGYgGkQAAAAAAADwP2VxcQVBAAsNAQJAIBUgHkQAAAAAAAAAAGIgFHJyRQRAIARBAWohBCAJQQFqIAxvIQkMAQsgHkQAAAAAAAAAAGYEQCAUBEAgBEEBaiEEIAlBAWogDG8hCQwCCyACQQFqIQIgBkEBaiANbyEGDAELIBUEQCACQQFqIQIgBkEBaiANbyEGDAELIARBAWohBCAJQQFqIAxvIQkLIAQgDEggAiANSHJFIAQgF05yRSACIBZIcQ0ACwJAQYzlCigCACICKwAAIhogASsDsANlRQ0AIBogASsDwANmRQ0AIAIrAAgiGiABKwO4A2VFDQAgGiABKwPIA2ZFDQAgCCgCSCEFIAEgAikDCDcDGCABIAIpAwA3AxBBASECQZDlCigCACAFIAFBEGoQ+AkNAwtBkOUKKAIAIgUrAAAiGiABKwPQA2VFDQEgGiABKwPgA2ZFDQEgBSsACCIaIAErA9gDZUUNAUEAIQIgGiABKwPoA2ZFDQIgBygCSCECIAEgBSkDCDcDCCABIAUpAwA3AwBBjOUKKAIAIAIgARD4CSECDAILQQEhAgwBC0EAIQILIAFBsARqJAAgAgRAIAdBAToAICAIQQE6ACAgEkEBaiESCyALQQFqIQtBmOQKKAIAIQIMAQsACwALAAUgBSAPQeAAbGpBADoAICAPQQFqIQ8MAQsACwALqQEBBX8gABAaIQIDQCACBEAgAigCEEEANgLoASAAIAIQKSEDA0AgAwRAAkAgAygCECgCsAEiAUUNAANAIAEgAUEwayIEIAEoAgBBA3FBAkYbKAIoKAIQIgUtAKwBQQFHDQEgBUEANgLoASABIAQgASgCAEEDcUECRhsoAigoAhAoAsgBKAIAIgENAAsLIAAgAxAsIQMMAQsLIAAgAhAbIQIMAQsLIAAQugoLRAEBfCAAKAIQKwMoIQFB2OMKLQAAQQFGBEAgAUQAAAAAAADgP6JB0OMKKwMAoA8LIAFB0OMKKwMAokQAAAAAAADgP6ILRAEBfCAAKAIQKwMgIQFB2OMKLQAAQQFGBEAgAUQAAAAAAADgP6JByOMKKwMAoA8LIAFByOMKKwMAokQAAAAAAADgP6ILTAEDfyABKAIQKAKUASIDKwMAIAAoAhAoApQBIgQrAwChmSAAEPgGIAEQ+AagZQR/IAMrAwggBCsDCKGZIAAQ9wYgARD3BqBlBUEACwtHAQF/IAAgAUEBEIgBIgFB2ChBwAJBARAxGkEgEFUhAiABKAIQIAI2AoABIAAoAhAvAbABQQgQGCEAIAEoAhAgADYClAEgAQs+AQF/IABBACACQQAQICIDBEAgACADED4hACABQQAgAkEAECAiAwRAIAEgAyAAEGkPCyABQQAgAiAAECAaCwvjAgEFfyMAQRBrIgMkACADQgA3AwggA0IANwMAIAEhBiABRQRAIANBABB4IAMhBgsgABB3IQQDQCAEBEACQCAEEMcBBEAgBEG+KEGYAkEBEDEaQTgQVSEFIAQoAhAgBTYCjAEgAhA0IQUgBCgCECIHIAUoAhAvAbABOwGwASACKAIQKAKMASgCLCEFIAcoAowBIgcgAjYCMCAHIAVBAWo2AiwgBiAEEHggBEEAIAQQ/AYMAQsgBCAGIAIQ/AYLIAQQdiEEDAELCwJAAkAgAQ0AIAMoAggiAUEBayICQQBIDQEgACgCECACNgK0ASABQQJPBEAgAxDVCiADKAIMIgEgAygCCCICSwRAIAMgAygCACABIAIQjQI2AgAgAyADKAIINgIMCyADENUKIAAoAhAgAygCADYCuAEMAQsgA0IANwIEIAMoAgAQFwsgA0EQaiQADwtBq8sBQY66AUHxB0GjLBAAAAsIAEEBQTgQGAsvACAAKAIIRQRAQZydA0GsvAFBIUGcHhAAAAsgACgCACAAKAIEIAAoAgxwQQJ0agtBAAJAIAAEQCABIAAoAghPDQEgACABEJQEIAI2AgAPC0Gh0gFB1f4AQRVB1SEQAAALQYqzA0HV/gBBFUHVIRAAAAuDAgEFfwJAAkACQCAAEN8BIAFPBEAgAEEAEIMCIABFDQEgACgCBCEEA0AgBARAIAAoAgwiBUUNBCAAKAIAKAIAIQMDQCAFBEAgACgCACAFQQFrIgVBAnRqIgYoAgAgBiADNgIAIQMMAQUgACAEQQFrIgQ2AgQMAwsACwALCyAAKAIIIAAoAgxLDQMgABDfASABQX9zakECdCIDBEAgACABQQFqEJQEIAAgARCUBCADEFQaCyAAIAEgAhD/Bg8LQfqgA0GvugFBE0GBGhAAAAtBodIBQdX+AEEVQde1ARAAAAtBp5IDQdX+AEEVQde1ARAAAAtB4Z4DQdX+AEEVQde1ARAAAAuVAQIDfwV8IAMQUyIImiEJIAAoAgghBiADEEEhByAGEBohBANAIAQEQCAEKAIQKAKUASIFIAIgBSsDACIKIAiiIAcgBSsDCCILoqCgOQMIIAUgASAKIAeiIAsgCaKgoDkDACAGIAQQGyEEDAELCyAAQTBqIQQDQCAEKAIAIgAEQCAAIAEgAiADEIEHIABBBGohBAwBCwsLVwEBfyAABEADQCABIAAoAghPRQRAIAAgARC/ARogAUEBaiEBDAELCyAAQgA3AgQgACgCABAXIABCADcCCCAAQgA3AgAPC0Gh0gFB1f4AQRVBg6IBEAAAC2oBAX8jAEEQayIIJAACfwJAAkAgASAHECpFBEAgACAALwEkIAZyOwEkDAELIAEgBRAqRQRAIAAgAC8BJCAEcjsBJAwBCyABIAMQKg0BC0EADAELIAggATYCACACIAgQJ0EBCyAIQRBqJAALLQEBfyADKAIAIgRFBEBBg64DQfP+AEEeQcE7EAAACyAAIAEgAigCACAEEQQAC3IBAn8jAEEgayIEJAACQCAAIANJBEBBACAAIAAgAhBFIgUbDQEgBEEgaiQAIAUPCyAEIAI2AgQgBCAANgIAQYjzCCgCAEGx6gMgBBAdGhAmAAsgBCAAIAF0NgIQQYjzCCgCAEGA6gMgBEEQahAdGhAmAAtUACAHIQIgBiEEIAUhAwJAAkACQAJAIAFBD2sOBAMBAQIACyABQSlGDQELQX8hAkHHAyEEIAFBHEcNACAAKAIQDQBBOw8LIAAgBDYCACACIQMLIAMLJAEBfyMAQRBrIgMkACADIAE2AgwgAiAAIAEQ6RMgA0EQaiQAC0sBAn8gACgCBCIHQQh1IQYgB0EBcQRAIAMoAgAgBhCMByEGCyAAKAIAIgAgASACIAMgBmogBEECIAdBAnEbIAUgACgCACgCFBELAAsgAAJAIAEgACgCBEcNACAAKAIcQQFGDQAgACACNgIcCwuaAQAgAEEBOgA1AkAgAiAAKAIERw0AIABBAToANAJAIAAoAhAiAkUEQCAAQQE2AiQgACADNgIYIAAgATYCECADQQFHDQIgACgCMEEBRg0BDAILIAEgAkYEQCAAKAIYIgJBAkYEQCAAIAM2AhggAyECCyAAKAIwQQFHDQIgAkEBRg0BDAILIAAgACgCJEEBajYCJAsgAEEBOgA2CwscACAAKAIIIAFBARB7GiABKAIQKAKAASAANgIMCwoAIAAgAWooAgALdgEBfyAAKAIkIgNFBEAgACACNgIYIAAgATYCECAAQQE2AiQgACAAKAI4NgIUDwsCQAJAIAAoAhQgACgCOEcNACAAKAIQIAFHDQAgACgCGEECRw0BIAAgAjYCGA8LIABBAToANiAAQQI2AhggACADQQFqNgIkCwuzAQEDfyMAQRBrIgIkACACIAE2AgwCQAJAAn8gABCiASIERQRAQQEhASAAEJkDDAELIAAQ6AJBAWshASAAKAIECyIDIAFGBEAgACABQQEgASABEM8LIAAQPxoMAQsgABA/GiAEDQAgACIBIANBAWoQzgEMAQsgACgCACEBIAAgA0EBahC5AQsgASADQQJ0aiIAIAJBDGoQ1AEgAkEANgIIIABBBGogAkEIahDUASACQRBqJAALDQAgACABIAJCfxC0BQsHACAAQQxqCycBAX8gACgCACEBIwBBEGsiACQAIAAgATYCDCAAKAIMIABBEGokAAsXACAAKAIIEGZHBEAgACgCCBCFDAsgAAs2AQF/IwBBEGsiAyQAIAMgAjYCDCADQQhqIANBDGoQhQIgACABELUHIQAQhAIgA0EQaiQAIAALEwAgACAAKAIAQQFrIgA2AgAgAAszAQF/IwBBEGsiAiQAIAIgACgCADYCDCACIAIoAgwgAUECdGo2AgwgAigCDCACQRBqJAALGwEBf0EBIQEgABCiAQR/IAAQ6AJBAWsFQQELCzABAX8jAEEQayICJAAgAiAAKAIANgIMIAIgAigCDCABajYCDCACKAIMIAJBEGokAAvQAQEDfyMAQRBrIgUkAAJAQff///8HIAFrIAJPBEAgABA/IQYgBUEEaiIHIAFB8////wNJBH8gBSABQQF0NgIMIAUgASACajYCBCAHIAVBDGoQ1AMoAgAQ0wNBAWoFQff///8HCxDSAyAFKAIEIQIgBSgCCBogBARAIAIgBiAEEKMCCyADIARHBEAgAiAEaiAEIAZqIAMgBGsQowILIAFBCkcEQCAGEKYFCyAAIAIQ8wEgACAFKAIIEPIBIAVBEGokAAwBCxDCAQALIAAgAxC5AQvGAQEEfyMAQRBrIgQkAAJAIAEQogFFBEAgACABKAIINgIIIAAgASkCADcCACAAEJkDGgwBCyABKAIAIQUgASgCBCECIwBBEGsiAyQAAkACQAJAIAIQpQUE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A6ciBEGB+ABrQf0PTQRAIAJCBIYgAEI8iIQhAiAEQYD4AGutIQMCQCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgAkIBfCECDAELIABCgICAgICAgIAIUg0AIAJCAYMgAnwhAgtCACACIAJC/////////wdWIgQbIQAgBK0gA3wMAQsgACAChFAgA0L//wFSckUEQCACQgSGIABCPIiEQoCAgICAgIAEhCEAQv8PDAELIARB/ocBSwRAQgAhAEL/DwwBC0GA+ABBgfgAIANQIgcbIgggBGsiBkHwAEoEQEIAIQBCAAwBCyAFQRBqIAAgAiACQoCAgICAgMAAhCAHGyICQYABIAZrELABIAUgACACIAYQmwMgBSkDCEIEhiAFKQMAIgJCPIiEIQACQCAEIAhHIAUpAxAgBSkDGIRCAFJxrSACQv//////////D4OEIgJCgYCAgICAgIAIWgRAIABCAXwhAAwBCyACQoCAgICAgICACFINACAAQgGDIAB8IQALIABCgICAgICAgAiFIAAgAEL/////////B1YiBBshACAErQshAiAFQSBqJAAgAUKAgICAgICAgIB/gyACQjSGhCAAhL8LiQIAAkAgAAR/IAFB/wBNDQECQEGEjAsoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIPCyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAw8LIAFBgIAEa0H//z9NBEAgACABQT9xQYABcjoAAyAAIAFBEnZB8AFyOgAAIAAgAUEGdkE/cUGAAXI6AAIgACABQQx2QT9xQYABcjoAAUEEDwsLQdSKC0EZNgIAQX8FQQELDwsgACABOgAAQQELwgIBBH8jAEHQAWsiBSQAIAUgAjYCzAEgBUGgAWoiAkEAQSgQMBogBSAFKALMATYCyAECQEEAIAEgBUHIAWogBUHQAGogAiADIAQQwQxBAEgEQEF/IQQMAQsgACgCTEEASCAAIAAoAgAiCEFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQYgACAFNgIsDAELIAAoAhANAQtB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NwMIIAkgAikDADcDACAIIAMpAwg3AxggCCADKQMANwMQIAggA0EQaikDCDcDCCAIIAMpAxA3AwBBfyAAIAEgAiAKIAhBEGogCBD9B0F/Rg0AGiAEQbCICygCADYCBCAEQbSICygCADYCAEEACyAIQSBqJAAPC0G3ygFBt78BQcwAQduaARAAAAsTACAAIAFB3agBQRZB2/8AEJUEC4EEAQR/AkAgAigCBCICIANByABsIgdqIgYoAigiCEEATA0AIAYoAiwiBUEATA0AIAYoAjwiAEEASgRAIAIgB2ohAQJAIAYoAkBBAUYEQCACIARByABsaiIGIAU2AiggAUF/NgIsIAYgADYCLCACIAEoAihByABsaiADNgIwIAIgBUHIAGxqIAQ2AjAMAQsgAiAEQcgAbGoiBUF/NgIsIAUgASgCLDYCKCAGIAYoAigiATYCLCAGIAA2AiggAiAAQcgAbGogAzYCMCACIAFByABsaiADNgIwIAUoAighAAsgAiAAQcgAbGogBDYCMCACIANByABsakEANgI8IAIgBEHIAGxqQQA2AjwPCyACIARByABsaiIAIAU2AiggAiADQcgAbGpBfzYCLCAAQX82AiwgAiAFQcgAbGogBDYCMA8LAkAgAiAIQcgAbGoiBSgCMCIHQQBMDQAgBSgCNEEATA0AAkAgAiAHQcgAbGooAgQiBUEATA0AIAUgASAAQRBqELYEDQAgBkF/NgIoIAIgA0HIAGxqQX82AiwgAiAEQcgAbGoiAEF/NgIsIAIgACgCKEHIAGxqIAQ2AjQPCyACIARByABsakJ/NwMoIAIgA0HIAGxqQX82AiwgAiAGKAIoQcgAbGogAzYCMA8LIAIgCEHIAGxqIgAgBDYCNCAAIAM2AjALQwECfCAAKwMIIgIgASsDCCIDREivvJry13o+oGQEQEEBDwsgA0RIr7ya8td6vqAgAmQEQEEADwsgACsDACABKwMAZgtVAgJ8AX8gAUEAIAFBAEobIQEgALciAyECA0AgASAERkUEQCAEQQFqIQQgAhDIByECDAELCyADIAKjmyICmUQAAAAAAADgQWMEQCACqg8LQYCAgIB4CxIAIAAgAUGNI0ERQd6AARDSAQteAQF/IAArAwggASsDCGEEQAJAIAArAxAgASsDEGINACAAKwMYIAErAxhiDQAgACgCICABKAIg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ArABRQRAQbCGC0GwhgsoAgAiAUEBajYCAEGshgsoAgAgAUECdGogBDYCACAAKAIAQQNxIQELIAAgAiAAIABBMGsiBCABQQJGGygCKCIDKAIQKAKwAQR/IAEFQbCGC0GwhgsoAgAiAUEBajYCAEGshgsoAgAgAUECdGogAzYCACAAKAIAQQNxC0EDRhsoAigiAigCECIBQQE2ArABIAEgASgCpAIiA0EBajYCpAIgASgCoAIgA0ECdGogADYCAEEAIQEgAigCECIDKAKgAiADKAKkAkECdGpBADYCAEG13gMgAigCECICKALIASACKAKkAkECdGpBBGsoAgBFDQAaIAAgBCAAKAIAQQNxQQJGGygCKCIEKAIQIgJBATYCsAEgAiACKAKcAiIDQQFqNgKcAiACKAKYAiADQQJ0aiAANgIAIAQoAhAiACgCmAIgACgCnAJBAnRqQQA2AgAgBCgCECIAKALAASAAKAKcAkECdGpBBGsoAgANAUHY3gMLQQAQMkF/IQELIAEPC0H8ygFB8LsBQTtBraABEAAAC7gBAQR/IAAoAhAiBCAEKAL0ASACajYC9AEDQCAEKAKYAiADQQJ0aigCACIFBEAgASAFQTBBACAFKAIAQQNxQQNHG2ooAigiBUcEQCAFIAAgAhCvCCAAKAIQIQQLIANBAWohAwwBBQNAAkAgBCgCoAIgBkECdGooAgAiA0UNACABIANBUEEAIAMoAgBBA3FBAkcbaigCKCIDRwRAIAMgACACEK8IIAAoAhAhBAsgBkEBaiEGDAELCwsLC/IEAQZ/IAAQxAQhBwJAIAIEQCACQVBBACACKAIAQQNxIgNBAkcbaigCKCgCECgC9AEgAigCECgCrAEgAkEwQQAgA0EDRxtqKAIoKAIQKAL0AWpGDQELA0AgACgCECIEKALIASAFQQJ0aigCACIDBEAgAygCAEEDcSEEAkAgAygCECgCpAFBAE4EQCADQVBBACAEQQJHG2ooAigiAyABRg0BIAMgACACELAIIQIMAQsgAyADQTBrIgggBEECRhsoAigQxAQgB0YNACACBEAgAyAIIAMoAgBBA3EiBEECRhsoAigoAhAoAvQBIANBMEEAIARBA0cbaigCKCgCECgC9AEgAygCECgCrAFqayACQVBBACACKAIAQQNxIgRBAkcbaigCKCgCECgC9AEgAkEw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IAIpAxA3AxAgBiACKQMINwMIIAYgAikDADcDACAAIAYQ/AEgAUEBaiEBDAELAAsACyAGQYABaiQACy4BAX8jAEEQayICJAAgAkEANgIIIAJBADYCDCABIAJBCGogABC4BCACQRBqJAALJQEBfyMAQRBrIgIkACACIAE2AgAgAEGRgwQgAhAcIAJBEGokAAsNACAAIAFB2YoBEIULC4gBAgN/AXwjAEEgayIEJAADQCACIAVGBEAgAwRAIAErAwAhByAEIAErAwg5AwggBCAHOQMAIABB2YoBIAQQHAsgAEGggQUQGRogBEEgaiQABSABIAVBBHRqIgYrAwAhByAEIAYrAwg5AxggBCAHOQMQIABB2YoBIARBEGoQHCAFQQFqIQUMAQsLC80BAQJ/IAAgASgCICADQQV0aiIEQRBqKQMANwMQIAAgBCkDADcDACAAIAQpAxg3AxggACAEKQMINwMIIAArAwAgACsDEGEEQCACKAIQKALEASADQQZ0aiICKAIEKAIAIQMgAigCRCgCACEFIAAgASsDADkDACAAIAUoAhArAxggAisDWKA5AwggACABKwMIOQMQIAAgAygCECsDGCACKwMQoTkDGCAEIAApAxA3AxAgBCAAKQMINwMIIAQgACkDADcDACAEIAApAxg3AxgLC4sBAQN/IwBBEGsiBCQAIABBxMgBQQAQHCABQQAgAUEAShshBUEAIQEDQCABIAVHBEAgAQRAIABBgZwDQQAQHAsgBCACIAFBA3RqIgYqAgC7OQMAIABB28sDIAQQHCAGKAIEIAMgABCUAiAAQf0AEGMgAUEBaiEBDAELCyAAQf/MBEEAEBwgBEEQaiQACzUAIAAgAUEAIAIQjAkgABB3IQADQCAABEAgAUHN7AQQGRogACABIAIQigkgABB2IQAMAQsLC5wCAQV/IwBBIGsiBCQAAkACQAJAIAAQNCAARg0AIABBlKsBQQAQayABNgIIIAAQHyIDRQ0BIAFBAWohASADQcA6QQcQ4AENACAAEB8hAyAAQZSrAUEAEGsoAgghBiACIANBgAQgAigCABEEACIFBEAgBSgCDCAGRg0BIAQgAzYCEEHt+QQgBEEQahAnDAELQQFBEBCZBCEFIAMQpAEiB0UNAiAFIAY2AgwgBSAHNgIIIAIgBUEBIAIoAgARBAAaCyAAEHchAANAIAAE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AwsgACAAQRhqIABBMGogAUEYayACELwGDAILIAAgAEEYaiAAQTBqIABByABqIAFBGGsgAhCmCQwBCyAAIABBGGogAEEwaiIGIAIQtgIgAEHIAGohBSAEQQhqQQRyIQkDQCAFIgMgAUYNAQJAIAMgBiACKAIAEQAABEAgBCADKAIANgIIIAQgAygCBDYCDCAEIAMoAgg2AhAgA0IANwIEIAQgAysDEDkDGANAAkAgBSAGIgUQlQEgACAFRgRAIAAhBQwBCyAEQQhqIAVBGGsiBiACKAIAEQAADQELCyAFIARBCGoQlQEgCRDJASAIQQFqIghBCEYNAQsgA0EYaiEFIAMhBgwBCwsgA0EYaiABRiEHCyAEQSBqJAAgBwtqACAAIAEgAiADIAUQvAYCQCAEIAMgBSgCABEAAEUNACADIAQQrQEgAyACIAUoAgARAABFDQAgAiADEK0BIAIgASAFKAIAEQAARQ0AIAEgAhCtASABIAAgBSgCABEAAEUNACAAIAEQrQELC74QAQl/IwBBEGsiDSQAA0AgAUHIAGshCSABQTBrIQggAUEYayELAkADQAJAAkACQAJAAkAgASAAayIGQRhtIgcOBgYGAAECAwQLIAFBGGsiASAAIAIoAgARAABFDQUgACABEK0BDAULIAAgAEEYaiABQRhrIAIQtgIMBAsgACAAQRhqIABBMGogAUEYayACELwGDAMLIAAgAEEYaiAAQTBqIABByABqIAFBGGsgAhCmCQwCCyAGQb8ETARAIARBAXEEQCACIQcjAEEgayIFJAACQCABIgQgAEYNACAFQQhqQQRyIQYgACEBA0AgASIDQRhqIgEgBEYNASABIAMgBygCABEAAEUNACAFIAMoAhg2AgggBSADKAIcNgIMIAUgAygCIDYCECADQgA3AhwgBSADKwMoOQMYIAEhAgNAAkAgAiADIgIQlQEgACACRgRAIAAhAgwBCyAFQQhqIAJBGGsiAyAHKAIAEQAADQELCyACIAVBCGoQlQEgBhDJAQwACwALIAVBIGokAAwDCyACIQQjAEEgayIFJAACQCABIgMgAEYNACAFQQhqQQRyIQYDQCAAIgJBGGoiACADRg0BIAAgAiAEKAIAEQAARQ0AIAUgAigCGDYCCCAFIAIoAhw2AgwgBSACKAIgNgIQIAJCADcCHCAFIAIrAyg5AxggACEBA0AgASACEJUBIAVBCGoiByACIgFBGGsiAiAEKAIAEQAADQALIAEgBxCVASAGEMkBDAALAAsgBUEgaiQADAILIANFBEAgACABRwR/IAAgAUYEfyABBSABIABrIgNBGG0hBAJAIANBGUgNACAEQQJrQQF2IQMDQCADQQBIDQEgACACIAQgACADQRhsahCkCSADQQFrIQMMAAsACyABIABrQRhtIQQgASEDA0AgASADRwRAIAMgACACKAIAEQAABEAgAyAAEK0BIAAgAiAEIAAQpAkLIANBGGohAwwBCwsgASAAa0EYbSEDA0AgA0EBSgRAIAEhBEEAIQYjAEEgayIMJAAgA0ECTgRAIAwgACgCADYCCCAMIAAoAgQ2AgwgDCAAKAIINgIQIABCADcCBCAMIAArAxA5AxggDEEIaiILQQRyIAAhASADQQJrQQJtIQoDQCAGQQF0IghBAXIhByABIAZBGGxqIgZBGGohBSADIAhBAmoiCEwEfyAHBSAGQTBqIgYgBSAFIAYgAigCABEAACIGGyEFIAggByAGGwshBiABIAUQlQEgBSEBIAYgCkwNAAsCQCAEQRhrIgcgBUYEQCAFIAsQlQEMAQsgASAHEJUBIAcgDEEIahCVASABQRhqIgEhCiMAQSBrIgskAAJAIAEgACIHa0EYbSIBQQJIDQAgACABQQJrQQF2IghBGGxqIgEgCkEYayIGIAIoAgARAABFDQAgCyAGKAIANgIIIAsgCkEUayIFKAIANgIMIAsgCkEQaygCADYCECAFQgA3AgAgCyAKQQhrKwMAOQMYIAtBCGpBBHIDQAJAIAYgASIGEJUBIAhFDQAgByAIQQFrQQF2IghBGGxqIgEgC0EIaiACKAIAEQAADQELCyAGIAtBCGoQlQEQyQELIAtBIGokAAsQyQELIAxBIGokACADQQFrIQMgBEEYayEBDAELC0EACwUgAQsaDAILIAAgB0EBdkEYbCIFaiEKAkAgBkGBGE8EQCAAIAogCyACELYCIABBGGoiByAKQRhrIgYgCCACELYCIABBMGogBSAHaiIHIAkgAhC2AiAGIAogByACELYCIAAgChCtAQwBCyAKIAAgCyACELYCCyADQQFrIQMCQCAEQQFxIgoNACAAQRhrIAAgAigCABEAAA0AQQAhBCMAQSBrIgUkACAFIAAoAgA2Aggg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DBAgGgwBCwsgB0ECQcsbQQAQIEUEQCAHQQJByxtBo4EFECAaCyAHQQJBjxtBABAgRQRAIAdBAkGPG0GjgQUQIBoLQcyDCygCACEYQbCDCygCACEZQbyECygCACEeQYiECygCACEfQayECygCACEjQaiECygCACEkQaCECygCACElQaSECygCACEmQZiECygCACFAQZSECygCACFBQZyECygCACFCQZCECygCACFDQYSECygCACFEQYCECygCACFFQfyDCygCACFGQfiDCygCACFHQfSDCygCACFIQYyECygCACFJQeiDCygCACFKQeSDCygCACFLQeCDCygCACFMQfSECygCACFNQaiFCygCACFOQcCFCygCACFPQayFCygCACFQQbCFCygCACFRQbSFCygCACFSQZiFCygCACFTQfCECygCACFUQaSFCygCACFVQcSFCygCACFWQeSECygCACFXQeiECygCACFYQeyECygCACFZQdiECygCACFaQdSECygCACFbQaCFCygCACFcQZyFCygCACFdQfiECygCACFeQYyFCygCACFfQYyFC0EANgIAQfiECyAHQQJBoDpBABAgNgIAQZyFCyAHQQJBibMBQQAQIDYCAEGghQsgB0ECQeDxAEEAECA2AgBB1IQLIAdBAkHsIEEAECAiAzYCACADRQRAQdSECyAHQQJB7CBBo4EFECA2AgALQQAhBkHshAtBADYCAEHYhAtBADYCAEHohAsgB0ECQeGbAUEAECA2AgBB5IQLIAdBAkGwiwFBABAgNgIAQcSFCyAHQQJBqN0AQQAQIDYCAEGkhQtBADYCAEHwhAsgB0ECQczzAEEAECA2AgBBmIULIAdBAkGgJ0EAECA2AgBBtIULQQA2AgBBsIULIAdBAkHcmwFBABAgNgIAQayFCyAHQQJBq4sBQQAQIDYCAEHAhQsgB0ECQZ/dAEEAECA2AgBBqIULQQA2AgBB9IQLQQA2AgBB4IMLIAdBAUH0IEEAECA2AgBB5IMLIAdBAUGq+wBBABAgNgIAQeiDCyAHQQFBz5kBQQAQIDYCAEGMhAtBADYCAEH0gwsgB0EBQbCLAUEAECA2AgBB+IMLIAdBAUHhmwFBABAgNgIAQfyDC0EANgIAQYCECyAHQQFBzPMAQQAQIDYCAEGEhAtBADYCAEGQhAtBADYCAEGchAsgB0EBQeWDAUEAECA2AgBBlIQLIAdBAUGPNEEAECA2AgBBmIQLIAdBAUHiMkEAECA2AgBBpIQLIAdBAUH7FkEAECA2AgBBoIQLIAdBAUHx5QBBABAgNgIAQaiECyAHQQFBhOUAQQAQIDYCAEGshAsgB0EBQaSrAUEAECA2AgBBiIQLQQA2AgBBvIQLQQA2AgBBzIMLIAdBAEHlgwFBABAgNgIAIAdBwhJBARCPASIDQb4oQZgCQQEQMRogA0Gw9wBByqMBEOUBIAQoAhArAxAhYiAIKAIQKwMQIWQgAyAIIAQgACgCECgCdEEBcSIDGyINEPEIIQkgByAEIAggAxsiChDxCCEIQQAhBANAIAQgDEYEQCAGRQRAIAcgCSAIQQBBARBgIQYLIAZB1IQLKAIAQYuSAxBpIAAoAhAoApABIQMgBygCECIEIAc2ArwBIAQgAzYCkAEgByATEIoCIAcQkAogBxDSDCAHEPoOIAcQhw0gBygCEEHAAWohAyAJKAIQKwMQIAgoAhArAxCgRAAAAAAAAOA/oiFhIA0oAhAiBCsDECAEKwNgoSAKKAIQIgQrAxCgIAQrA1igRAAAAAAAAOA/oiFjA0AgAygCACIDBEACQCADIAlGBEAgAygCECIFIGE5AxAgBSBkOQMYDAELIAMoAhAhBSADIAhGBEAgBSBhOQMQIAUgYjkDGAwBCyAFIGM5AxgLIAVBuAFqIQMMAQsLIAcQgQwgB0EAELUJIAcQrAMgCSgCECEDIA0oAhAiBCsDGCFhIAQrAxACfyAAKAIQLQB0QQFxBEAgYSADKwMQoCFhIANBGGoMAQsgYSADKwMYoSFhIANBEGoLKwMAoSFiQQAhEgNAIAwgEkYEQEH4hAsgXjYCAEGMhQsgXzYCAEGchQsgXTYCAEGghQsgXDYCAEHUhAsgWzYCAEHYhAsgWjYCAEHshAsgWTYCAEHohAsgWDYCAEHkhAsgVzYCAEHEhQsgVjYCAEGkhQsgVTYCAEHwhAsgVDYCAEGYhQsgUzYCAEG0hQsgUjYCAEGwhQsgUTYCAEGshQsgUDYCAEHAhQsgTzYCAEGohQsgTjYCAEH0hAsgTTYCAEHggwsgTDYCAEHkgwsgSzYCAEHogwsgSjYCAEGMhAsgSTYCAEH0gwsgSDYCAEH4gwsgRzYCAEH8gwsgRjYCAEGAhAsgRTYCAEGEhAsgRDYCAEGQhAsgQzYCAEGchAsgQjYCAEGUhAsgQTYCAEGYhAsgQDYCAEGkhAsgJjYCAEGghAsgJTYCAEGohAsgJDYCAEGshAsgIzYCAEGIhAsgHzYCAEG8hAsgHjYCAEHMgwsgGDYCAEGwgwsgGTYCACAHEIoKIAcQtQEMBAUgESASQQJ0aiEDA0AgAygCACIJKAIQIgRB+ABqIQMgBC0AcA0ACyAEKAJ8Ig0oAhAhAwJAIAYgDUYEQCADKAJ8RQ0BCyAJIAMoAggoAgAiAygCBBCXCCIEIAMoAgg2AgggBCBhIAMrABAiZJogAysAGCJjIAAoAhAoAnRBAXEiBRugOQMYIAQgYiBjIGQgBRugOQMQIAQgAygCDDYCDCAEIGIgAysAKCJkIAMrACAiYyAFG6A5AyAgBCBhIGOaIGQgBRugOQMoQQAhCgNAAkAgCiADKAIETw0AIApBBHQiDiAEKAIAaiIIIGIgAygCACAOaiIFKwAIImQgBSsAACJjIAAoAhAiYCgCdEEBcSIFG6A5AwAgCCBhIGOaIGQgBRugOQMIIAIgCCkDADcDoCAgAiAIKQMINwOoICAKQQFqIgggAygCBE8NACAIQQR0IicgBCgCAGoiCCBiIAMoAgAgJ2oiJysACCJkICcrAAAiYyAFG6A5AwAgCCBhIGOaIGQgBRugOQMIIBQgCCkDADcDACAUIAgpAwg3AwggDkEgaiIOIAQoAgBqIgggYiADKAIAIA5qIg4rAAgiZCAOKwAAImMgBRugOQMAIAggYSBjmiBkIAUboDkDCCAbIAgpAwA3AwAgGyAIKQMINwMIIAIgYiADKAIAIApBA2oiCkEEdGoiCCsACCJkIAgrAAAiYyAFG6A5A9AgIAIgYSBjmiBkIAUboDkD2CAgYEEQaiACQaAgahCBBgwBCwsgCSgCECgCYCIDRQ0AIA0oAhAoAmAiBCsAQCFkIAQrADghYyAAKAIQKAJ0IQQgA0EBOgBRIAMgYiBkIGMgBEEBcSIEG6A5AzggAyBhIGOaIGQgBBugOQNAIAAgAxCLAgsgEkEBaiESDAELAAsABSARIARBAnRqIQMDQCADKAIAIgUoAhAiDkH4AGohAyAOLQBwDQALAn8gDSAFQTBBACAFKAIAQQNxQQNHG2ooAihGBEAgByAJIAggBRDvCAwBCyAHIAggCSAFEO8ICyEDIAUoAhAiDiADNgJ8AkAgBg0AQQAhBiAOLQAsDQAgDi0AVA0AIAMoAhAgBTYCfCADIQYLIARBAWohBAwBCwALAAsAC0HDpQNBkLwBQbcCQejFARAAAAsgBkEBaiEGDAALAAsCQEGkhQsoAgBBqIULKAIAckUNAEG8hQsoAgBBuIULKAIAckUNACAAEBohCgNAIApFDQECQEGkhQsoAgBFDQAgACAKEK8CIQsDQCALRQ0BIAsgC0EwayIBIAsoAgBBA3FBAkYbIgMoAhAoAmQEQCADQQEQ6QUaIAAgCyABIAsoAgBBA3FBAkYbKAIQKAJkEIsCCyAAIAsQ+QIhCwwACwALAkBBqIULKAIARQ0AIAAgChApIQsDQCALRQ0BAkAgCygCECgCaEUNACALQQAQ6QVFDQAgACALKAIQKAJoEIsCCyAAIAsQLCELDAALAAsgACAKEBshCgwACwALAkACQCATQQRrDgUBAAAAAQALIAIoAtgFEBcjAEEQayIAJABBhIcLQYSHCygCACIBQQFrNgIAAkAgAUEBSg0AQfCCCy0AAEUNAEGIhwsoAgAhAUGMhwsoAgAhAyAAEIsBOQMIIAAgAzYCBCAAIAE2AgBBiPMIKAIAQerIBCAAEC0LIABBEGokAAsgDxAXIAIoArQGEBdBtIMLQQE2AgBBsIMLQQE2AgALIAJB4CVqJAALQQEBfyMAQRBrIgIkACACQcEANgIMIAAgASACQQxqQT4gASAAa0EYbWdBAXRrQQAgACABRxtBARCnCSACQRBqJAALYwECfyMAQSBrIgIkAAJAIAAoAgggACgCACIDa0EYbSABSQRAIAFBq9Wq1QBPDQEgACACQQxqIAEgACgCBCADa0EYbSAAQQhqELAJIgAQrgkgABCtCQsgAkEgaiQADwsQhwQACxoAIABBgICAgARPBEAQwQYACyAAQQJ0EIIBC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC1gCAnwBfwJAAn8gAC0AHCIEIAEtABxFDQAaIARFDQEgACsDACICIAErAwAiA2MNAUEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCw8LQX8LdAEEfAJAIAErAwAhBSACKwMAIQYgAysDACEHIAAgBCsDACIIOQMYIAAgBzkDECAAIAY5AwggACAFOQMAAkAgBSAGZQRAIAcgCGVFDQEMAgtBzs0BQdvbAEElQYaeARAAAAtB48gBQdvbAEEmQYaeARAAAAsLCQAgACABOQMICyYAIABFBEBB3jdB/tsAQdAAQY3bARAAAAsgACAAKAIAKAIMEQEACw8AIAAgACgCACgCABEBAAsdACAABEAgAEE0ahDqARogAEEoahDqARoLIAAQFwuVBAEFfyAAAn8gACgCBCIFIAAoAghJBEAgACgCBCIGIAEgAiADIAQQuwkgACAGQSBqNgIEIAVBIGoMAQsjAEEgayIJJAAgACgCBCAAKAIAa0EFdUEBaiIFQYCAgMAATwRAEIcEAAtB////PyAAKAIIIAAoAgBrIgZBBHUiByAFIAUgB0kbIAZB4P///wdPGyEGIAAoAgQgACgCAGtBBXUhCEEAIQcgCUEMaiIFIABBCGo2AhAgBUEANgIMIAYEQCAGQYCAgMAATwRAEMEGAAsgBkEFdBCCASEHCyAFIAc2AgAgBSAHIAhBBXRqIgg2AgggBSAHIAZBBXRqNgIMIAUgCDYCBCAFKAIIIAEgAiADIAQQuwkgBSAFKAIIQSBqNgIIIAUoAgQhBCAAKAIAIQEgACgCBCEDA0AgASADRwRAIARBIGsiBCADQSBrIgMpAwA3AwAgBCADKQMYNwMYIAQgAykDEDcDECAEIAMpAwg3AwgMAQsLIAUgBDYCBCAAKAIAIQEgACAENgIAIAUgATYCBCAAKAIEIQEgACAFKAIINgIEIAUgATYCCCAAKAIIIQEgACAFKAIMNgIIIAUgATYCDCAFIAUoAgQ2AgAgACgCBCAFKAIEIQIgBSgCCCEAA0AgACACRwRAIAUgAEEgayIANgIIDAELCyAFKAIAIgAEQCAFKAIMGiAAEBcLIAlBIGokAAs2AgQL/gMBBH9BMBCCASIFQfzyCTYCACMAQRBrIgYkACAFQQRqIgQgADYCECAEIAE2AgwgBEIANwIEIAQgBEEEajYCAEEAIQFB1OUKQQA2AgADfyAAIAFMBH8gBkEQaiQAIAQFIAZByAAQggEgBCgCDCABQQJ0aigCABC7BjYCDCAGQQRqIAQgBkEMahC6AyABQQFqIQEgBCgCECEADAELCxogBSACNgIcIAUgAzYCGCAFQQA2AiwgBUIANwIkIAVB5PIJNgIAAkAgAyACQQJ0aiIBIANrQQJ1IgYgBUEkaiIAKAIIIAAoAgAiAmtBAnVNBEAgBiAAKAIEIgQgAmsiB0ECdUsEQCACIARHBEAgAiADIAcQVBogACgCBCEECyABIAMgB2oiAmshAyABIAJHBEAgBCACIAMQVBoLIAAgAyAEajYCBAwCCyABIANrIQQgASADRwRAIAIgAyAEEFQaCyAAIAIgBGo2AgQMAQsgABCUCSAAIAYQ8QQiAkGAgICABE8EQBCHBAALIAAgAhC4CSIENgIEIAAgBDYCACAAIAQgAkECdGo2AgggASADayECIAAoAgQhBCABIANHBEAgBCADIAIQVBoLIAAgAiAEajYCBAsgBSgCKCEAIAUoAiQhAQN/IAAgAUYEfyAFBSABKAIAQQA6ABwgAUEEaiEBDAELCwsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEI4BAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBUGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEMMJIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARDDCQuGeAIlfwx8IwBBgAFrIh0kACAdQRhqIAJB2AAQHhogBkEANgIAAkAgAUUgAEEATHINACABKAIEIiNBAEwNAAJ/AkAgAUEAELkCBEAgASgCEEEBRg0BCyABENsJDAELIAEQygYLIRcCQAJAIAIoAlAiDUEDRwRAIARBAEwNAiANQQRGDQEMAgsgBEEATA0BCyAXKAIAIABsQQgQGCEjIBcoAhghDiAXKAIUIREgFygCAEEEEBghCyAXKAIAIg1BACANQQBKGyEMA0AgByAMRgRAIARBACAEQQBKGyEQQQAhBwNAIAcgEEYEQEEAIQcDQCAHIAxHBEAgCyAHQQJ0aiIEKAIAQQBKBEAgBCAJNgIAIAlBAWohCQsgB0EBaiEHDAELCwNAAkAgCiAMRwRAIAsgCkECdCIEaigCAEEASA0BIAQgEWoiBygCACIEIAcoAgQiByAEIAdKGyENA0AgBCANRg0CAkAgCyAOIARBAnRqKAIAQQJ0IgdqKAIAQQBOBEAgCEEBaiEIDAELIAcgEWoiGygCACIHIBsoAgQiGyAHIBtKGyEbA0AgByAbRg0BIAogDiAHQQJ0aigCACISRwRAIAggCyASQQJ0aigCAEF/c0EfdmohCAsgB0EBaiEHDAALAAsgBEEBaiEEDAALAAtBACEEQQAhGyAIQQBKBEAgCEEEEBghBCAIQQQQGCEbIBcoAgAiB0EAIAdBAEobIQwLQQAhCEEAIQoDQAJAIAogDEcEQCALIApBAnQiB2ooAgAiEkEASA0BIAcgEWoiBygCACINIAcoAgQiByAHIA1IGyETA0AgDSATRg0CAkAgCyAOIA1BAnRqKAIAQQJ0IgdqKAIAIg9BAE4EQCAEIAhBAnQiB2ogEjYCACAHIBtqIA82AgAgCEEBaiEIDAELIAcgEWoiDygCACIHIA8oAgQiDyAHIA9KGyEPA0AgByAPRg0BAkAgDiAHQQJ0aigCACIVIApGDQAgCyAVQQJ0aigCACIVQQBIDQAgBCAIQQJ0IhZqIBI2AgAgFiAbaiAVNgIAIAhBAWohCAsgB0EBaiEHDAALAAsgDUEBaiENDAALAAtBACEHIAggCSAJIAQgG0EAQQhBCBDAAyENIAQQFyAbEBcgCxAXIAAgDSACICNBAEEAIAYQxQkgBigCAEUEQCAXKAIAQQQQGCEEIBcoAgAiCUEAIAlBAEobIQYDQCAGIAdGBEBBACEHQQAhCwNAIAcgEEYEQEEAIQhBACEHA0AgBiAHRgRAQQAhDANAIAYgCEcEQAJAIAQgCEECdGooAgAiB0EASA0AIAMgACAIbEEDdGohCyAjIAAgB2xBA3RqIQlBACEHA0AgACAHRg0BIAsgB0EDdCIbaiAJIBtqKwMAOQMAIAdBAWohBwwACwALIAhBAWohCAwBCwsDQAJAIAwgEEcEQCAFIAxBAnRqKAIAIgZBAnQiByAXKAIUaiIJKAIEIgsgCSgCACIKayIJQQFKBEAgBCAHaigCAEEASARAIAm3ISwgAyAAIAZsQQN0aiEGQQAhBwNAIAAgB0YEQCAKIAsgCiALShshCwNAIAogC0YEQEEAIQcDQCAAIAdGDQggBiAHQQN0aiILIAsrAwAgLKM5AwAgB0EBaiEHDAALAAUgAyAXKAIYIApBAnRqKAIAIABsQQN0aiEJQQAhBwNAIAAgB0cEQCAGIAdBA3QiCGoiGyAIIAlqKwMAIBsrAwCgOQMAIAdBAWohBwwBCwsgCkEBaiEKDAELAAsABSAGIAdBA3RqQgA3AwAgB0EBaiEHDAELAAsAC0G4mgNBh74BQecHQZwxEAAAC0HC6wJBh74BQeYHQZwxEAAACyAEEBcgAigCNBogAisDQBogAigCUBogAi0AOBoQ0AkgDRBlICMQFyABIBdGDRIgFxBlDBILIAxBAWohDAwACwAFIAQgB0ECdGoiCSgCAEEATgRAIAkgCzYCACALQQFqIQsLIAdBAWohBwwBCwALAAsgBSAHQQJ0aigCACIIQQBIIAggCU5yRQRAIAQgCEECdGpBfzYCAAsgB0EBaiEHDAALAAUgBCAHQQJ0akEBNgIAIAdBAWohBwwBCwALAAtB86MDQYe+AUHiCEHRhAEQAAALIApBAWohCgwACwALIApBAWohCgwACwAFIAsgBSAHQQJ0aigCAEECdGpBfzYCACAHQQFqIQcMAQsACwAFIAsgB0ECdGpBATYCACAHQQFqIQcMAQsACwALIAMhDSACKAIQIQQCfyAXQQAQuQIEQCAXIBcoAhBBAUYNARoLIBcQ2wkLIgUQzgkgBBDNCSEEIAUgF0cEQCAEQQE6ABwLIAQDQCAEIgkoAhQiBA0ACyAJKAIYBEAgCSgCBCAAbEEIEBghDQtBfyAXKAIAIgUgBUEASBtBAWohBCAXKAIYIREgFygCFCEOIAVBAWpBBBAYIQwDQCAEIAdHBEAgDCAHQQJ0akEANgIAIAdBAWohBwwBCwsgBUEAIAVBAEobIRADQCALIBBHBEAgDiALQQJ0aigCACIHIA4gC0EBaiIEQQJ0aigCACIIIAcgCEobIRJBACEIA0AgByASRwRAIAggCyARIAdBAnRqKAIAR2ohCCAHQQFqIQcMAQsLIAwgCEECdGoiByAHKAIAQQFqIgc2AgAgCiAHIAcgCkgbIQogBCELDAELC0QAAAAAAADwv0TNzMzMzMz8vyAMKAIEtyIsIAq4RJqZmZmZmek/omRFIAW3RDMzMzMzM9M/oiAsY0VyGyEsIAwQFyACKwMAROJt72SBAPC/YQRAIAIgLDkDAAtBiPMIKAIAISkCQANAAkACQAJAAkACQAJAAkAgAigCPA4EAAEDAgELIAIrAyAhLyACKAIYIRMgAisDCCEtIAIrAwAhLCAJKAIIIQ4gAi0ALCEEQcgUQSBBASApEEoaIA5FIBNBAExyDQUgDigCBCIRQQBMDQUgDigCACAAIBFsIg9BCBAYIRAgBkEANgIAIBFHBEAgBkGcfzYCAEEAIQsMBQsgDigCIEUEQCAOQQEQjgMiEigCGCEYIBIoAhQhFQJAIAItACxBAXFFDQAgAigCKBC4BUEAIQcDQCAHIA9GDQEgDSAHQQN0ahC/AzkDACAHQQFqIQcMAAsACyAtRAAAAAAAAAAAYwRAIAIgEiAAIA0Q9AQiLTkDCAsgBEECcSEeICxEAAAAAAAAAABmBEAgAkKAgICAgICA+L9/NwMARAAAAAAAAPC/ISwLRJqZmZmZmck/RAAAAAAAAABAICyhRAAAAAAAAAhAoxCoASAtoyExQQAhFkQAAAAAAAAAACEuIABBCBAYIQsgLUQAAAAAAADwPyAsoSIyEKgBITQDQEEAIQcDQAJAQQAhBCAHIA9GBEBBACEMA0BBACEHIAwgEUYNAgNAIAAgB0YEQCANIAAgDGxBA3QiCGohFEEAIQoDQCAKIBFGBEACQCAIIBBqIQVBACEHA0AgACAHRg0BIAUgB0EDdCIIaiIKIAggC2orAwAgCisDAKA5AwAgB0EBaiEHDAALAAsFAkAgCiAMRg0AIA0gACAKbEEDdGohHEEAIQcgDSAAIAwgChCXAiAyEKgBISwDQCAAIAdGDQEgCyAHQQN0IgVqIiAgICsDACA0IAUgFGorAwAgBSAcaisDAKGiICyjoDkDACAHQQFqIQcMAAsACyAKQQFqIQoMAQsLIAxBAWohDAwCBSALIAdBA3RqQgA3AwAgB0EBaiEHDAELAAsACwAFIBAgB0EDdGpCADcDACAHQQFqIQcMAgsACwsDQAJAQQAhByAEIBFGBEBEAAAAAAAAAAAhLAwBCwNAIAAgB0cEQCALIAdBA3RqQgA3AwAgB0EBaiEHDAELCyANIAAgBGxBA3QiDGohFCAVIARBAWoiBUECdGohHCAVIARBAnRqKAIAIQoDQCAcKAIAIApMBEAgDCAQaiEEQQAhBwNAIAAgB0YEQCAFIQQMBQUgBCAHQQN0IghqIgogCCALaisDACAKKwMAoDkDACAHQQFqIQcMAQsACwAFAkAgGCAKQQJ0aiIHKAIAIgggBEYNACANIAAgBCAIEMoBISwgDSAHKAIAIABsQQN0aiEgQQAhBwNAIAAgB0YNASALIAdBA3QiCGoiIiAiKwMAIDEgCCAUaisDACAIICBqKwMAoaIgLKKhOQMAIAdBAWohBwwACwALIApBAWohCgwBCwALAAsLA0ACQCAHIBFHBEAgECAAIAdsQQN0IgVqIQpBACEIQQAhBANAIAAgBEYEQEQAAAAAAAAAACEtA0AgACAIRwRAIAsgCEEDdGorAwAiMCAwoiAtoCEtIAhBAWohCAwBCwsgLZ8hMEEAIQgCQCAtRAAAAAAAAAAAZEUNAANAIAAgCEYNASALIAhBA3RqIgQgBCsDACAwozkDACAIQQFqIQgMAAsACyAsIDCgISwgBSANaiEEQQAhCANAIAAgCEYNBCAEIAhBA3QiBWoiCiAvIAUgC2orAwCiIAorAwCgOQMAIAhBAWohCAwACwAFIAsgBEEDdCIMaiAKIAxqKwMAOQMAIARBAWohBAwBCwALAAsCQCAeRSAsIC5mckUEQCAsIC5EZmZmZmZm7j+iZA0BIC9ErkfhehSu7z+iRM3MzMzMzOw/oyEvDAELIC9EzczMzMzM7D+iIS8LIC9E/Knx0k1iUD9kBEAgLCEuIBZBAWoiFiATSA0DCyACLQAsQQRxBEAgACASIA0Q8wQLIA4gEkYNCCASEGUMCAsgB0EBaiEHDAALAAsAC0GuzwFBh74BQaUDQcgUEAAACyAJKAIIIQcMAgsgCSgCCCIHKAIAQZHOAEgNAUHwggstAABFDQAgHUGQzgA2AhAgKUGUoQEgHUEQahAdGgsgCSgCCCEKQQAhCEEAIRFEAAAAAAAAAAAhLiMAQYACayILJAACQCAKRQ0AIAIoAhgiFUEATCAAQQBMcg0AIAooAgQiDEEATA0AIAItACwhBSACKwMgIS0gAisDCCEvIAIrAwAhMCACKAIUIQQgCigCACEHIAtBKGpBAEG4ARAwGiALIAQ2AiggBkEANgIAAkAgByAMRwRAIAZBnH82AgAgAiAENgIUDAELIAooAiBFBEAgCkEBEI4DIg4oAhghFiAOKAIUIRICQCACLQAsQQFxRQ0AIAIoAigQuAUgACAMbCEEQQAhBwNAIAQgB0YNASANIAdBA3RqEL8DOQMAIAdBAWohBwwACwALIC9EAAAAAAAAAABjBEAgAiAOIAAgDRD0BCIvOQMICyAFQQJxIRggMEQAAAAAAAAAAGYEQCACQoCAgICAgID4v383AwBEAAAAAAAA8L8hMAtEmpmZmZmZyT9EAAAAAAAAAEAgMKFEAAAAAAAACECjEKgBIC+jITRBiPMIKAIAIR4gACAMbEEIEBghCCAvRAAAAAAAAPA/IDChEKgBITUDQCALQeABaiEEQQAhByAAIAwgCygCKCIUIA0QyQYiEyIFKAIQIQ8gBSgCACEQA0AgB0EERgRAQQAhByAPIBBsIg9BACAPQQBKGyEPA0AgByAPRwRAIAggB0EDdGpCADcDACAHQQFqIQcMAQsLIAUgBSANIAhEMzMzMzMz4z8gMCA1IAQQvgMgBSAIIAQQ1QkgELchLEEAIQcDQCAHQQRHBEAgBCAHQQN0aiIFIAUrAwAgLKM5AwAgB0EBaiEHDAELCwUgBCAHQQN0akIANwMAIAdBAWohBwwBCwtBACEEA0ACQCAEIAxGBEBBACEERAAAAAAAAAAAISwMAQsgDSAAIARsQQN0IgdqIRwgEiAEQQFqIgVBAnRqISAgByAIaiEiIBIgBEECdGooAgAhEANAICAoAgAgEEwEQCAFIQQMAwUCQCAWIBBBAnRqIhkoAgAiDyAERg0AQQAhByANIAAgBCAPEMoBISwDQCAAIAdGDQEgIiAHQQN0Ig9qIiEgISsDACA0IA8gHGorAwAgDSAZKAIAIABsQQN0aiAPaisDAKGiICyioTkDACAHQQFqIQcMAAsACyAQQQFqIRAMAQsACwALCwNAAkAgBCAMRwRAIAggACAEbEEDdCIQaiEFRAAAAAAAAAAAITFBACEHA0AgACAHRwRAIAUgB0EDdGorAwAiMiAyoiAxoCExIAdBAWohBwwBCwsgMZ8hMkEAIQcCQCAxRAAAAAAAAAAAZEUNAANAIAAgB0YNASAFIAdBA3RqIg8gDysDACAyozkDACAHQQFqIQcMAAsACyAsIDKgISwgDSAQaiEQQQAhBwNAIAAgB0YNAiAQIAdBA3QiD2oiHCAtIAUgD2orAwCiIBwrAwCgOQMAIAdBAWohBwwACwALIBFBAWohEQJAIBMEQCATEPYEIAtBKGogCysD8AFEZmZmZmZmCkCiIAsrA+gBRDMzMzMzM+s/oiALKwPgAaCgEMgJDAELQfCCCy0AAEUNACAOKAIIIQQgCyAvOQMgIAsgBDYCGCALICw5AxAgCyAtOQMIIAsgETYCACAeQc3MAyALEC0LAkAgGEUgLCAuZnJFBEAgLCAuRGZmZmZmZu4/omQNASAtRK5H4XoUru8/okTNzMzMzMzsP6MhLQwBCyAtRM3MzMzMzOw/oiEtCyAtRPyp8dJNYlA/ZARAICwhLiARIBVIDQMLIAItACxBBHEEQCAAIA4gDRDzBAsgAiAUNgIUIAogDkYNBCAOEGUMBAsgBEEBaiEEDAALAAsAC0GuzwFBh74BQZUCQd0aEAAACyAIEBcLIAtBgAJqJAAMAgtBACEOQQAhD0QAAAAAAAAAACEuIwBB4AFrIgokACACKwMgIS8gAigCGCEWIAIrAwghLCACKwMAIS0gAi0ALCEEIApBADYC3AEgCkEKNgLYASAKQQA2AtQBIApBADYC0AEgCkEANgLMASAKQgA3A8ABIAIoAhQhFSAKQQhqIgVBAEG4ARAwGgJAIAdFIBZBAExyIABBAExyDQAgBygCBCISQQBMDQAgBygCACERIBJBLU8EQCAFQQRyQQBBtAEQMBogCiAVNgIIIAogAEEKbEEIEBg2AtQBIApBCkEIEBg2AtABIApBCkEIEBg2AswBCyAGQQA2AgACQCARIBJHBEAgBkGcfzYCACAHIQsMAQsgBygCIEUEQCAHQQEQjgMiCygCGCEcIAsoAhQhGAJAIAItACxBAXFFDQAgAigCKBC4BSAAIBFsIQVBACEIA0AgBSAIRg0BIA0gCEEDdGoQvwM5AwAgCEEBaiEIDAALAAsgLEQAAAAAAAAAAGMEQCACIAsgACANEPQEIiw5AwgLIARBAnEhICARQQAgEUEAShshIiAtRAAAAAAAAAAAZgRAIAJCgICAgICAgPi/fzcDAEQAAAAAAADwvyEtC0SamZmZmZnJP0QAAAAAAAAAQCAtoUQAAAAAAAAIQKMQqAEgLKMhNyARuCEyIABBCBAYIQ4gLEQAAAAAAADwPyAtoSI0EKgBITUgEkEtSSEeA0BBACETIB5FBEAgACARIAooAggiFSANEMkGIRMLIA9BAWohD0EAIQREAAAAAAAAAAAhLEQAAAAAAAAAACEwRAAAAAAAAAAAITEDQEEAIQgCQAJAIAQgIkcEQANAIAAgCEcEQCAOIAhBA3RqQgA3AwAgCEEBaiEIDAELCyANIAAgBGxBA3RqIRAgGCAEQQFqIgVBAnRqIRkgGCAEQQJ0aigCACEMA0AgGSgCACAMSgRAAkAgHCAMQQJ0aiIhKAIAIhQgBEYNAEEAIQggDSAAIAQgFBDKASEtA0AgACAIRg0BIA4gCEEDdCIUaiIlICUrAwAgNyAQIBRqKwMAIA0gISgCACAAbEEDdGogFGorAwChoiAtoqE5AwAgCEEBaiEIDAALAAsgDEEBaiEMDAELC0EAIQwgHkUEQCATIBAgBCAKQdwBaiAKQdgBaiAKQdQBaiAKQdABaiAKQcwBaiAKQcABahDYCUEAIQQgCigC3AEiCEEAIAhBAEobIRQgCLchLSAKKALUASEZIAooAtABISEgCigCzAEhJSAKKwPAASEzA0AgBCAURg0DICEgBEEDdCIMaiEfIBkgACAEbEEDdGohGkEAIQggDCAlaisDACI2RBZW556vA9I8IDZEFlbnnq8D0jxkGyA0EKgBITYDQCAAIAhHBEAgDiAIQQN0IgxqIiQgJCsDACA1IB8rAwCiIAwgEGorAwAgDCAaaisDAKGiIDajoDkDACAIQQFqIQgMAQsLIARBAWohBAwACwALA0AgDCARRg0DAkAgBCAMRg0AIA0gACAMbEEDdGohGUEAIQggDSAAIAQgDBCXAiA0EKgBIS0DQCAAIAhGDQEgDiAIQQN0IhRqIiEgISsDACA1IBAgFGorAwAgFCAZaisDAKGiIC2joDkDACAIQQFqIQgMAAsACyAMQQFqIQwMAAsACyATBEAgExD2BCAKQQhqIDAgMqNEAAAAAAAAFECiIDEgMqOgEMgJCwJAICBFICwgLmZyRQRAICwgLkRmZmZmZmbuP6JkDQEgL0SuR+F6FK7vP6JEzczMzMzM7D+jIS8MAQsgL0TNzMzMzMzsP6IhLwsgL0T8qfHSTWJQP2QEQCAsIS4gDyAWSA0ECyACLQAsQQRxRQ0FIAAgCyANEPMEDAULIDAgLaAhMCAxIDOgITELRAAAAAAAAAAAIS1BACEIA0AgACAIRwRAIA4gCEEDdGorAwAiMyAzoiAtoCEtIAhBAWohCAwBCwsgLZ8hM0EAIQgCQCAtRAAAAAAAAAAAZEUNAANAIAAgCEYNASAOIAhBA3RqIgQgBCsDACAzozkDACAIQQFqIQgMAAsACyAsIDOgISxBACEIA0AgACAIRgRAIAUhBAwCBSAQIAhBA3QiBGoiDCAvIAQgDmorAwCiIAwrAwCgOQMAIAhBAWohCAwBCwALAAsACwALQa7PAUGHvgFBrgRB3IQBEAAACyASQS1PBEAgAiAVNgIUCyAHIAtHBEAgCxBlCyAOEBcgCigC1AEQFyAKKALQARAXIAooAswBEBcLIApB4AFqJAAMAQsgCxAXIBAQFwsgCSgCGCIFBEAgBigCAARAIA0QFwwDCyAJKAIMIAMhBCAFKAIYBEAgBSgCBCAAbEEIEBghBAsgAisDCCEsIAUoAhAhDiAFKAIIIQcgDSAEIAAQ3wkgBygCGCEQIAcoAhQhESAAQQgQGCEJQQAhCCAHKAIAIgdBACAHQQBKGyESA0ACQEEAIQcgCCILIBJGDQADQCAAIAdHBEAgCSAHQQN0akIANwMAIAdBAWohBwwBCwsgESALQQJ0aigCACIKIBEgC0EBaiIIQQJ0aigCACIHIAcgCkgbIRNBACEMA0AgCiATRwRAIAsgECAKQQJ0aigCACIHRwRAIAQgACAHbEEDdGohD0EAIQcDQCAAIAdHBEAgCSAHQQN0IhVqIhYgDyAVaisDACAWKwMAoDkDACAHQQFqIQcMAQsLIAxBAWohDAsgCkEBaiEKDAELCyAMQQBMDQFEAAAAAAAA4D8gDLijIS4gBCAAIAtsQQN0aiELQQAhBwNAIAAgB0YNAiALIAdBA3QiCmoiDCAMKwMARAAAAAAAAOA/oiAuIAkgCmorAwCioDkDACAHQQFqIQcMAAsACwsgCRAXIA4oAgAiC0EAIAtBAEobIQogLET8qfHSTWJQP6IhLCAOKAIYIQwgDigCFCEJA0AgByAKRwRAIAkgB0EBaiILQQJ0aiEOIAkgB0ECdGooAgAhCANAIAhBAWoiCCAOKAIATgRAIAshBwwDCyAMIAhBAnRqIRFBACEHA0AgACAHRg0BEL8DIS4gBCARKAIAIABsQQN0aiAHQQN0aiIQICwgLkQAAAAAAADgv6CiIBArAwCgOQMAIAdBAWohBwwACwALAAsLIA0QFyACQpqz5syZs+bcPzcDICACIAItACxB/AFxOgAsIAIgAisDCEQAAAAAAADoP6I5AwggBCENIAUhCQwBCwsgFyEFIAMhDUEAIQZBACEJQQAhCkQAAAAAAAAAACEtRAAAAAAAAAAAIS9EAAAAAAAAAAAhLgJAAkACQAJAAkACQCACKAIwIgNBAWsOBgMBAgQAAAULIAUoAgBBA0gNBAJ/IAAhCyADQQZHIQxBACEDIAUoAhghECAFKAIUIQcgBSgCACEIAkACQCAFQQAQuQIEQCAIQQAgCEEAShshDiAIQQgQGCERA0AgAyAORwRAIBEgA0EDdGohCiAHIANBAWoiBEECdGohEiAHIANBAnRqKAIAIQZBACEJRAAAAAAAAAAAISwDQCASKAIAIAZKBEAgECAGQQJ0aigCACITIANHBEAgCiANIAsgAyATEMoBICygIiw5AwAgCUEBaiEJCyAGQQFqIQYMAQsLIAlBAEwNAyAKICwgCbijOQMAIAQhAwwBCwtBOBBVIglC+6i4vZTcnsI/NwMoIAlCADcCFCAJQoCAgICAgID4PzcDICAJIAUoAgC3n5w5AzAgCSAIQQgQGCIPNgIMIAkgBQJ/IAhBA04EQCAMBEBBACEDIwBBEGsiBCQAIARCgICAgICAgPg/NwMIIAgQ3QEhBiAIEN0BIQcgBEEANgIEIAhBACAIQQBKGyEKA0AgAyAKRwRAIAYgA0EDdCIFaiANIANBBHRqIgwrAwA5AwAgBSAHaiAMKwMIOQMAIANBAWohAwwBCwtBACEDIAhBA04EQCMAQRBrIgUkACAFQfDYAzYCAEHY/wMgBRAyIAVBEGokAAsgCCAIQQFBAUEBEJgCIQUDQCAEKAIEIANKBEAgBSADQQN0IgwoAgAgDCgCBCAEQQhqEIkEIANBAWohAwwBCwsgCEECRgRAIAVBAEEBIARBCGoQiQQLQQAhAwNAIAMgCkcEQCAFIAMgAyAEQQhqEIkEIANBAWohAwwBCwsgBRDgCSEDIAUQZSADQQAQjgMgAxBlQQAQFyAGEBcgBxAXIARBEGokAAwCC0EAIQQjAEEQayIFJAAgBUKAgICAgICA+D83AwggCEEAIAhBAEobIQwgCBDdASEQIAgQ3QEhEgNAIAQgDEcEQCAQIARBA3QiA2ogDSAEIAtsQQN0aiIGKwMAOQMAIAMgEmogBisDCDkDACAEQQFqIQQMAQsLQQAhByMAQRBrIgYkAAJAAkACQAJAIAhBAWsOAgEAAgtBBEEEEMwCIQRBAkEMEMwCIgMgBDYCBCADQQA2AgggA0ECNgIAIARCgICAgBA3AgAgA0EANgIUIAMgBEEIajYCECADQQI2AgwgBEIBNwIIDAILQQFBBBDMAiEEQQFBDBDMAiIDIAQ2AgQgA0EANgIIIANBATYCACAEQQA2AgAMAQsgBkHw2AM2AgBBvP8DIAYQMkEAIQMLIAZBEGokACAIIAhBAUEBQQEQmAIhCkEAIQYDQCAGIAxGBEADQCAHIAxHBEAgCiAHIAcgBUEIahCJBCAHQQFqIQcMAQsLBSADIAZBDGxqIRNBASEEA0AgEygCACAESgRAIAogBiATKAIEIARBAnRqKAIAIAVBCGoQiQQgBEEBaiEEDAELCyAGQQFqIQYMAQsLIAoQ4AkiBEEAEI4DIAQQZSAKEGUgEBAXIBIQFyADBEAgAygCBBAXIAMoAggQFyADEBcLIAVBEGokAAwBCyAFEIoECyIEEMsGIgM2AgQgBBBlIAkgAxCKBCIENgIIIANBACAEG0UEQCAJEPUEQQAMBAsgBCgCHCEHIAMoAhwhDCADKAIYIRIgAygCFCEKQQAhAwNAIAMgDkcEQCAKIANBAWoiBUECdGohEyAKIANBAnRqKAIAIQZBfyEERAAAAAAAAAAAIS1EAAAAAAAAAAAhLANAIBMoAgAgBkoEQAJAIAMgEiAGQQJ0aigCACIQRgRAIAYhBAwBCyAMIAZBA3QiFWpEAAAAAAAA8D8gDSALIAMgEBCXAkQzMzMzMzPjPxCoASIwIDCioyIxOQMAIAcgFWoiFSAwIDGiIjI5AwAgMiANIAsgAyAQEMoBoiAuoCEuICwgMaAhLCAwIBUrAwAiMKIgL6AhLyAtIDCgIS0LIAZBAWohBgwBCwsgDyADQQN0aiIDIAMrAwAgLJqiIjA5AwAgBEEASA0EIAwgBEEDdCIDaiAwICyhOQMAIAMgB2ogLZo5AwAgBSEDDAELC0EAIQYgCiAIQQJ0aigCACIDQQAgA0EAShshAyAuIC+jISwDQCADIAZHBEAgByAGQQN0aiIEICwgBCsDAKI5AwAgBkEBaiEGDAELCyAJICw5AyAgERAXIAkMAwtB+6QDQdi7AUGsBUGbFhAAAAtBoJIDQdi7AUG4BUGbFhAAAAtB0pUDQdi7AUH6BUGbFhAAAAsiAyALIA0QywkgAxD1BAwEC0EBIQYMAQtBAiEGCwJ/IAAhByAGIQtBACEGQQAhBCAFKAIYIRAgBSgCFCEOIAUoAgAhCCAFQQAQuQIEQCAFIAcgDRDMCSEkQTgQVSIMQvuouL2U3J7CPzcDKCAMQgA3AhQgDEKAgICAgICA+D83AyAgDCAFKAIAt5+cOQMwIAwgCEEIEBgiIDYCDCAIQQAgCEEAShshEwNAIAYgE0cEQCAgIAZBA3RqRJqZmZmZmak/OQMAIAZBAWohBgwBCwsgCEEEEBghESAIQQgQGCESQQAhAwNAIAMgE0YEQANAIAQgE0YEQEEAIQlBACEDA0AgAyATRwRAIBEgA0ECdCIEaiADNgIAIAQgDmooAgAiBCAOIANBAWoiBUECdGooAgAiBiAEIAZKGyEKIAQhBgNAIAYgCkcEQCADIBEgECAGQQJ0aigCAEECdGoiDygCAEcEQCAPIAM2AgAgCUEBaiEJCyAGQQFqIQYMAQsLA0AgBCAKRgRAIAUhAwwDBSAOIBAgBEECdGooAgBBAnRqIg8oAgAiBiAPKAIEIg8gBiAPShshDwNAIAYgD0cEQCADIBEgECAGQQJ0aigCAEECdGoiFSgCAEcEQCAVIAM2AgAgCUEBaiEJCyAGQQFqIQYMAQsLIARBAWohBAwBCwALAAsLIAwgCCAIIAggCWoiA0EBQQAQmAIiDzYCBCAMIAggCCADQQFBABCYAiIVNgIIIA9BACAVG0UEQCAMEPUEQQAMBgsgFSgCGCEeIBUoAhwhFiAPKAIcIRQgDygCGCEcIA8oAhQhIkEAIQMgFSgCFCImQQA2AgAgIkEANgIAQQAhBANAIAQgE0cEQCARIARBAnQiBmogBCAIaiIYNgIAIBIgBEEDdCInaiEZIA4gBEEBaiIFQQJ0IiFqISUgBiAOaiIKKAIAIQZEAAAAAAAAAAAhMEQAAAAAAAAAACEuA0AgJSgCACIJIAZKBEAgGCARIBAgBkECdGooAgAiCUECdGoiHygCAEcEQCAfIBg2AgAgHCADQQJ0Ih9qIAk2AgBEAAAAAAAA8D8hLAJAAkACQAJAIAsOAwMCAAELIA0gByAEIAkQlwJEmpmZmZmZ2T8QqAEhLAwCC0HhggFBHUEBQYjzCCgCABBKGkHXmgNB2LsBQcYBQc0WEAAACyAZKwMAIBIgCUEDdGorAwCgRAAAAAAAAOA/oiEsCyAUIANBA3QiGmpEAAAAAAAA8L8gLCAsoqMiMTkDACAeIB9qIAk2AgAgFiAaaiIfICwgMaIiMjkDACAyIA0gByAEIAkQygGiIC+gIS8gLiAxoCEuIDAgHysDACIxoCEwIDEgLKIgLaAhLSADQQFqIQMLIAZBAWohBgwBCwsgCigCACEKA0AgCSAKSgRAIBIgECAKQQJ0aigCACIfQQN0aiEoIA4gH0ECdGoiKigCACEGA0AgKigCBCAGSgRAIBggESAQIAZBAnRqIhooAgAiCUECdGoiKygCAEcEQCArIBg2AgBEAAAAAAAAAEAhLAJAAkACQAJAIAsOAwMCAAELIA0gByAEIAkQlwIgGigCACEJRJqZmZmZmdk/EKgBISwMAgtB4YIBQR1BAUGI8wgoAgAQShpB15oDQdi7AUHwAUHNFhAAAAsgKCsDACIsICygIBkrAwCgIBIgCUEDdGorAwCgRAAAAAAAAOA/oiEsCyAcIANBAnQiK2ogCTYCACAUIANBA3QiCWpEAAAAAAAA8L8gLCAsoqMiMTkDACAeICtqIBooAgAiGjYCACAJIBZqIgkgLCAxoiIyOQMAIDIgDSAHIBogHxDKAaIgL6AhLyAuIDGgIS4gMCAJKwMAIjGgITAgMSAsoiAtoCEtIANBAWohAwsgBkEBaiEGDAELCyAKQQFqIQogJSgCACEJDAELCyAcIANBAnQiBmogBDYCACAgICdqIgkgCSsDACAumqIiLDkDACAUIANBA3QiCWogLCAuoTkDACAGIB5qIAQ2AgAgCSAWaiAwmjkDACAhICJqIANBAWoiAzYCACAhICZqIAM2AgAgBSEEDAELC0EAIQYgA0EAIANBAEobIQQgLyAtoyEsA0AgBCAGRwRAIBYgBkEDdGoiBSAsIAUrAwCiOQMAIAZBAWohBgwBCwsgDCAsOQMgIA8gAzYCCCAVIAM2AgggERAXIBIQFyAkEGUgDAwFBSARIARBAnRqQX82AgAgBEEBaiEEDAELAAsACyASIANBA3RqIQogDiADQQFqIgVBAnRqIQ8gDiADQQJ0aigCACEGQQAhCUQAAAAAAAAAACEsA0AgDygCACAGSgRAIBAgBkECdGooAgAiFSADRwRAIAogDSAHIAMgFRDKASAsoCIsOQMAIAlBAWohCQsgBkEBaiEGDAELCyAJQQBKBEAgCiAsIAm4ozkDACAFIQMMAQsLQaCSA0HYuwFBiQFBzRYQAAALQfukA0HYuwFB8ABBzRYQAAALIgMgByANEMsJIAMQ9QQMAQsCfyAAIQtBACEDIAUoAhghDiAFKAIUIQggBSgCACERIAVBABC5AgRAIAUgACANEMwJIhwoAhwhFSARQQAgEUEAShshEkEIEFUhEyARQQQQGCEMIBFBCBAYIRADQCADIBJGBEBBACEHA0AgByASRgRAQQAhAwNAIAMgEkcEQCAMIANBAnQiBGogAzYCACAEIAhqKAIAIgYgCCADQQFqIgRBAnRqKAIAIgcgBiAHShshDyAGIQcDQCAHIA9HBEAgAyAMIA4gB0ECdGooAgBBAnRqIhYoAgBHBEAgFiADNgIAIAlBAWohCQsgB0EBaiEHDAELCwNAIAYgD0YEQCAEIQMMAwUgCCAOIAZBAnRqKAIAQQJ0aiIWKAIAIgcgFigCBCIWIAcgFkobIRYDQCAHIBZHBEAgAyAMIA4gB0ECdGooAgBBAnRqIhgoAgBHBEAgGCADNgIAIAlBAWohCQsgB0EBaiEHDAELCyAGQQFqIQYMAQsACwALC0EAIQMgEyARIBEgCUEBQQAQmAIiBDYCACAERQRAIBMQyglBAAwGCyAEKAIcIRYgBCgCGCEYIAQoAhQiIEEANgIAA0AgCiASRwRAIAwgCkECdCIGaiAKIBFqIg82AgAgECAKQQN0aiEeIAggCkEBaiIKQQJ0IiJqIRQgBiAIaiIJKAIAIQcDQCAUKAIAIgYgB0oEQCAPIAwgDiAHQQJ0aigCACIGQQJ0aiIZKAIARwRAIBkgDzYCACAYIANBAnRqIAY2AgAgFiADQQN0aiIZIB4rAwAgECAGQQN0aisDAKBEAAAAAAAA4D+iOQMAIBkgFSAHQQN0aisDADkDACADQQFqIQMLIAdBAWohBwwBCwsgCSgCACEJA0AgBiAJSgRAIBUgCUEDdGohBiAQIA4gCUECdGooAgAiB0EDdGohGSAIIAdBAnRqIiEoAgAhBwNAICEoAgQgB0oEQCAPIAwgDiAHQQJ0aiIlKAIAIh9BAnRqIhooAgBHBEAgGiAPNgIAIBggA0ECdGogHzYCACAWIANBA3RqIh8gGSsDACIsICygIB4rAwCgIBAgJSgCAEEDdGorAwCgRAAAAAAAAOA/ojkDACAfIAYrAwAgFSAHQQN0aisDAKA5AwAgA0EBaiEDCyAHQQFqIQcMAQsLIAlBAWohCSAUKAIAIQYMAQsLICAgImogAzYCAAwBCwsgBCADNgIIIBMQyQkiAzYCBCADIAJB2AAQHiIDQQE2AhAgA0EUNgIYIAMgAy0ALEH+AXE6ACwgAyADKwMgRAAAAAAAAOA/ojkDICAMEBcgEBAXIBwQZSATDAUFIAwgB0ECdGpBfzYCACAHQQFqIQcMAQsACwALIBAgA0EDdGohDyAIIANBAWoiBEECdGohFiAIIANBAnRqKAIAIQdBACEGRAAAAAAAAAAAISwDQCAWKAIAIAdKBEAgDiAHQQJ0aigCACIYIANHBEAgDyANIAsgAyAYEMoBICygIiw5AwAgBkEBaiEGCyAHQQFqIQcMAQsLIAZBAEoEQCAPICwgBrijOQMAIAQhAwwBCwtBoJIDQdi7AUGrBkGIFhAAAAtB+6QDQdi7AUGZBkGIFhAAAAsiHCEEQQAhCkEAIRNBACEPIwBBEGsiECQAIBBBADYCDCAEKAIAIQMgBCgCBCEMIwBBIGsiCCQAIAwrAyAhLyAMKAIYIRUgDCsDCCEtIAwrAwAhLCAMLQAsIQkgCEEANgIcIAhBCjYCGCAIQQA2AhQgCEEANgIQIAhBADYCDCAIQgA3AwACQCAFRSAVQQBMciALQQBMcg0AIAUoAgQiBEEATA0AIAUoAgAhDiAEQS1PBEAgCCALQQpsQQgQGDYCFCAIQQpBCBAYNgIQIAhBCkEIEBg2AgwLIBBBADYCDAJAIAQgDkcEQCAQQZx/NgIMIAUhBwwBCyAFKAIgRQRAIAVBARCOAyIHKAIYISAgBygCFCEWIAMoAhwhIiADKAIYIRkgAygCFCEYAkAgDC0ALEEBcUUNACAMKAIoELgFIAsgDmwhA0EAIQYDQCADIAZGDQEgDSAGQQN0ahC/AzkDACAGQQFqIQYMAAsACyAtRAAAAAAAAAAAYwRAIAwgByALIA0Q9AQiLTkDCAsgCyAObCIDQQN0ISEgCUECcSElIA5BACAOQQBKGyEfICxEAAAAAAAAAABmBEAgDEKAgICAgICA+L9/NwMARAAAAAAAAPC/ISwLRJqZmZmZmck/RAAAAAAAAABAICyhRAAAAAAAAAhAoxCoASAtoyI0RJqZmZmZmck/oiE1IAtBCBAYIQogA0EIEBghEyAtRAAAAAAAAPA/ICyhIjAQqAEhMSAEQS1JIR4DQCATIA0gIRAeGkEAIRIgHkUEQCALIA5BCiANEMkGIRILIA9BAWohD0EAIQNEAAAAAAAAAAAhLANAQQAhBgJAIAMgH0cEQANAIAYgC0cEQCAKIAZBA3RqQgA3AwAgBkEBaiEGDAELCyANIAMgC2xBA3RqIREgFiADQQFqIgRBAnQiGmohJCAWIANBAnQiJmooAgAhCQNAICQoAgAgCUoEQAJAICAgCUECdGoiJygCACIUIANGDQBBACEGIA0gCyADIBQQygEhLQNAIAYgC0YNASAKIAZBA3QiFGoiKCAoKwMAIDQgESAUaisDACANICcoAgAgC2xBA3RqIBRqKwMAoaIgLaKhOQMAIAZBAWohBgwACwALIAlBAWohCQwBCwsgGCAaaiEaIBggJmooAgAhCQNAIBooAgAgCUoEQAJAIBkgCUECdGoiJCgCACIUIANGDQAgIiAJQQN0aiEmQQAhBiANIAsgAyAUEJcCIS0DQCAGIAtGDQEgCiAGQQN0IhRqIicgJysDACAtICYrAwAiMqEiMyAzIDUgESAUaisDACANICQoAgAgC2xBA3RqIBRqKwMAoaKioiAtoyIzIDOaIC0gMmMboDkDACAGQQFqIQYMAAsACyAJQQFqIQkMAQsLQQAhCSAeRQRAIBIgESADIAhBHGogCEEYaiAIQRRqIAhBEGogCEEMaiAIENgJIAgoAhwiA0EAIANBAEobIRQgCCgCFCEaIAgoAhAhJCAIKAIMISYDQCAJIBRGDQMgJCAJQQN0IgNqIScgGiAJIAtsQQN0aiEoQQAhBiADICZqKwMAIi1EFlbnnq8D0jwgLUQWVueerwPSPGQbIDAQqAEhLQNAIAYgC0cEQCAKIAZBA3QiA2oiKiAqKwMAIDEgJysDAKIgAyARaisDACADIChqKwMAoaIgLaOgOQMAIAZBAWohBgwBCwsgCUEBaiEJDAALAAsDQCAJIA5GDQICQCADIAlGDQAgDSAJIAtsQQN0aiEaQQAhBiANIAsgAyAJEJcCIDAQqAEhLQNAIAYgC0YNASAKIAZBA3QiFGoiJCAkKwMAIDEgESAUaisDACAUIBpqKwMAoaIgLaOgOQMAIAZBAWohBgwACwALIAlBAWohCQwACwALIBIEQCASEPYECwJAICVFICwgLmZyRQRAICwgLkRmZmZmZmbuP6JkDQEgL0SuR+F6FK7vP6JEzczMzMzM7D+jIS8MAQsgL0TNzMzMzMzsP6IhLwsgL0T8qfHSTWJQP2QEQCAsIS4gDyAVSA0DCyAMLQAsQQRxRQ0EIAsgByANEPMEDAQLRAAAAAAAAAAAIS1BACEGA0AgBiALRwRAIAogBkEDdGorAwAiMiAyoiAtoCEtIAZBAWohBgwBCwsgLZ8hMkEAIQYCQCAtRAAAAAAAAAAAZEUNAANAIAYgC0YNASAKIAZBA3RqIgMgAysDACAyozkDACAGQQFqIQYMAAsACyAsIDKgISxBACEGA0AgBiALRgRAIAQhAwwCBSARIAZBA3QiA2oiCSAvIAMgCmorAwCiIAkrAwCgOQMAIAZBAWohBgwBCwALAAsACwALQa7PAUGHvgFB0QVB+IQBEAAACyATEBcgBSAHRwRAIAcQZQsgChAXIAgoAhQQFyAIKAIQEBcgCCgCDBAXCyAIQSBqJAAgECgCDARAQbCHAUHYuwFBigdBtfoAEAAACyAQQRBqJAAgHBDKCQtB8IILLQAABEAgHSACKAI0NgIAIClBvr8EIB0QHRoLAkACQCAAQQJGBEBBACEAQQAhBCMAQTBrIgMkAANAIABBBEcEQCADQRBqIABBA3RqQgA3AwAgAEEBaiEADAELCyADQgA3AwggA0IANwMAICNBACAjQQBKGyEFA0AgBCAFRwRAIARBAXQhBkEAIQADQCAAQQJHBEAgAyAAQQN0aiIHIA0gACAGckEDdGorAwAgBysDAKA5AwAgAEEBaiEADAELCyAEQQFqIQQMAQsLICO3ISxBACEEQQAhAANAIABBAkYEQAJAA38gBCAFRgR/QQAFIARBAXQhBkEAIQADQCAAQQJHBEAgDSAAIAZyQQN0aiIHIAcrAwAgAyAAQQN0aisDAKE5AwAgAEEBaiEADAELCyAEQQFqIQQMAQsLIQQDQAJAIAQgBUcEQCAEQQF0IQdBACEGA0AgBkECRg0CIAZBAXQhCyANIAYgB3JBA3RqKwMAISxBACEAA0AgAEECRwRAIANBEGogACALckEDdGoiCSAsIA0gACAHckEDdGorAwCiIAkrAwCgOQMAIABBAWohAAwBCwsgBkEBaiEGDAALAAtEAAAAAAAAAAAhLCADKwMYIi5EAAAAAAAAAABiBEAgAysDKCIsIAMrAxAiLaEgLCAsoiAtRAAAAAAAAADAoiAsoiAtIC2iIC4gLkQAAAAAAAAQQKKioKCgn6GaIC4gLqCjISwLRAAAAAAAAPA/ICwgLKJEAAAAAAAA8D+gnyItoyEuICwgLaMhLEEAIQADQCAAIAVHBEAgDSAAQQR0aiIEICwgBCsDCCItoiAEKwMAIi8gLqKhOQMIIAQgLyAsoiAuIC2ioDkDACAAQQFqIQAMAQsLIANBMGokAAwCCyAEQQFqIQQMAAsACwUgAyAAQQN0aiIGIAYrAwAgLKM5AwAgAEEBaiEADAELCyACKwNIIi5EAAAAAAAAAABhDQIgHUIANwN4IB1CADcDcEEAIQcgHSsDeCEtIB0rA3AhLANAIAcgI0YNAiANIAdBBHRqIgArAwAgLKAhLCAAKwMIIC2gIS0gB0EBaiEHDAALAAsgAisDSEQAAAAAAAAAAGENAUHg6wJBh74BQbMHQbqVARAAAAsgHSAtOQN4IB0gLDkDcCAjuCEsQQAhBwNAIAdBAkYEQEEAIQcgHSsDeCEsIB0rA3AhLQNAIAcgI0cEQCANIAdBBHRqIgAgACsDACAtoTkDACAAIAArAwggLKE5AwggB0EBaiEHDAELC0EAIQcgLkRw4g2lRd+Rv6IiLhBTISwgLhBBIS4DQCAHICNGDQMgDSAHQQR0aiIAIC4gACsDCCItoiAAKwMAIi8gLKKhOQMIIAAgLyAuoiAsIC2ioDkDACAHQQFqIQcMAAsABSAdQfAAaiAHQQN0aiIAIAArAwAgLKM5AwAgB0EBaiEHDAELAAsACyACKAI0GiACKwNAGiACKAJQGiACLQA4GhDQCQsgAiAdQRhqQdgAEB4aIAEgF0cEQCAXEGULEM8JCyAdQYABaiQACxMAIAAgAUHYI0HFAUGHvgEQ0gELTAEBfyAAKAIEIgIgAUsEQCACQSFPBH8gACgCAAUgAAsgAUEDdmoiACAALQAAQQEgAUEHcXRyOgAADwtBjLEDQaD+AEHQAEHIIRAAAAuqAgEDfwJAAkAgACgCACICQQBOBEAgAEEIaiIEIAJBA3RqIAE5AwACQAJAAkAgACgCsAEOAgABAgsgAkEURgRAIABBEzYCACAAQX82ArABDwsgAEEBNgKwASAAQRQgAkEBaiACQRRPGzYCAA8LIAJFDQIgAkEBayEDAkAgAkETSw0AIAEgBCADQQN0aisDAGNFDQAgACACQQFqNgIADwsgAEF/NgKwASAAIAM2AgAPCyACQRRPDQIgAkEBaiEDAkAgAkUNACABIAQgA0EDdGorAwBjRQ0AIAAgAkEBazYCAA8LIABBATYCsAEgACADNgIADwtBwJUDQYe+AUH5AEHR5wAQAAALQfmJA0GHvgFBhAFB0ecAEAAAC0GU1gFBh74BQYwBQdHnABAAAAubAQEBf0EBQdgAEBgiAELi272nlpCA+L9/NwMAIABBADYCUCAAQgA3A0ggAEKAgICAgICAiEA3A0AgAEEDNgI8IABBAToAOCAAQgA3AzAgAEH7ADYCKCAAQpqz5syZs+bcPzcDICAAQfQDNgIYIABCgICAgKABNwMQIABCgICAgICAgPi/fzcDCCAAIAAtACxB+AFxQQNyOgAsIAALKAEBfwJAIABFDQAgACgCACIBBEAgARBlCyAAKAIEIgBFDQAgABAXCwuyGQIlfwh8IAAoAgwhGyAAKAIEIQ8gACgCCCIDEIoEIRoCQAJAIA8oAgAiDiABbCIYQQgQRSIcRQ0AIBwgAiAYQQN0EB4hICAYQQgQRSITRQ0AIA8oAhwhISAaKAIcIR0gAygCHCEiIAMoAhghIyADKAIUIR4CQAJAAkACQAJAIAAoAhhBAUYEQCAAKAIUIgUrAwAhKSAFKAIcIQcgBSgCGCEJIAUoAhQhBiAFKAIQIRQgBSgCDCEIIAUoAiAiAygCGCELIAMoAhQhFQJ/IAUoAggiA0F9cUEBRgRAAkAgBgRAIAhBACAIQQBKGyEQDAELIAcgCXINBkEAIQMgCEEAIAhBAEobIRADQCAEIBBHBEACfyAVIBQgBEECdGooAgBBAnRqIgcoAgQgBygCAGu3RAAAAAAAAPA/oCIoICiiIiiZRAAAAAAAAOBBYwRAICiqDAELQYCAgIB4CyADaiEDIARBAWohBAwBCwsgBSADQQQQGCIGNgIUIAUgA0EEEBgiCTYCGCAFIANBCBAYIgc2AhwLICmaISxBACEEA0AgCiAQRwRAAkAgCyAVIBQgCkECdGooAgAiCEECdGoiBSgCAEECdGoiAygCACIMIAMoAgQiA0YNACACIAEgDCADEJcCISggBSgCBCEDIAUoAgAhDCAGIARBAnQiDWogCDYCACAJIA1qIAg2AgAgByAEQQN0aiApICggKKIiKKM5AwAgLCAoIAMgDGu3IiqioyErIAUoAgAhAwNAIARBAWohBCAFKAIEIg0gA0oEQCAGIARBAnQiDGogCDYCACAJIAxqIAsgA0ECdGooAgA2AgAgByAEQQN0aiArOQMAIANBAWohAwwBCwsgKSAoICogKqKioyEoIAUoAgAhDANAIAwgDU4NASAGIARBAnQiA2ogCyAMQQJ0aigCACIWNgIAIAMgCWogCDYCACAHIARBA3RqICs5AwAgBSgCACEDA0AgBEEBaiEEIAUoAgQiDSADSgRAIAsgA0ECdGooAgAhDSAGIARBAnQiEWogFjYCACAJIBFqIA02AgAgByAEQQN0aiAoOQMAIANBAWohAwwBCwsgDEEBaiEMDAALAAsgCkEBaiEKDAELC0EAIQwgBCAOIA4gBiAJIAdBAUEIEMADDAELAkAgA0ECaw4DAAQABAsgBkUEQCAHIAlyDQYgBSAIQQQQGCIGNgIUIAUgCEEEEBgiCTYCGCAFIAhBCBAYIgc2AhwLIAhBACAIQQBKGyEIIAFBACABQQBKGyEQIBhBCBAYIQwDQCAIIApHBEAgAiABIAsgFSAUIApBAnQiBWooAgAiA0ECdGoiBCgCAEECdGoiDSgCACANKAIEEJcCISggBSAGaiADNgIAIAUgCWogAzYCACAHIApBA3RqICkgKKMiKDkDACAEKAIAIgUgBCgCBCINIAUgDUobIREgDCABIANsQQN0aiEWIAUhAwNAIAMgEUYEQAJAICggDSAFa7ejIShBACEEA0AgBCAQRg0BIBYgBEEDdGoiAyAoIAMrAwCiOQMAIARBAWohBAwACwALBSACIAsgA0ECdGooAgAgAWxBA3RqIRlBACEEA0AgBCAQRwRAIBYgBEEDdCISaiIXIBIgGWorAwAgFysDAKA5AwAgBEEBaiEEDAELCyADQQFqIQMMAQsLIApBAWohCgwBCwsgCCAOIA4gBiAJIAdBAUEIEMADCyIQDQELQQAhEAwBCyAPIBAQywYhDwsgDkEAIA5BAEobIRQgAUEAIAFBAEobIRUgGEEDdCEkRAAAAAAAAPA/ISkDQCApRPyp8dJNYlA/ZEUgH0EyTnINBSAfQQFqIR9BACEDA0AgAyAURwRAIB4gA0EBaiIFQQJ0aiEKIB4gA0ECdGooAgAhB0QAAAAAAAAAACEoQX8hCQNAIAooAgAgB0oEQAJAICMgB0ECdGoiBigCACIEIANGBEAgByEJDAELIAIgASADIAQQygEhKkQAAAAAAAAAACEpICIgB0EDdCIIaiIOKwMAIitEAAAAAAAAAABiBEAgKkQAAAAAAAAAAGEEfCArIAggIWorAwCjISlBACEEA0AgBCAVRwRAEL8DISogAiAGKAIAIAFsQQN0aiAEQQN0aiILICpELUMc6+I2Gj+gRC1DHOviNho/oiApoiALKwMAoDkDACAEQQFqIQQMAQsLIAIgASADIAYoAgAQygEhKiAOKwMABSArCyAqoyEpCyAIIB1qICk5AwAgKCApoCEoCyAHQQFqIQcMAQsLIAlBAEgNBSAdIAlBA3RqICiaOQMAIAUhAwwBCwsgGiACIBMgARDfCUEAIQMCQCAbRQ0AA0AgAyAURg0BIAEgA2whBSAbIANBA3RqIQdBACEEA0AgBCAVRwRAIBMgBCAFakEDdCIJaiIGIAcrAwAgCSAgaisDAKIgBisDAKA5AwAgBEEBaiEEDAELCyADQQFqIQMMAAsAC0EAIQMCQCAAKAIYQQFHDQADQCADIBRGDQEgASADbCEFQQAhBANAIAQgFUcEQCATIAQgBWpBA3QiB2oiCSAHIAxqKwMAIAkrAwCgOQMAIARBAWohBAwBCwsgA0EBaiEDDAALAAsgACsDKCEtIAArAzAhLkEAIQNBACEORAAAAAAAAAAAISsjAEEQayIIJAACQAJAIA8oAhBBAUYEQCAPKAIcIglFDQEgDygCGCEKIA8oAhQhByAPKAIAIgZBAWoQ3QEiDSAGtyIsOQMAIAZBACAGQQBKGyEWIA1BCGohGQNAIAMgFkcEQCAZIANBA3RqIgtCgICAgICAgPg/NwMAIAcgA0ECdGooAgAiBCAHIANBAWoiBUECdGooAgAiESAEIBFKGyERA0AgBCARRgRAIAUhAwwDBQJAIAMgCiAEQQJ0aigCAEcNACAJIARBA3RqKwMAIilEAAAAAAAAAABkIClEAAAAAAAAAABjckUNACALRAAAAAAAAPA/ICmjOQMACyAEQQFqIQQMAQsACwALCyABQQAgAUEAShshJSAGQQN0ISYgBhDdASEHIAYQ3QEhEQNAQQAhBCAOICVHBEADQCAEIBZHBEAgByAEQQN0IgNqIAIgASAEbCAOakEDdCIFaisDADkDACADIBFqIAUgE2orAwA5AwAgBEEBaiEEDAELCyAGEN0BIQsgCCAGEN0BNgIMIAYQ3QEhCiAIIAYQ3QE2AgggDyAHIAhBDGoQ3QkgCCgCDCEDQQAhBSAGQQAgBkEAShshCQNAIAUgCUcEQCADIAVBA3QiBGoiEiAEIBFqKwMAIBIrAwChOQMAIAVBAWohBQwBCwsgCCADNgIMIC0gBiADIAMQoQGfICyjIiqiIS9BACEDRAAAAAAAAPA/ISggByEJA0AgLiADuGRFICogL2RFckUEQCADQQFqQQAhBAJ/IA0rAwAiKZlEAAAAAAAA4EFjBEAgKaoMAQtBgICAgHgLIhJBACASQQBKGyEnIAgoAgwhEgNAIAQgJ0cEQCALIARBA3QiF2ogEiAXaisDACAXIBlqKwMAojkDACAEQQFqIQQMAQsLIAYgEiALEKEBISkCQCADBEAgKSAooyEoQQAhAyAGQQAgBkEAShshBANAIAMgBEcEQCAKIANBA3QiEmoiFyAoIBcrAwCiIAsgEmorAwCgOQMAIANBAWohAwwBCwsMAQsgCiALICYQHhoLIA8gCiAIQQhqEN0JIAYgCSAKICkgBiAKIAgoAggQoQGjIigQ2QkhCSAIIAYgCCgCDCAIKAIIICiaENkJIgM2AgwgBiADIAMQoQGfICyjISogKSEoIQMMAQsLIAsQFyAIKAIMEBcgChAXIAgoAggQFyATIA5BA3RqIQNBACEEA0AgBCAWRwRAIAMgASAEbEEDdGogByAEQQN0aisDADkDACAEQQFqIQQMAQsLIA5BAWohDiArICqgISsMAQsLIAcQFyAREBcgDRAXIAhBEGokAAwCC0G01QFBqL8BQSNBsBYQAAALQbPFAUGovwFBJUGwFhAAAAtBACEDRAAAAAAAAAAAISgDQCADIBRHBEAgASADbCEFQQAhBEQAAAAAAAAAACEpA0AgBCAVRwRAIBMgBCAFakEDdCIHaisDACACIAdqKwMAoSIqICqiICmgISkgBEEBaiEEDAELCyADQQFqIQMgKCApn6AhKAwBCwsgGCACIAIQoQEhKSACIBMgJBAeGiAoICmfoyEpDAALAAtBr6MDQdi7AUG7A0HoEhAAAAtBr6MDQdi7AUHlA0HoEhAAAAtB3ZUDQdi7AUHTBEGT+gAQAAALQQAhEwsgGhBlIBAEQCAQEGUgDxBlCyAcEBcgExAXIAwQFwuqBgINfwN8AkAgAEEAELkCBEAgABCKBCIFKAIcIQogBSgCGCELIAUoAhQhBiAFKAIQQQFHBEAgChAXIAVBATYCECAFIAUoAghBCBAYIgo2AhwLIAUoAgBBBBAYIQwgBSgCACIHQQAgB0EAShshDUEAIQADQCAAIA1GBEADQCADIA1GBEBBACEERAAAAAAAAAAAIRBBACEDDAULIAYgA0ECdCIOaigCACEEIAYgA0EBaiIIQQJ0aigCACEAIAwgDmogAzYCACAEIAAgACAESBshDiAAIARrIQkgBCEAA0AgACAORgRAIAm3IRIDQCAEIA5GBEAgCCEDDAQLAkAgCyAEQQJ0aigCACIAIANHBEAgBiAAQQJ0aiIJKAIAIgAgCSgCBCIJIAAgCUobIQ8gEiAJIABrt6AhEANAIAAgD0ZFBEAgEEQAAAAAAADwv6AgECAMIAsgAEECdGooAgBBAnRqKAIAIANGGyEQIABBAWohAAwBCwsgCiAEQQN0aiAQOQMAIBBEAAAAAAAAAABkRQ0BCyAEQQFqIQQMAQsLQZ6TA0HYuwFBxwBB/hIQAAALIAsgAEECdGooAgAiDyADRwRAIAwgD0ECdGogAzYCAAsgAEEBaiEADAALAAsABSAMIABBAnRqQX82AgAgAEEBaiEADAELAAsAC0H7pANB2LsBQSlB/hIQAAALA0ACQCADIAdIBEAgBiADQQFqIghBAnRqIQcgBiADQQJ0aigCACEAA0AgACAHKAIATg0CIAsgAEECdGooAgAiDSADRwRAIBEgAiABIAMgDRDKAaAhESAQIAogAEEDdGorAwCgIRAgBEEBaiEECyAAQQFqIQAMAAsACyARIAS3IhGjIBAgEaOjIRBBACEDIAdBACAHQQBKGyECA0AgAiADRwRAIAYgA0ECdGooAgAiACAGIANBAWoiAUECdGooAgAiCCAAIAhKGyEIA0AgACAIRgRAIAEhAwwDCyALIABBAnRqKAIAIANHBEAgCiAAQQN0aiIEIBAgBCsDAKI5AwALIABBAWohAAwACwALCyAMEBcgBQ8LIAUoAgAhByAIIQMMAAsAC+ocAil/A3wjAEEQayIRJAACQAJAAkACQAJAAkACQAJAIAAoAgAgAUEBa04NACAAKAIIIgYoAgS3RAAAAAAAAOg/oiEsAkADQCAGKAIAIgogBigCBEcNAyARQQA2AgggEUEANgIEIAYtACRBAXFFDQRBACECIApBACAKQQBKGyEQIAYoAhghHCAGKAIUIR0gCkEEEBghGiAKQQFqQQQQGCEUIApBBBAYIQ8DQCACIBBHBEAgDyACQQJ0aiACNgIAIAJBAWohAgwBCwsgBkEAELkCRQ0FIAYoAhBBAUcNBiAGKAIEIgJBACACQQBKGyENIAYoAgAhByAGKAIYIRIgBigCFCETIAJBBBBEIQggAkEBakEEEEQhBSACQQQQRCEOIAJBBBBEIQxBACEDA0AgAyANRwRAIAggA0ECdGpBADYCACADQQFqIQMMAQsLIAUgAjYCBCAFQQRqIQtBACEDA0AgAyANRgRAQQAhAiAHQQAgB0EAShshHkEBIQQDQCACIB5HBEAgEyACQQFqIgdBAnRqKAIAIRcgEyACQQJ0aigCACIDIQkDQCAJIBdIBEAgCyAIIBIgCUECdGooAgBBAnRqKAIAQQJ0aiIYIBgoAgBBAWs2AgAgCUEBaiEJDAELCwNAIAMgF04EQCAHIQIMAwUCQCACIA4gCCASIANBAnRqKAIAQQJ0aiIYKAIAIh9BAnQiCWoiFSgCAEoEQCAVIAI2AgAgCSALaiIVKAIARQRAIBVBATYCACAJIAxqIB82AgAMAgsgCSAMaiAENgIAIAsgBEECdGpBATYCACAYIAQ2AgAgBEEBaiEEDAELIBggCSAMaigCACIJNgIAIAsgCUECdGoiCSAJKAIAQQFqNgIACyADQQFqIQMMAQsACwALC0EAIQkgBUEANgIAIARBACAEQQBKGyECQQAhAwNAIAIgA0cEQCAFIANBAWoiA0ECdGoiByAHKAIAIAlqIgk2AgAMAQsLIBEgDDYCCEEAIQMDQCADIA1GBEAgBCEDA0AgA0EASgRAIAUgA0ECdGoiAiACQQRrKAIANgIAIANBAWshAwwBCwsgBUEANgIAIBEgBTYCBCARIAQ2AgwgDhAXIAgQFwUgBSAIIANBAnRqKAIAQQJ0aiICIAIoAgAiAkEBajYCACAMIAJBAnRqIAM2AgAgA0EBaiEDDAELCwUgDiADQQJ0akF/NgIAIANBAWohAwwBCwtBACEIIBRBADYCACARKAIMIgJBACACQQBKGyEMIAYoAhwhDiARKAIIIQsgESgCBCEDQQAhBUEAIQcDQCAFIAxHBEAgBUECdCECIAMgBUEBaiIFQQJ0aigCACIEIAIgA2ooAgAiAmtBAkgNASACIAQgAiAEShshBCAUIAhBAnRqKAIAIQkDQCACIARHBEAgDyALIAJBAnRqKAIAIg1BAnRqQX82AgAgGiAHQQJ0aiANNgIAIAdBAWoiByAJa0EETgRAIBQgCEEBaiIIQQJ0aiAHNgIAIAchCQsgAkEBaiECDAELCyAHIAlMDQEgFCAIQQFqIghBAnRqIAc2AgAMAQsLRAAAAAAAAAAAIStBACEFQQAhA0EAIQQCQCAKIgJBAEwNACACQQQQGCEEA0AgAiADRgRAIARBBGshAwNAIAJBAkgNAyACQQFMBEBB84kDQf29AUEcQfOoARAAAAUQpQEgAm8hCSADIAJBAnRqIgwoAgAhCyAMIAQgCUECdGoiCSgCADYCACAJIAs2AgAgAkEBayECDAELAAsABSAEIANBAnRqIAM2AgAgA0EBaiEDDAELAAsACyAEIQtBACEMQQAhAwNAIAwgEEcEQAJAIA8gCyAMQQJ0aigCACINQQJ0IgJqIhIoAgBBf0YNACACIB1qIgQoAgAiAiAEKAIEIgQgAiAEShshE0EBIQkDQCACIBNHBEACQCANIBwgAkECdGooAgAiBEYNACAPIARBAnRqKAIAQX9GDQAgCUEBcUEAIQkgDiACQQN0aisDACItICtkckUNACAtISsgBCEDCyACQQFqIQIMAQsLIAlBAXENACAPIANBAnRqQX82AgAgEkF/NgIAIBogB0ECdGoiAiADNgIEIAIgDTYCACAUIAhBAWoiCEECdGogB0ECaiIHNgIACyAMQQFqIQwMAQsLA0AgBSAQRwRAIAUgDyAFQQJ0aigCAEYEQCAaIAdBAnRqIAU2AgAgFCAIQQFqIghBAnRqIAdBAWoiBzYCAAsgBUEBaiEFDAELCyALEBcgESgCCBAXIBEoAgQQFyAPEBcgCCAKSg0HQQAhAgJAIAggCkYEQEEAIQdBACEFQQAhD0EAIQlBACEMDAELQQAhB0EAIQVBACEPQQAhCUEAIQwgCEEESA0AIApBBBAYIQ8gCkEEEBghCSAKQQgQGCEMA0AgByAIRwRAIBQgB0ECdGooAgAiBSAUIAdBAWoiBEECdGooAgAiAyADIAVIGyACIAVraiEDA0AgAiADRgRAIAMhAiAEIQcMAwUgDyACQQJ0IgtqIBogBUECdGooAgA2AgAgCSALaiAHNgIAIAwgAkEDdGpCgICAgICAgPg/NwMAIAVBAWohBSACQQFqIQIMAQsACwALCyACIApHDQkgCiAKIAggDyAJIAxBAUEIEMADIgcQzQYhBUEAIQJBACEOQQAhCkEAIQNBACELAkAgBigCICAFKAIgckUEQCAFKAIEIAYoAgBHDQEgBigCBCAHKAIARw0BIAUoAhAiBCAGKAIQRw0BIAQgBygCEEcNASAEQQFGBEAgBygCGCEXIAcoAhQhGCAGKAIYIRwgBigCFCEdIAUoAhghHiAFKAIUIRAgBSgCACESIAcoAgQiE0EEEEUiDUUNAiATQQAgE0EAShshAwNAIAIgA0YEQAJAIBJBACASQQBKGyEfQQAhAgNAIAIgH0cEQCAQIAJBAnRqKAIAIgggECACQQFqIgNBAnRqKAIAIgQgBCAISBshIEF+IAJrIRUDQCAIICBGBEAgAyECDAMFIB0gHiAIQQJ0aigCAEECdGoiAigCACIEIAIoAgQiAiACIARIGyEZA0AgBCAZRwRAIBggHCAEQQJ0aigCAEECdGoiFigCACICIBYoAgQiFiACIBZKGyEWA0AgAiAWRwRAIBUgDSAXIAJBAnRqKAIAQQJ0aiIiKAIARwRAICIgFTYCACAOQQFqIQ4LIAJBAWohAgwBCwsgBEEBaiEEDAELCyAIQQFqIQgMAQsACwALCyASIBMgDkEBQQAQmAIiAwRAIAMoAhwhCCAHKAIcIQ4gBigCHCEiIAUoAhwhJCADKAIYIRIgAygCFCITQQA2AgADQCALIB9HBEAgEyALQQJ0IgJqISUgECALQQFqIgtBAnQiJmohJyACIBBqKAIAIQQDQCAnKAIAIARKBEAgJCAEQQN0aiEVIB0gHiAEQQJ0aigCAEECdGoiKCgCACEGA0AgKCgCBCAGSgRAICIgBkEDdGohICAYIBwgBkECdGooAgBBAnRqIikoAgAhAgNAICkoAgQgAkoEQAJAIA0gFyACQQJ0aigCACIZQQJ0aiIqKAIAIhYgJSgCAEgEQCAqIAo2AgAgEiAKQQJ0aiAZNgIAIAggCkEDdGogFSsDACAgKwMAoiAOIAJBA3RqKwMAojkDACAKQQFqIQoMAQsgEiAWQQJ0aigCACAZRw0KIAggFkEDdGoiGSAVKwMAICArAwCiIA4gAkEDdGorAwCiIBkrAwCgOQMACyACQQFqIQIMAQsLIAZBAWohBgwBCwsgBEEBaiEEDAELCyATICZqIAo2AgAMAQsLIAMgCjYCCAsgDRAXDAULBSANIAJBAnRqQX82AgAgAkEBaiECDAELC0G3xgFBxbkBQYQJQbizAhAAAAtBt9UBQcW5AUHPCEG4swIQAAALQZTPAUHFuQFBwQhBuLMCEAAACyADIgRFBEBBACECDAELQQAhBkEAIQMCQCAFRQ0AIAUoAhQhCgJAAkACQAJAIAUoAhBBAWsOCAABBAIEBAQDBAsgBSgCACICQQAgAkEAShshCCAFKAIcIQsDQCADIAhGDQMgCiADQQJ0aigCACIGIAogA0EBaiIDQQJ0aigCACICIAIgBkgbIRAgAiAGa7chKwNAIAYgEEYNASALIAZBA3RqIgIgAisDACArozkDACAGQQFqIQYMAAsACwALIAUoAhghCyAFKAIAIgJBACACQQBKGyEQIAUoAhwhDQNAIAMgEEYNAiAKIANBAnRqKAIAIgYgCiADQQFqIgJBAnRqKAIAIgggBiAIShshDiAIIAZrtyErA0AgBiAORgRAIAIhAwwCCyADIAsgBkECdGooAgBHBEAgDSAGQQR0aiIIIAgrAwAgK6M5AwAgCCAIKwMIICujOQMICyAGQQFqIQYMAAsACwALQdeaA0HFuQFB1gtB4aEBEAAACyAFIQYLIAYhBSAEIAQtACRBA3I6ACQgBBDKBiECCyAPEBcgCRAXIAwQFyAaEBcgFBAXIAIEQCACKAIEIQQCfyAbRQRAIAchGyAFDAELICFFDQsgGyAHENwJIBsQZSAHEGUgBSAhENwJIQcgIRBlIAUQZSEbIAcLISEgIwRAICMQZQsgAiIjIQYgLCAEt2MNAQwCCwsgIyICRQ0BCyAAIAIQzgkiAzYCFCADIAAoAgBBAWo2AgAgAigCACECIAMgGzYCDCADIAI2AgQgACAhNgIQIAMgADYCGCADIAEQzQkaCyARQRBqJAAgAA8LQdLtAEHwvQFBlwFBvPQAEAAAC0H3tgFB8L0BQT9BqBkQAAALQfukA0HwvQFBywBBqBkQAAALQbTVAUHwvQFBzABBqBkQAAALQajuAEHwvQFBngFBvPQAEAAAC0GY7gBB8L0BQbMBQbz0ABAAAAtBrdABQfC9AUHaAUGn6AAQAAALZQECfyAARQRAQQAPCyAAKAIAIAAoAgRGBEBBAUEgEBgiAUEANgIAIAAoAgQhAiABQgA3AgwgASAANgIIIAEgAjYCBCABQgA3AhQgAUEAOgAcIAEPC0HS7QBB8L0BQRdBtSAQAAALRQEBfyAABEACQCAAKAIIIgFFDQAgACgCAEUEQCAALQAcRQ0BCyABEGULIAAoAgwQZSAAKAIQEGUgACgCFBDPCSAAEBcLCx4AQdDlCi0AAEUEQEHQ5QpBAToAAEGi2QNBABAyCws4AQJ/A0AgAEEATEUEQCACIABBAWsiAEEDdCIEaisDACABIARqKwMAY0UgA0EBdHIhAwwBCwsgAwtoAQN/QRgQVSIEIAE5AwAgAEEIEBghBSAEIAM2AgwgBCAFNgIIQQAhAyAAQQAgAEEAShshAANAIAAgA0ZFBEAgBSADQQN0IgZqIAIgBmorAwA5AwAgA0EBaiEDDAELCyAEQQA2AhAgBAtoAgJ/AXwgACABIAIgAxDUCSIBKAIUIQVBACEDIABBACAAQQBKGyEAIAKaIQcDQCAAIANGRQRAIAUgA0EDdGoiBiAGKwMAIAIgByAEQQFxG6A5AwAgA0EBaiEDIARBAm0hBAwBCwsgAQumAQEEf0E4EFUiBEEANgIAIAQgADYCECAEIABBCBAYIgY2AhQgAEEAIABBAEobIQADQCAAIAVGRQRAIAYgBUEDdCIHaiABIAdqKwMAOQMAIAVBAWohBQwBCwsgAkQAAAAAAAAAAGRFBEBBv5MDQcrAAUHsAkHAFhAAAAsgBEEANgIwIAQgAzYCLCAEQQA2AiggBEIANwMgIARCADcDCCAEIAI5AxggBAudAwIKfwJ8IAArAwghDSAAKAIoIQMgACAAKAIQIgUQ9wQhCAJAIA1EAAAAAAAAAABkBEAgAiACKwMQRAAAAAAAAPA/oDkDEAJAIAMEQCAFQQAgBUEAShshAgNAIANFDQIgAygCECIARQRAIAMgASADKAIMIAVsQQN0aiIANgIQCyADKwMAIA2jIQ5BACEEA0AgAiAERkUEQCAAIARBA3QiBmoiByAOIAYgCGorAwCiIAcrAwCgOQMAIARBAWohBAwBCwsgAygCFCEDDAALAAtBASAFdCIDQQAgA0EAShshByAFQQAgBUEAShshCUEAIQMDQCADIAdGDQEgACgCJCADQQJ0aigCACIGBEAgBigCAEEATA0EIAYgBRD3BCEKIAYrAwggDaMhDkEAIQQDQCAEIAlGRQRAIAogBEEDdCILaiIMIA4gCCALaisDAKIgDCsDAKA5AwAgBEEBaiEEDAELCyAGIAEgAhDVCQsgA0EBaiEDDAALAAsPC0HRkgNBysABQf0BQdaVARAAAAtBtJMDQcrAAUGPAkHWlQEQAAALYQEBfyABKAIAIgEgAigCACIGTgRAIAMgAygCACAAIAZsIAAgAUEKaiIAbBDGBjYCACAEIAQoAgAgAigCACAAEMYGNgIAIAUgBSgCACACKAIAIAAQxgY2AgAgAiAANgIACwvxAwIGfwF8IAkgCSsDAEQAAAAAAADwP6A5AwACQCAARQ0AIAAoAhAiC0EAIAtBAEobIQ0gAEEoaiEKA0AgCigCACIMBEAgCyAEIAUgBiAHIAgQ1gkgAyAMKAIMRwRAIAwoAgghDkEAIQoDQCAKIA1GRQRAIApBA3QiDyAGKAIAIAQoAgAgC2xBA3RqaiAOIA9qKwMAOQMAIApBAWohCgwBCwsgBygCACAEKAIAQQN0aiAMKwMAOQMAIAIgDiALEPgEIRAgCCgCACAEKAIAIgpBA3RqIBA5AwAgBCAKQQFqNgIACyAMQRRqIQoMAQsLIAAoAiRFDQAgACgCFCACIAsQ+AQhECAAKwMYIAEgEKJjRQRAQQAhCkEBIAt0IgtBACALQQBKGyELA0AgCiALRg0CIAAoAiQgCkECdGooAgAgASACIAMgBCAFIAYgByAIIAkQ1wkgCkEBaiEKDAALAAsgCyAEIAUgBiAHIAgQ1glBACEKA0AgCiANRkUEQCAKQQN0IgMgBigCACAEKAIAIAtsQQN0amogACgCICADaisDADkDACAKQQFqIQoMAQsLIAcoAgAgBCgCAEEDdGogACsDCDkDACAAKAIgIAIgCxD4BCEBIAgoAgAgBCgCACIAQQN0aiABOQMAIAQgAEEBajYCAAsLgwEBAX8gACgCECEJIAhCADcDACADQQA2AgAgBEEKNgIAIAUoAgBFBEAgBSAJQQpsQQgQGDYCAAsgBigCAEUEQCAGIAQoAgBBCBAYNgIACyAHKAIARQRAIAcgBCgCAEEIEBg2AgALIABEMzMzMzMz4z8gASACIAMgBCAFIAYgByAIENcJC0cBA38gAEEAIABBAEobIQADQCAAIARGRQRAIAEgBEEDdCIFaiIGIAMgAiAFaisDAKIgBisDAKA5AwAgBEEBaiEEDAELCyABC/8GAQ1/IwBB0ABrIgQkACAEQQA2AkggBEEANgJEIwBBEGsiByQAAkAgAEUNACAAEDUhDSAAEK4CIQogABAaIQMDQCADBEAgAygCECAFNgKIASAFQQFqIQUgACADEBshAwwBBSAKQQQQGCEIIApBBBAYIQkgCkEIEBghCyAAQQJB7CBBABAgIQ4gABAaIQZBACEFA0AgBkUEQCAKIA0gDSAIIAkgC0EBQQgQwAMhAyAIEBcgCRAXIAsQFwwECyAGKAIQKAKIASEPIAAgBhApIQMDQCADBEAgCCAFQQJ0IgxqIA82AgAgCSAMaiADQVBBACADKAIAQQNxQQJHG2ooAigoAhAoAogBNgIAIAsgBUEDdGogDgR8IAMgDhA+IAcgB0EIajYCAEHKiAEgBxBJIQwgBysDCEQAAAAAAADwPyAMQQFGGwVEAAAAAAAA8D8LOQMAIAVBAWohBSAAIAMQLCEDDAEFIAAgBhAbIQYMAgsACwALAAsACwALIAdBEGokACADIQcCf0EAIAEoAjRBAEgNABogASgCUEEASgRAIAQgAikDCDcDKCAEIAIpAwA3AyAgACAEQSBqIARByABqIARBxABqEMMKDAELIAQgAikDCDcDOCAEIAIpAwA3AzAgACAEQTBqQQBBABDDCgshCgJAQayDCy8BACAAEDVsIgJBgICAgAJJBEBBACACIAJBCBBFIgUbDQECQCAAQQFB/i1BABAgRQ0AIAAQGiEDA0AgA0UNAQJAIAMoAhAiBi0AhwFFDQBBACECIAVBrIMLLwEAIgggBigCiAFsQQN0aiEJA0AgAiAIRg0BIAkgAkEDdCILaiAGKAKUASALaisDADkDACACQQFqIQIMAAsACyAAIAMQGyEDDAALAAtBrIMLLwEAIAcgASAFIAQoAkggBCgCRCAEQcwAahDFCSAAEBohAwNAIAMEQEEAIQIgBUGsgwsvAQAiASADKAIQIgYoAogBbEEDdGohCANAIAEgAkcEQCACQQN0IgkgBigClAFqIAggCWorAwA5AwAgAkEBaiECDAELCyAAIAMQGyEDDAELCyAKEBcgBRAXIAcQZSAEKAJEEBcgBEHQAGokAA8LIARBCDYCBCAEIAI2AgBBiPMIKAIAQbHqAyAEEB0aECYACyAEIAJBA3Q2AhBBiPMIKAIAQYDqAyAEQRBqEB0aECYAC88BAQZ/AkAgAEUNACAAKAIEIgIgACgCAEcNACAAKAIYIQQgACgCFCEFIAIgAiAAKAIIIgZBCEEAEJgCIgEoAhQgBSACQQJ0QQRqEB4aIAEoAhggBCAGQQJ0EB4aIAEgACgCCDYCCCABQQEQjgMgARBlEMoGIgEgASgCCEEIEEQiADYCHCABKAIIIgJBACACQQBKGyECA0AgAiADRkUEQCAAIANBA3RqQoCAgICAgID4PzcDACADQQFqIQMMAQsLIAFBCDYCKCABQQE2AhALIAELnw4BF38CQAJAAkAgASgCICAAKAIgckUEQCAAKAIEIAEoAgBHDQMgACgCECIIIAEoAhBHDQMgASgCGCEVIAEoAhQhFiAAKAIYIRcgACgCFCEPIAAoAgAhBSABKAIEIgpBBBBFIhRFDQMgCkEAIApBAEobIQwCQAJAAkADQCACIAxGBEACQCAFQQAgBUEAShshGEEAIQIDQCACIBhHBEAgDyACQQJ0aigCACINIA8gAkEBaiIMQQJ0aigCACIHIAcgDUgbIRFBfiACayEEA0AgDSARRgRAIAwhAgwDBSAWIBcgDUECdGooAgBBAnRqIgcoAgAiAiAHKAIEIgcgAiAHShshEgNAIAIgEkZFBEAgBCAUIBUgAkECdGooAgBBAnRqIgcoAgBHBEAgByAENgIAIAZBAWohBgsgAkEBaiECDAELCyANQQFqIQ0MAQsACwALCyAFIAogBiAIQQAQmAIiDkUNByAOKAIYIRMgDigCFCELAkACQAJAAkACQAJAIAhBAWsOCAABBAIEBAQDBAsgDigCHCENIAEoAhwhBSAAKAIcIQRBACECIAtBADYCAANAIAkgGEYNBSALIAlBAnQiAGohESAPIAlBAWoiCUECdCISaiEHIAAgD2ooAgAhAQNAIAcoAgAgAUoEQCAEIAFBA3RqIQogFiAXIAFBAnRqKAIAQQJ0aiIMKAIAIQMDQCAMKAIEIANKBEACQCAUIBUgA0ECdGooAgAiBkECdGoiACgCACIIIBEoAgBIBEAgACACNgIAIBMgAkECdGogBjYCACANIAJBA3RqIAorAwAgBSADQQN0aisDAKI5AwAgAkEBaiECDAELIBMgCEECdGooAgAgBkcNCyANIAhBA3RqIgAgCisDACAFIANBA3RqKwMAoiAAKwMAoDkDAAsgA0EBaiEDDAELCyABQQFqIQEMAQsLIAsgEmogAjYCAAwACwALIA4oAhwhCiABKAIcIQYgACgCHCERQQAhAiALQQA2AgADQCAJIBhGDQQgCyAJQQJ0IgBqIRIgDyAJQQFqIglBAnQiB2ohDCAAIA9qKAIAIRADQCAMKAIAIBBKBEAgESAQQQR0aiEFIBYgFyAQQQJ0aigCAEECdGoiASgCACEDA0AgASgCBCADSgRAAkAgFCAVIANBAnRqKAIAIghBAnRqIgAoAgAiBCASKAIASARAIAAgAjYCACATIAJBAnRqIAg2AgAgCiACQQR0aiIAIAUrAwAgBiADQQR0aiIEKwMAoiAFKwMIIAQrAwiioTkDACAAIAUrAwAgBCsDCKIgBSsDCCAEKwMAoqA5AwggAkEBaiECDAELIBMgBEECdGooAgAgCEcNDSAKIARBBHRqIgQgBCsDACAFKwMAIAYgA0EEdGoiACsDAKIgBSsDCCAAKwMIoqGgOQMAIAQgBCsDCCAFKwMAIAArAwiiIAUrAwggACsDAKKgoDkDCAsgA0EBaiEDDAELCyAQQQFqIRAMAQsLIAcgC2ogAjYCAAwACwALIA4oAhwhDSABKAIcIQUgACgCHCEEQQAhAiALQQA2AgADQCAJIBhGDQMgCyAJQQJ0IgBqIREgDyAJQQFqIglBAnQiEmohByAAIA9qKAIAIRADQCAHKAIAIBBKBEAgBCAQQQJ0IgBqIQogFiAAIBdqKAIAQQJ0aiIMKAIAIQMDQCAMKAIEIANKBEACQCAUIBUgA0ECdCIGaigCACIIQQJ0aiIBKAIAIgAgESgCAEgEQCABIAI2AgAgEyACQQJ0IgBqIAg2AgAgACANaiAFIAZqKAIAIAooAgBsNgIAIAJBAWohAgwBCyATIABBAnQiAGooAgAgCEcNDSAAIA1qIgAgACgCACAFIAZqKAIAIAooAgBsajYCAAsgA0EBaiEDDAELCyAQQQFqIRAMAQsLIAsgEmogAjYCAAwACwALQQAhAiALQQA2AgBBACEGA0AgBiAYRg0CIAsgBkECdCIAaiEEIA8gBkEBaiIGQQJ0IhFqIRIgACAPaigCACEAA0AgEigCACAASgRAIBYgFyAAQQJ0aigCAEECdGoiBygCACEDA0AgBygCBCADSgRAAkAgFCAVIANBAnRqKAIAIghBAnRqIgwoAgAiASAEKAIASARAIAwgAjYCACATIAJBAnRqIAg2AgAgAkEBaiECDAELIBMgAUECdGooAgAgCEcNDQsgA0EBaiEDDAELCyAAQQFqIQAMAQsLIAsgEWogAjYCAAwACwALIA4QZQwICyAOIAI2AggMCAsFIBQgAkECdGpBfzYCACACQQFqIQIMAQsLQdDGAUHFuQFB2wdBkw4QAAALQdDGAUHFuQFB9QdBkw4QAAALQdDGAUHFuQFBjwhBkw4QAAALQdDGAUHFuQFBowhBkw4QAAALQZTPAUHFuQFBngdBkw4QAAALQQAhDgsgFBAXCyAOC7UGAgl/AXwgACgCIEUEQAJAAkAgACgCEEEBayIEDgQBAAABAAtB4c8BQcW5AUHdBkG1OBAAAAsgAigCACEFIAAoAgAhAyAAKAIYIQYgACgCFCEHAkACQAJAAkAgBA4EAAICAQILIAAoAhwhCSABBEAgBUUEQCADQQgQRCEFC0EAIQQgA0EAIANBAEobIQMDQCADIARGDQQgBSAEQQN0aiIKQgA3AwAgByAEQQJ0aigCACIAIAcgBEEBaiIEQQJ0aigCACIIIAAgCEobIQhEAAAAAAAAAAAhDANAIAAgCEYEQAwCBSAKIAkgAEEDdGorAwAgASAGIABBAnRqKAIAQQN0aisDAKIgDKAiDDkDACAAQQFqIQAMAQsACwALAAsgBUUEQCADQQgQRCEFC0EAIQEgA0EAIANBAEobIQQDQCABIARGDQMgBSABQQN0aiIDQgA3AwAgByABQQJ0aigCACIAIAcgAUEBaiIBQQJ0aigCACIGIAAgBkobIQZEAAAAAAAAAAAhDANAIAAgBkYEQAwCBSADIAkgAEEDdGorAwAgDKAiDDkDACAAQQFqIQAMAQsACwALAAsgACgCHCEJIAEEQCAFRQRAIANBCBBEIQULQQAhBCADQQAgA0EAShshAwNAIAMgBEYNAyAFIARBA3RqIgpCADcDACAHIARBAnRqKAIAIgAgByAEQQFqIgRBAnRqKAIAIgggACAIShshCEQAAAAAAAAAACEMA0AgACAIRgRADAIFIAogCSAAQQJ0IgtqKAIAtyABIAYgC2ooAgBBA3RqKwMAoiAMoCIMOQMAIABBAWohAAwBCwALAAsACyAFRQRAIANBCBBEIQULQQAhASADQQAgA0EAShshBANAIAEgBEYNAiAFIAFBA3RqIgNCADcDACAHIAFBAnRqKAIAIgAgByABQQFqIgFBAnRqKAIAIgYgACAGShshBkQAAAAAAAAAACEMA0AgACAGRgRADAIFIAMgDCAJIABBAnRqKAIAt6AiDDkDACAAQQFqIQAMAQsACwALAAtB15oDQcW5AUGQB0G1OBAAAAsgAiAFNgIADwtBrs8BQcW5AUHcBkG1OBAAAAvzAgEEfyMAQTBrIgIkACACIAE2AgwgAiABNgIsIAIgATYCEAJAAkACQAJAAkBBAEEAQau0ASABEEsiBUEASA0AQQEhAyAFQQFqIQECQCAFIAAQOSAAECFrIgRPBEAgABAkQQAgASAEayIEQQFGGw0BIAAgBBC3AgtBACEDCyACQgA3AxggAkIANwMQIAMgBUEQT3ENASACQRBqIQQgBSADBH8gBAUgABBdCyABQau0ASACKAIsEEsiAUcgAUEATnENAiABQQBMDQAgABAkBEAgAUGAAk8NBCADBEAgABBdIAJBEGogARAeGgsgACAALQAPIAFqOgAPIAAQIUEQSQ0BQaG2A0H5gAFB1wFB9B4QAAALIAMNBCAAIAAoAgQgAWo2AgQLIAJBMGokAA8LQZ+lA0H5gAFBygFB9B4QAAALQZCaA0H5gAFBzwFB9B4QAAALQYbNAUH5gAFB0gFB9B4QAAALQeqgAUH5gAFB2QFB9B4QAAALxgIBDX8CQCAAKAIgRQRAIAAoAhBBAUcNASADQQAgA0EAShshBiAAKAIAIgRBACAEQQBKGyEJIAAoAhghCiAAKAIUIQcgACgCHCELA0AgBSAJRwRAIAIgAyAFbEEDdGohCEEAIQADQCAAIAZGRQRAIAggAEEDdGpCADcDACAAQQFqIQAMAQsLIAcgBUECdGooAgAiBCAHIAVBAWoiBUECdGooAgAiACAAIARIGyEMA0AgBCAMRg0CIAogBEECdGohDSALIARBA3RqIQ5BACEAA0AgACAGRkUEQCAIIABBA3QiD2oiECAOKwMAIAEgDSgCACADbEEDdGogD2orAwCiIBArAwCgOQMAIABBAWohAAwBCwsgBEEBaiEEDAALAAsLDwtBrs8BQcW5AUHHBkGrlwEQAAALQbTVAUHFuQFByAZBq5cBEAAAC0kAIAAoAiBBAUcEQEH92QFBxbkBQZoEQawnEAAACyAAKAIIIAAoAgAgACgCBCAAKAIUIAAoAhggACgCHCAAKAIQIAAoAigQwAMLIgAgACABIAMgBCAFEOMJIQAgAkEASgRAIAAgAhDiCQsgAAtmAQJ/IABBADYCHCAAKAIgIQMgAUEEEEQhAgJAAkAgA0EBRgRAIAAgAjYCFCAAIAFBBBBENgIYIAAoAighAgwBCyAAIAI2AhggACgCKCICRQ0BCyAAIAEgAhBENgIcCyAAIAE2AgwLWwEBf0EBQSwQRCIFIAM2AiggBSACNgIQIAVCADcCCCAFIAE2AgQgBSAANgIAQQAhAyAEQQFHBEAgAEEBakEEEEQhAwsgBSAENgIgIAVCADcCGCAFIAM2AhQgBQt5AQJ8An9BACABKwMYQbDkCisDACICoUG45AorAwAgAqGjIAAoAgQiAbciA6IiAkQAAAAAAAAAAGMNABogAUEBayACIANmDQAaIAKZRAAAAAAAAOBBYwRAIAKqDAELQYCAgIB4CyIBIAAoAgxIBEAgACABNgIMCyABC5sGAgp/AnwjAEEQayIJJABBxOUKIAFBAWpBBBAYNgIAQfCCCy0AAARAQe3KA0EcQQFBiPMIKAIAEEoaQaiHCxCnAQsgABAaIQEDQCABBEBBACECQbiDCysDACEMIAAoAhAoApgBIQMDQCADIAJBAnRqKAIAIgQEQCAEKAIQIAw5A5gBIAJBAWohAgwBCwtByOUKIAE2AgAgASgCECICQQA2ApABIAJCADcDmAEgARDnCQNAQQAhA0EAIQpBwOUKKAIAIgIEQEHE5QooAgAiBigCACEKQcDlCiACQQFrIgs2AgAgBiAGIAtBAnRqKAIAIgg2AgAgCCgCEEEANgKMAQJAIAJBA0gNAANAIANBAXQiAkEBciIFIAtODQECQAJ8IAsgAkECaiICTARAIAYgBUECdGooAgAiBCgCECsDmAEMAQsgBiACQQJ0aigCACIEKAIQKwOYASIMIAYgBUECdGooAgAiBygCECsDmAEiDWMNASAHIQQgDQshDCAFIQILIAgoAhArA5gBIAxlDQEgBiACQQJ0aiAINgIAIAgoAhAgAjYCjAEgBiADQQJ0aiAENgIAIAQoAhAgAzYCjAEgAiEDDAALAAsgCigCEEF/NgKMAQsgCiIDBEBByOUKKAIAIgIgA0cEQCAAKAIQKAKgASIEIAMoAhAiBSgCiAEiB0ECdGooAgAgAigCECgCiAEiAkEDdGogBSsDmAEiDDkDACAEIAJBAnRqKAIAIAdBA3RqIAw5AwALIAAgAxBvIQIDQCACRQ0CIAMgAkEwQQAgAigCAEEDcSIFQQNHG2ooAigiBEYEQCACQVBBACAFQQJHG2ooAighBAsCQCADKAIQIgcrA5gBIAIoAhArA4gBoCIMIAQoAhAiBSsDmAFjRQ0AIAUgDDkDmAEgBSgCjAFBAE4EQCAEEOYJDAELIAUgBygCkAFBAWo2ApABIAQQ5wkLIAAgAiADEHEhAgwACwALCyAAIAEQGyEBDAELC0HwggstAAAEQCAJEIsBOQMAQYjzCCgCAEHqyQQgCRAtC0HE5QooAgAQFyAJQRBqJAALfwEFf0HE5QooAgAhAiAAKAIQKAKMASEBA0ACQCABQQBMDQAgAiABQQFrQQF2IgNBAnRqIgUoAgAiBCgCECsDmAEgACgCECsDmAFlDQAgBSAANgIAIAAoAhAgAzYCjAEgAiABQQJ0aiAENgIAIAQoAhAgATYCjAEgAyEBDAELCwtiAQJ/IAAoAhAiAigCjAFBAEgEQEHA5QpBwOUKKAIAIgFBAWo2AgAgAiABNgKMAUHE5QooAgAgAUECdGogADYCACABQQBKBEAgABDmCQsPC0HFmgNBh78BQfQEQeiSARAAAAtLACAAEDQgAEcEQCAAQb4oQZgCQQEQMRoLIAAgAUYEQCAAEDQoAhAgATYCvAELIAAQdyEAA0AgAARAIAAgARDoCSAAEHYhAAwBCwsLUQIDfwJ8QayDCy8BACEFA0AgAyAFRkUEQCACIANBA3QiBGogACAEaisDACABIARqKwMAoSIHOQMAIAcgB6IgBqAhBiADQQFqIQMMAQsLIAafC9wBAgF/AXxB8IILLQAABEBBk+cDQRpBAUGI8wgoAgAQShoLAkAgACABQQIQjAoiAkEBRg0AQQAhAQJAIAINAEG05QotAABBAXENAEHjuARBABAnQbTlCkEBOgAACwNAIAAoAhAoApgBIAFBAnRqKAIAIgJFDQEgAigCEC0AhwFFBEAQzwEhAyACKAIQKAKUASADRAAAAAAAAPA/ojkDABDPASEDIAIoAhAoApQBIANEAAAAAAAA8D+iOQMIQayDCy8BAEEDTwRAIAJBARDQBgsLIAFBAWohAQwACwALC60BAQZ/IAAoAhAoApgBEBdB/IILKAIARQRAIAAoAhAoAqABENQCIAAoAhAoAqQBENQCIAAoAhAoAqgBENQCIAAoAhAiASgCrAEiBAR/A0BBACEBIAQgAkECdGoiBSgCACIDBEADQCADIAFBAnRqKAIAIgYEQCAGEBcgAUEBaiEBIAUoAgAhAwwBCwsgAxAXIAJBAWohAgwBCwsgBBAXIAAoAhAFIAELQQA2AqwBCwuRAQEFfyAAIAEQbyEDA0AgA0UEQCAFDwsCQCADQVBBACADKAIAQQNxIgRBAkcbaigCKCIHIANBMEEAIARBA0cbaigCKCIERg0AIAUEQEEBIQUgASAERiAGIAdGcSABIAdGIAQgBkZxcg0BQQIPCyACIAcgBCABIARGGyIGNgIAQQEhBQsgACADIAEQcSEDDAALAAuqCAIKfwF8IwBBEGsiBSQAQfCCCy0AAARAIAAQHyEDIAUgABA1NgIEIAUgAzYCAEGI8wgoAgBBle8DIAUQHRoLAkBB8YILLQAAQQFHDQAgABAaIQQDQCAEIgNFDQEgACADEBshBAJAAkAgACADIAVBCGoQ7AkOAgABAgsgACgCSCADELQBDAELIAAoAkggAxC0ASAFKAIIIQMDQCADIgJFDQFBACEDAkACQCAAIAIgBUEMahDsCQ4CAAECCyACIARGBEAgACACEBshBAsgACgCSCACELQBDAELIAIgBEYEQCAAIAIQGyEECyAAKAJIIAIQtAEgBSgCDCEDDAALAAsACyAAEDUhBCAAEK4CIQdBACEDIABBAkGN6QBBABAgIQYCQAJAAkACQCABDgUAAgICAQILQaCDCyAEt0QtQxzr4jYaP6I5AwAgABC8CEHAgwsgACgCSEH6gwEQIyICBHwgAhCmAgVErkfhehSu7z8LOQMAIARBAWpBBBAYIQIgACgCECACNgKYASAAEBohAgNAIAJFDQMgACgCECgCmAEgA0ECdGogAjYCACACKAIQIghBfzYCjAEgCCADNgKIASAMIAAgAiAGENIGoCEMIANBAWohAyAAIAIQGyECDAALAAtBoIMLQvuouL2U3J7CPzcDACAAELwIIARBAWpBBBAYIQIgACgCECACNgKYASAAEBohAgNAIAJFDQIgACgCECgCmAEgA0ECdGogAjYCACACKAIQIAM2AogBIAwgACACIAYQ0gagIQwgA0EBaiEDIAAgAhAbIQIMAAsAC0GggwtCrYbx2K7cjY0/NwMAIAAQvAggABAaIQIDQCACRQ0BIAIoAhAgAzYCiAEgDCAAIAIgBhDSBqAhDCADQQFqIQMgACACEBshAgwACwALQbiDCwJ8AkAgAEGQGhAjIgNFDQAgAy0AAEUNAEGggwsrAwAgAxCmAhAlDAELIAxBASAHIAdBAUwbuKMgBLefokQAAAAAAADwP6ALIgw5AwBB/IILKAIAIAFyRQRAIAQgBCAMENUCIQEgACgCECABNgKgASAEIAREAAAAAAAA8D8Q1QIhASAAKAIQIAE2AqQBIARBrIMLLwEARAAAAAAAAPA/ENUCIQEgACgCECABNgKoASAEQQAgBEEAShshAUGsgwsvAQAhCCAEQQFqIgpBBBAYIQdBACEDA0AgASADRkUEQCAHIANBAnRqIApBBBAYIgk2AgBBACEGA0AgASAGRkUEQCAJIAZBAnRqIAhBCBAYIgs2AgBBACECA0AgAiAIRkUEQCALIAJBA3RqQgA3AwAgAkEBaiECDAELCyAGQQFqIQYMAQsLIAkgAUECdGpBADYCACADQQFqIQMMAQsLIAcgAUECdGpBADYCACAAKAIQIAc2AqwBCyAFQRBqJAAgBAusAwIHfwN8IAJBACACQQBKGyELAkAgBEECRgRAA0AgAyAFRg0CIAEgBUEEdGoiBigCACEHQQAhBANAIAQgB0YEQCAFQQFqIQUMAgUgBSAEQQJ0IgggBigCBGooAgAiCUgEQEQAAAAAAAAAACENQQAhAgNAIAIgC0ZFBEAgACACQQJ0aigCACIKIAVBA3RqKwMAIAogCUEDdGorAwChIg4gDqIgDaAhDSACQQFqIQIMAQsLIAwgBigCCCAIaigCALciDCANn6EiDSANoiAMIAyio6AhDAsgBEEBaiEEDAELAAsACwALA0AgAyAFRg0BIAEgBUEEdGoiBigCACEHQQAhBANAIAQgB0YEQCAFQQFqIQUMAgUgBSAEQQJ0IgggBigCBGooAgAiCUgEQEQAAAAAAAAAACENQQAhAgNAIAIgC0ZFBEAgACACQQJ0aigCACIKIAVBA3RqKwMAIAogCUEDdGorAwChIg4gDqIgDaAhDSACQQFqIQIMAQsLIAwgBigCCCAIaigCALciDCANn6EiDSANoiAMo6AhDAsgBEEBaiEEDAELAAsACwALIAwLvQMCBn8CfCMAQTBrIgQkACAAKAIAIQICQAJAAkAgAAJ/IAAoAgQiBSAAKAIIRwRAIAUMAQsgBUH/////AE8NASAFQQF0IgNBgICAgAFPDQICQCADRQRAIAIQF0EAIQIMAQsgAiAFQQV0IgYQNiICRQ0EIAYgBUEEdCIHTQ0AIAIgB2pBACAHEDAaCyAAIAM2AgggACACNgIAIAAoAgQLQQFqNgIEIAIgBUEEdGoiAyABKQMINwMIIAMgASkDADcDAANAAkAgBUUNACAAKAIAIgIgBUEEdCIDaisDCCIIIAIgBUEBdiIFQQR0IgFqKwMIIgljRQRAIAggCWINARClAUEBcUUNASAAKAIAIQILIAQgAiADaiIDQQhqKQMANwMoIAQgAykDADcDICADIAEgAmoiAikDADcDACADIAIpAwg3AwggACgCACABaiIBIAQpAyA3AwAgASAEKQMoNwMIDAELCyAEQTBqJAAPC0HIvwNByoEBQc0AQYm1ARAAAAsgBEEQNgIEIAQgAzYCAEGI8wgoAgBBseoDIAQQHRoQJgALIAQgBjYCEEGI8wgoAgBBgOoDIARBEGoQHRoQJgALkQIBBH8gAUG+KEGYAkEBEDEaIAEoAhAiAiAAKAIQIgMpAxA3AxAgAiADKQMoNwMoIAIgAykDIDcDICACIAMpAxg3AxggASgCECICIAAoAhAiAy0AkwI6AJMCIAJBMGogA0EwakHAABAeGiABKAIQIAAoAhAoArQBIgI2ArQBIAJBAWpBBBAYIQMgASgCECADNgK4ASACQQAgAkEAShtBAWohBUEBIQIDQCAAKAIQIQMgAiAFRkUEQCACQQJ0IgQgAygCuAFqKAIAEOIIIQMgASgCECgCuAEgBGogAzYCACAAKAIQKAK4ASAEaigCACADEPAJIAJBAWohAgwBCwsgASgCECADKAIMNgIMIANBADYCDAsSACAAIAFB4SNBJ0HFugEQ0gELmwICBH8CfCMAQRBrIgUkAANAIAFBAXQiAkEBciEDAkACQCACIAAoAgRPDQAgACgCACIEIAJBBHRqKwMIIgYgBCABQQR0aisDCCIHYw0BIAYgB2INABClAUEBcQ0BCyABIQILAkAgAyAAKAIETw0AIAAoAgAiBCADQQR0aisDCCIGIAQgAkEEdGorAwgiB2NFBEAgBiAHYg0BEKUBQQFxRQ0BCyADIQILIAEgAkcEQCAFIAAoAgAiBCACQQR0aiIDQQhqKQMANwMIIAUgAykDADcDACADIAQgAUEEdCIBaiIEKQMANwMAIAMgBCkDCDcDCCAAKAIAIAFqIgEgBSkDADcDACABIAUpAwg3AwggAiEBDAELCyAFQRBqJAALFABBmOUKQRgQiQVBpOUKQQA2AgALzAECA38BfCAAQQBBACACQQAQ3QYiBEMAAIA/IAFBAEEBIAIQ/gQgBCgCJBDCBiAAQQAgAEEAShshAANAIAAgA0ZFBEAgA0ECdCIFIAQoAhBqKAIAEPIEIQYgASgCACAFaiAGtjgCACADQQFqIQMMAQsLQQAhAyAEQwAAgD8gAUEBQQAgAhD+BCAEKAIkEMIGA0AgACADRkUEQCADQQJ0IgIgBCgCEGooAgAQ8gQhBiABKAIEIAJqIAa2OAIAIANBAWohAwwBCwsgBBDcBgvICAILfwZ9IAAoAgggACgCBGohByAAKAIwIQogACgCLCELIAAoAighCAJAIAAoAhRBAEwEQCAHQQAgB0EAShshBgwBCyAHQQAgB0EAShshBgNAIAMgBkcEQCADQQJ0IgQgACgCEGooAgAgAiAEaioCALsQvAkgA0EBaiEDDAELCyAAKAIkEL4JQQAhAwNAIAMgBkYNASACIANBAnQiBGogACgCECAEaigCABDyBLY4AgAgA0EBaiEDDAALAAtBACEDA0ACQCAMQegHTg0AQQAhBCADQQFxDQADfyAEIAZGBH9DAAAAACEQQwAAAAAhD0EABSALIARBAnQiBWogAiAFaioCADgCACAFIAhqIgkgASAFaioCACIOIA6SIg44AgBBACEDA0AgAyAHRwRAIAkgA0ECdCINIAAoAgAgBWooAgBqKgIAQwAAAMCUIAIgDWoqAgCUIA6SIg44AgAgA0EBaiEDDAELCyAEQQFqIQQMAQsLIQQDQAJAIAQgBkcEQCAIIARBAnQiBWoqAgAhEUMAAAAAIQ5BACEDA0AgAyAHRg0CIANBAnQiCSAAKAIAIAVqKAIAaioCACISIBKSIAggCWoqAgCUIA6SIQ4gA0EBaiEDDAALAAsgEIwgD5VDAACAvyAPQwAAAABcGyEOQQAhAwNAIAMgBkcEQCACIANBAnQiBGoiBSAOIAQgCGoqAgCUIAUqAgCSOAIAIANBAWohAwwBCwtBACEDAkAgACgCFEEATA0AA0AgAyAGRwRAIANBAnQiBCAAKAIQaigCACACIARqKgIAuxC8CSADQQFqIQMMAQsLIAAoAiQQvglBACEDA0AgAyAGRg0BIAIgA0ECdCIEaiAAKAIQIARqKAIAEPIEtjgCACADQQFqIQMMAAsAC0EAIQRBACEDA30gAyAGRgR9QwAAAAAhD0MAAAAABSAKIANBAnQiBWogAiAFaioCACAFIAtqKgIAkzgCACADQQFqIQMMAQsLIRADQAJAIAQgBkcEQCAKIARBAnQiBWoqAgAhESAFIAhqKgIAIRJDAAAAACEOQQAhAwNAIAMgB0YNAiADQQJ0IgkgACgCACAFaigCAGoqAgAiEyATkiAJIApqKgIAlCAOkiEOIANBAWohAwwACwALQwAAAAAhDiAQIA+VQwAAgD8gD0MAAAAAXBsiD0MAAAAAXiAPQwAAgD9dcSEFQQAhAwNAIAMgBkcEQAJAIAVFBEAgAiADQQJ0aioCACEQDAELIAIgA0ECdCIEaiAPIAQgCmoqAgCUIAQgC2oqAgCSIhA4AgALIA4gECALIANBAnRqKgIAk4uSIQ4gA0EBaiEDDAELCyAMQQFqIQwgDrtELUMc6+I2Gj9kRSEDDAULIARBAWohBCAOIBGUIA+SIQ8gEiARlCAQkiEQDAALAAsgBEEBaiEEIA8gDiARlJMhDyARIBGUIBCSIRAMAAsACwsgDAsrAQF/A0AgACgCCCABTQRAIABCADcCBAUgACABEMsBGiABQQFqIQEMAQsLC+UBAgh/AX0gAUEEEBgiBCABIAFsIgNBBBAYIgU2AgAgA0MAAAAAIAUQwQNBASABIAFBAUwbIQNBASECA38gAiADRgR/IAFBACABQQBKGyEHQQAhAwNAIAMgB0ZFBEAgBCADQQJ0IghqIQkgAyECA0AgASACRkUEQCACQQJ0IgUgCSgCAGogACAGQQJ0aioCACIKOAIAIAQgBWooAgAgCGogCjgCACAGQQFqIQYgAkEBaiECDAELCyADQQFqIQMMAQsLIAQFIAQgAkECdGogBSABIAJsQQJ0ajYCACACQQFqIQIMAQsLC+gDAgV/BHxBlOUKKAIAIgRFBEBBlOUKQYjlCigCABCZAiIENgIACyABQQAgAUEAShshBiACKwMIIQggAisDACEJA0AgAyAGRgRAAkAgAUEBayEFQQAhA0QAAAAAAAAAACEIA0AgAyAGRwRAIAMgBWogAW8hAAJAAkAgBCADQQR0aiICKwMIIglEAAAAAAAAAABiDQAgBCAAQQR0aiIHKwMIRAAAAAAAAAAAYg0AIAIrAwAgBysDAKJEAAAAAAAAAABjRQ0BDAQLIAQgAEEEdGoiACsDCCIKRAAAAAAAAAAAZSAJRAAAAAAAAAAAZnFFIAlEAAAAAAAAAABlRSAKRAAAAAAAAAAAZkVycQ0AIAIrAwAgCqIgACsDACAJoqEgCiAJoaMiC0QAAAAAAAAAAGENAyALRAAAAAAAAAAAZEUNACAJRAAAAAAAAAAAYiAKRAAAAAAAAAAAYnFFBEAgCEQAAAAAAADgP6AhCAwBCyAIRAAAAAAAAPA/oCEICyADQQFqIQMMAQsLAn8gCJlEAAAAAAAA4EFjBEAgCKoMAQtBgICAgHgLQYGAgIB4cUEBRg8LBSAEIANBBHQiAmoiBSAAIAJqIgIrAwAgCaE5AwAgBSACKwMIIAihOQMIIANBAWohAwwBCwtBAQuMAQIGfAF/QQEgASABQQFNGyEKIAArAwAiBCEFIAArAwgiBiEHQQEhAQNAIAEgCkYEQCACIAY5AwggAiAEOQMAIAMgBzkDCCADIAU5AwAFIAFBAWohASAAKwMQIQggByAAKwMYIgkQJSEHIAUgCBAlIQUgBiAJEDMhBiAEIAgQMyEEIABBEGohAAwBCwsLeAIBfwJ8AkAgAUEERw0AIAArAwgiAyAAKwMYIgRhBEAgACsDKCAAKwM4Yg0BIAArAwAgACsDMGINASAAKwMQIAArAyBhDwsgACsDACAAKwMQYg0AIAArAyAgACsDMGINACADIAArAzhiDQAgBCAAKwMoYSECCyACC9IGAgx/AnwgAUEAIAFBAEobIQkgAUEIEBghCiAAKAIIIQsDQAJAIAUgCUcEQCAAKAIQRQ0BQQEhBEEBIAAgBUEUbGoiBigCACIHIAdBAU0bIQdEAAAAAAAAAAAhEANAIAQgB0YEQCAKIAVBA3RqIBA5AwAMAwUgECAEQQJ0IgggBigCCGoqAgAgBigCECAIaioCAJS7oCEQIARBAWohBAwBCwALAAtBACEEIAFBACABQQBKGyEFA0AgBCAFRwRAIAIgBEEDdGoQpQFB9ANvtzkDACAEQQFqIQQMAQsLIAEgAhC8AkEAIQRBACEFA0AgBCAJRwRAIAAgBEEUbGooAgAgBWohBSAEQQFqIQQMAQsLQQAhBiAFQQQQGCEFA0AgBiAJRwRAIAAgBkEUbGoiBCAFNgIIIAUgBCgCACIHQQFrs4w4AgBBASEEQQEgByAHQQFNGyEIA0AgBCAIRgRAIAZBAWohBiAFIAdBAnRqIQUMAwUgBSAEQQJ0akGAgID8AzYCACAEQQFqIQQMAQsACwALCwJ/IAFBCBAYIQQgAUEIEBghBSABQQgQGCEGIAFBCBAYIQcgAUEIEBghCCABIAogAUEIEBgiDBCCAiABIAwQvAIgASACELwCIAAgASACIAcQlgogASAMIAcgBBCFBSABIAQgBRCCAiADQQAgA0EAShshDiADQQFrIQ8gASAEIAQQoQEhEEEAIQMDQAJAAkACQCADIA5GDQAgASAEEJQKRPyp8dJNYlA/ZEUNACAAIAEgBSAGEJYKIAEgBSAGEKEBIhFEAAAAAAAAAABhDQAgASAFIBAgEaMiESAIEN4BIAEgAiAIIAIQhAUgAyAPTg0CIAEgBiARIAYQ3gEgASAEIAYgBBCFBSABIAQgBBChASERIBBEAAAAAAAAAABiDQFBpIMEQQAQMkEBIQ0LIAQQFyAFEBcgBhAXIAcQFyAIEBcgDBAXIA0MAwsgASAFIBEgEKMgBRDeASABIAQgBSAFEIQFIBEhEAsgA0EBaiEDDAALAAsgACgCCBAXQQAhBANAIAQgCUcEQCAAIARBFGxqIgIgCzYCCCAEQQFqIQQgCyACKAIAQQJ0aiELDAELCyAKEBdBH3YPCyAFQQFqIQUMAAsAC9gBAgN/AnwjAEEQayIEJAAgACgCECICIAIrAyAgASsDACIGoTkDICABKwMIIQUgAiACKwMQIAahOQMQIAIgAisDKCAFoTkDKCACIAIrAxggBaE5AxgCQCACKAIMIgNFDQAgAy0AUUEBRw0AIAMgAysDOCAGoTkDOCADIAMrA0AgBaE5A0ALQQEhAwNAIAMgAigCtAFKRQRAIAIoArgBIANBAnRqKAIAIAQgASkDCDcDCCAEIAEpAwA3AwAgBBD8CSADQQFqIQMgACgCECECDAELCyAEQRBqJAALoAECA38CfCMAQRBrIgMkAEEBIQQDQCAEIAAoAhAiAigCtAFKRQRAIAIoArgBIARBAnRqKAIAIAMgASkDCDcDCCADIAEpAwA3AwAgAxD9CSAEQQFqIQQMAQsLIAIgAisDICABKwMAIgahOQMgIAErAwghBSACIAIrAxAgBqE5AxAgAiACKwMoIAWhOQMoIAIgAisDGCAFoTkDGCADQRBqJAALqAEBAn8gACgCECIDIAEgAysDIKI5AyAgAyACIAMrAyiiOQMoIAMgASADKwMQojkDECADIAIgAysDGKI5AxgCQCADKAIMIgRFDQAgBC0AUUEBRw0AIAQgASAEKwM4ojkDOCAEIAIgBCsDQKI5A0ALQQEhBANAIAQgAygCtAFKRQRAIAMoArgBIARBAnRqKAIAIAEgAhD+CSAEQQFqIQQgACgCECEDDAELCwuiBQIKfwR8IwBBIGsiAyQAIAMgACgCECIBKQMYNwMYIAMgASkDEDcDECADKwMQIgtEAAAAAAAAUkCjIQ0gAysDGCIMRAAAAAAAAFJAoyEOIAAQGiECA0AgAgRAIAIoAhAiBCgClAEiASABKwMAIA2hOQMAIAEgASsDCCAOoTkDCAJAIAQoAnwiAUUNACABLQBRQQFHDQAgASABKwM4IAuhOQM4IAEgASsDQCAMoTkDQAsgACACEBshAgwBCwsgABAaIQQDQCAEBEAgACAEECkhBQNAAkAgBQRAIAUoAhAiBigCCCIBRQ0BIAEoAgQhCSABKAIAIQFBACEHA0AgByAJRgRAAkAgBigCYCIBRQ0AIAEtAFFBAUcNACABIAErAzggC6E5AzggASABKwNAIAyhOQNACwJAIAYoAmwiAUUNACABLQBRQQFHDQAgASABKwM4IAuhOQM4IAEgASsDQCAMoTkDQAsCQCAGKAJkIgFFDQAgAS0AUUEBRw0AIAEgASsDOCALoTkDOCABIAErA0AgDKE5A0ALIAYoAmgiAUUNAyABLQBRQQFHDQMgASABKwM4IAuhOQM4IAEgASsDQCAMoTkDQAwDCyABKAIEIQogASgCACECQQAhCANAIAggCkYEQCABKAIIBEAgASABKwMQIAuhOQMQIAEgASsDGCAMoTkDGAsgASgCDARAIAEgASsDICALoTkDICABIAErAyggDKE5AygLIAdBAWohByABQTBqIQEMAgUgAiACKwMAIAuhOQMAIAIgAisDCCAMoTkDCCAIQQFqIQggAkEQaiECDAELAAsACwALIAAgBBAbIQQMAwsgACAFECwhBQwACwALCyADIAMpAxg3AwggAyADKQMQNwMAIAAgAxD8CSADQSBqJAAL5QcCB38GfCMAQeAAayIGJAAgBkEIaiEDIwBBIGsiBSQAAkAgACIHQYbeABAjIgAEQCAAIANEAAAAAAAA8D9EAAAAAAAAAAAQjAUNAQsgB0GH3gAQIyIABEAgACADRAAAAAAAAPQ/RJqZmZmZmQlAEIwFDQELIANBAToAECADQpqz5syZs+aEwAA3AwAgA0Kas+bMmbPmhMAANwMIC0HwggstAAAEQCADLQAQIQAgAysDACEKIAUgAysDCDkDECAFIAo5AwggBSAANgIAQYjzCCgCAEG48gQgBRAtCyAFQSBqJAAgBxAaIQUDQCAFBEAgByAFECkhBANAIAQEQCMAQTBrIgMkACAEKAIQIgAtAC9BAUYEQCADQQhqIgggBEEwQQAgBCgCAEEDcSIJQQNHG2ooAiggBEFQQQAgCUECRxtqKAIoIABBEGoiABDvBSAAIAhBKBAeGiAEKAIQIQALIAAtAFdBAUYEQCADQQhqIgggBEFQQQAgBCgCAEEDcSIJQQJHG2ooAiggBEEwQQAgCUEDRxtqKAIoIABBOGoiABDvBSAAIAhBKBAeGgsgA0EwaiQAIAcgBBAsIQQMAQsLIAcgBRAbIQUMAQsLQZDyCUHA1QooAgAQlAEhCSAHEBohCANAIAgEQCAHIAgQKSEEA0ACQAJAAkAgBARAAkBB/IILKAIAQQJIDQAgBCgCECIAKAIIRQ0AIAAgAC8BqAFBAWo7AagBDAQLIARBMEEAIAQoAgBBA3EiA0EDRxtqKAIoIgAgBEFQQQAgA0ECRxtqKAIoIgVJBEAgBCgCECIDKwNAIQ0gAysDOCEOIAMrAxghCiADKwMQIQsgACEDDAMLIAQoAhAhAyAAIAVLBEAgAysDQCEKIAMrAzghCyADKwMYIQ0gAysDECEOIAUhAyAAIQUMAwsgAysDGCEMIAMrA0AhCiADKwMQIg8gAysDOCILYw0BIAsgD2NFBEAgCiAMZA0CIAogDCAKIAxjIgMbIQogCyAPIAMbIQsLIAAiAyEFIA8hDiAMIQ0MAgsgByAIEBshCAwFCyAAIgMhBSALIQ4gCiENIA8hCyAMIQoLIAYgDTkDUCAGIA45A0ggBiAFNgJAIAYgCjkDOCAGIAs5AzAgBiADNgIoIAYgBDYCWCAJIAZBIGpBASAJKAIAEQQAKAI4IgAgBEYNACAAKAIQIgAgAC8BqAFBAWo7AagBIAQoAhAgACgCsAE2ArABIAAgBDYCsAELIAcgBBAsIQQMAAsACwsgCRCcARpBASEEIAcgBkEIaiACIAERBABFBEBBsIMLQQE2AgBBACEECyAGQeAAaiQAIAQL9gYCDX8BfiMAQaABayIEJAAgBCAAKAIQKQOQASIRNwOYASAEIBGnIgUpAwg3A2ggBCAFKQMANwNgIAQgBSARQiCIp0EEdGpBEGsiBSkDCDcDWCAEIAUpAwA3A1ACQCADRQRAIAJBACACQQBKGyEIQal3IQVBqXchBgwBC0EAIQMgAkEAIAJBAEobIQhBqXchBUGpdyEGA0AgAyAIRg0BIAVBqXdGBEAgASADQQJ0aigCACkCACERIARBQGsgBCkDaDcDACAEIBE3A0ggBCAEKQNgNwM4IANBqXcgBEHIAGogBEE4ahC0BBshBQsgBkGpd0YEQCABIANBAnRqKAIAKQIAIREgBCAEKQNYNwMoIAQgETcDMCAEIAQpA1A3AyAgA0GpdyAEQTBqIARBIGoQtAQbIQYLIANBAWohAwwACwALQQAhAwNAIAMgCEcEQCADIAVGIAMgBkZyRQRAIAEgA0ECdGooAgAoAgQgB2ohBwsgA0EBaiEDDAELCyAHQSAQGCEJQQAhAgNAIAIgCEcEQAJAIAIgBUYgAiAGRnINAEEAIQMgASACQQJ0aigCACIOKAIEIg1BACANQQBKGyEPA0AgAyAPRg0BIAkgCkEFdGoiCyAOKAIAIgwgA0EEdGoiECkDADcDACALIBApAwg3AwggCyAMIANBAWoiA0EAIAMgDUgbQQR0aiIMKQMANwMQIAsgDCkDCDcDGCAKQQFqIQoMAAsACyACQQFqIQIMAQsLIAcgCkYEQCAEQgA3A4gBIARCADcDgAEgBEIANwN4IARCADcDcCAEIAQpA5gBNwMYAkAgCSAHIARBGGogBEHwAGogBEGQAWoQ/wdBAEgEQCAAQTBBACAAKAIAQQNxQQNHG2ooAigQHyEBIAQgAEFQQQAgACgCAEEDcUECRxtqKAIoEB82AgQgBCABNgIAQertBCAEEDIMAQtB8IILLQAAQQJPBEAgAEEwQQAgACgCAEEDcUEDRxtqKAIoEB8hASAEIABBUEEAIAAoAgBBA3FBAkcbaigCKBAfNgIUIAQgATYCEEGI8wgoAgBBwvIDIARBEGoQHRoLIAAgAEFQQQAgACgCAEEDcUECRxtqKAIoIAQoApABIAQoApQBQajyCRCdASAJEBcgABCqAwsgBEGgAWokAA8LQaHuAEGdvAFByQBBvCwQAAALhA8CEX8CfCMAQUBqIgUkACABQTBBACABKAIAQQNxIgZBA0cbaigCKCgCECITKwAQIRYgASgCECISKwAQIRUgBSASKwAYIBMrABigOQM4IAUgFSAWoDkDMCABQVBBACAGQQJHG2ooAigoAhAiFCsAECEWIBIrADghFSAFIBIrAEAgFCsAGKA5AyggBSAVIBagOQMgQal3IQFBqXchBiADBEAgFCgCsAIhBiATKAKwAiEBCyAFIAUpAzg3AxggBSAFKQMoNwMIIAUgBSkDMDcDECAFIAUpAyA3AwAgACESIwBB4ABrIgckACAHIAUpAxg3A1ggByAFKQMQNwNQIAIgASAHQdAAahCGDiETIAcgBSkDCDcDSCAHIAUpAwA3A0AgAiAGIAdBQGsQhg4hFCAHIAUpAxg3AzggByAFKQMQNwMwIAcgBSkDCDcDKCAHIAUpAwA3AyAjAEEgayIIJAAgAiIPKAIEIRAgCCAHKQM4NwMYIAggBykDMDcDECAIIAcpAyg3AwggCCAHKQMgNwMAQQAhAiMAQcABayIEJAACfwJ/AkAgAUEASARAQQAgBkEASA0DGiAPKAIMIAZBAnRqIQoMAQsgBkEASARAIA8oAgwgAUECdGohCgwBCyAPKAIMIQAgASAGTQRAIAAgBkECdGohCiAAIAFBAnRqIgAoAgQhCSAAKAIADAILIAAgAUECdGohCiAAIAZBAnRqIgAoAgQhCSAAKAIADAELQQALIQ4gCigCBCECIAooAgALIREgDygCECENIA8oAgghCyAPKAIEIQZBACEKIA5BACAOQQBKGyEDAkADQAJAIAMgCkYEQCARIAkgCSARSBshAwNAIAMgCUYEQCACIAYgAiAGShshAwNAIAIgA0YiDg0GIA0gAkECdGooAgAhASAEIAgpAxg3AzggBCAIKQMQNwMwIAQgCCkDCDcDKCAEIAgpAwA3AyAgBCALIAJBBHRqIgApAwg3AxggBCAAKQMANwMQIAQgCyABQQR0aiIAKQMINwMIIAQgACkDADcDACACQQFqIQIgBEEwaiAEQSBqIARBEGogBBCxBEUNAAsMBQsgDSAJQQJ0aigCACEBIAQgCCkDGDcDeCAEIAgpAxA3A3AgBCAIKQMINwNoIAQgCCkDADcDYCAEIAsgCUEEdGoiACkDCDcDWCAEIAApAwA3A1AgBCALIAFBBHRqIgApAwg3A0ggBCAAKQMANwNAIAlBAWohCSAEQfAAaiAEQeAAaiAEQdAAaiAEQUBrELEERQ0ACwwBCyANIApBAnRqKAIAIQEgBCAIKQMYNwO4ASAEIAgpAxA3A7ABIAQgCCkDCDcDqAEgBCAIKQMANwOgASAEIAsgCkEEdGoiACkDCDcDmAEgBCAAKQMANwOQASAEIAsgAUEEdGoiACkDCDcDiAEgBCAAKQMANwOAASAKQQFqIQogBEGwAWogBEGgAWogBEGQAWogBEGAAWoQsQRFDQELC0EAIQ4LIARBwAFqJAACQCAOBEAgEEECakEEEBgiCSAQQQJ0aiAQQQFqIgA2AgAgCSAAQQJ0akF/NgIADAELIA8oAhgiCiAQQQJ0aiAUNgIAIAogEEEBaiIAQQJ0aiATNgIAIBBBAmoiAUEAIAFBAEobIQ4gAUEEEBghCSAQQQNqQQgQGCILQQhqIQQDQCAMIA5HBEAgCSAMQQJ0akF/NgIAIAQgDEEDdGpCgICA/v///+9BNwMAIAxBAWohDAwBCwsgC0KAgICAgICA8EE3AwADQCAAIBBHBEAgBCAAQQN0IhFqIg1EAAAAAAAAAAAgDSsDACIVmiAVRAAAwP///9/BYRs5AwAgCiAAQQJ0aiEGQX8hAkEAIQwDQCAMIA5GBEAgAiEADAMFIAQgDEEDdCIDaiIBKwMAIhZEAAAAAAAAAABjBEACQAJ/IAAgDE4EQCAGKAIAIANqDAELIAogDEECdGooAgAgEWoLKwMAIhVEAAAAAAAAAABhDQAgFiAVIA0rAwCgmiIVY0UNACABIBU5AwAgCSAMQQJ0aiAANgIAIBUhFgsgDCACIBYgBCACQQN0aisDAGQbIQILIAxBAWohDAwBCwALAAsLIAsQFwsgCEEgaiQAIAkhDSAPKAIEIgFBAWohEUEBIQAgASEGA0AgACIDQQFqIQAgDSAGQQJ0aigCACIGIBFHDQALAkACQAJAIABBgICAgAFJBEBBACAAIABBEBBFIgYbDQEgBiADQQR0aiICIAUpAwA3AwAgAiAFKQMINwMIA0AgBiADQQFrIgNBBHRqIQsgESANIAFBAnRqKAIAIgFHBEAgCyAPKAIIIAFBBHRqIgIpAwA3AwAgCyACKQMINwMIDAELCyALIAUpAxA3AwAgCyAFKQMYNwMIIAMNAiATEBcgFBAXIBIgBjYCACASIAA2AgQgDRAXIAdB4ABqJAAMAwsgB0EQNgIEIAcgADYCAEGI8wgoAgBBseoDIAcQHRoQJgALIAcgAEEEdDYCEEGI8wgoAgBBgOoDIAdBEGoQHRoQJgALQdWXA0GIugFB+wBBw/sAEAAACyAFQUBrJAALcwEBfyAAKAIQKALAARAXIAAoAhAoAsgBEBcgACgCECgC0AEQFyAAKAIQKALYARAXIAAoAhAoAuABEBcgACgCECgCeBC8ASAAKAIQKAJ8ELwBIAAoAhAoAggiAQRAIAAgASgCBCgCBBEBAAsgAEHYKBDZAQuCAQEBfAJAIAAgAisDACIDYgRAIAEgA6IiAZogASACKwMIRAAAAAAAAAAAZhsgACAAIACiIAMgA6Khn6KjIgC9Qv///////////wCDQoCAgICAgID4/wBaDQEgAA8LQaWvA0GdvAFBkAJBoJkBEAAAC0GVuwNBnbwBQZMCQaCZARAAAAudDgIKfAl/IwBBoAFrIg0kAAJAAkACQAJAAkAgABCAA0EBaw4EAAEAAgQLQQghD0EIEFUhECAAKAIQIg4oAgwhEQJ8IAIEQAJ/IBEtAClBCHEEQCANQTBqIBEQyw4gDSANKwNIIgM5A4gBIA0gDSsDMCIGOQOAASANIAM5A3ggDSANKwNAIgU5A3AgDSANKwM4IgM5A2ggDSAFOQNgIA0gAzkDWCANIAY5A1BBASETIA1B0ABqIRJBBAwBCyAOKwNoIQQgDisDYCEGIA4rA1ghByANIA4rA3BEAAAAAAAAUkCiIgVEAAAAAAAA4D+iIgM5A4gBIA0gAzkDeCANIAVEAAAAAAAA4L+iIgM5A2ggDSADOQNYIA0gByAERAAAAAAAAFJAoqIgByAGoKMiAzkDcCANIAM5A2AgDSADmiIDOQOAASANIAM5A1BBASETIA1B0ABqIRJBBAshD0QAAAAAAAAAACEGRAAAAAAAAAAADAELIBEoAggiAkEDSQRARAAAAAAAAAAADAELIABBzIQLKAIARAAAAAAAAPA/RAAAAAAAAAAAEFAhAyARKAIsIBEoAgQiDyAPQQBHIANEAAAAAAAAAABkcWoiD0EBayACbEEAIA8bQQR0aiESIAErAwghBkEBIRMgAiEPIAErAwALIQUgECAPNgIEIBAgD0EQEBgiFDYCACAPuCELQQAhAiAPQQRHIRUDQCACIA9GDQQCQCATBEAgAS0AEEEBRgRAIBVFBEAgBSEDIAYhBAJAAkACQAJAAkAgAg4EBAMAAQILIAaaIQQgBZohAwwDCyAGmiEEDAILIA1BpAM2AgQgDUGdvAE2AgBBiPMIKAIAQa2+BCANEB0aEG4ACyAFmiEDCyAEIBIgAkEEdGoiDisDCKAhBCADIA4rAwCgIQMMAwsgEiACQQR0aiIOKwMIIgMgBiAOKwMAIgcgAxBOIgOjRAAAAAAAAPA/oKIhBCAHIAUgA6NEAAAAAAAA8D+goiEDDAILIAYgEiACQQR0aiIOKwMIoiEEIAUgDisDAKIhAwwBCyAAKAIQIg4rA3BEAAAAAAAAUkCiIQggDisDaEQAAAAAAABSQKIhB0QAAAAAAAAAACEGRAAAAAAAAAAAIQUgAS0AEEEBRgRAIAErAwghBiABKwMAIQULIA0gArgiBEQAAAAAAADgv6BEGC1EVPshGUCiIAujIgMQUyAIIAagRAAAAAAAAOA/oiIMoiIIOQM4IA0gAxBBIAcgBaBEAAAAAAAA4D+iIgmiIgc5AzAgDSAERAAAAAAAAOA/oEQYLURU+yEZQKIgC6MiBBBTIAyiIgM5A5gBIA0gDSkDODcDKCANIA0pAzA3AyAgDSAEEEEgCaIiBDkDkAEgCSAMIA1BIGoQhAohCiANIA0pA5gBNwMYIA0gDSkDkAE3AxAgCiADIAogB6IgCKEgCSAMIA1BEGoQhAoiAyAEoqGgIAogA6GjIgMgB6GiIAigIQQLIBQgDyACQX9zakEEdGoiESADIAAoAhAiDisDEKA5AwAgESAEIA4rAxigOQMIIAJBAWohAgwACwALIAAoAhAoAgwiAisDKCEHIAIrAyAhAyACKwMYIQQgAisDECEGQQgQVSIQQQQ2AgQgEEEEQRAQGCICNgIAIAErAwghCSABKwMAIQogACgCECIAKwMYIQsgACsDECEIIAEtABBBAUYEQCACIAggAyAKoKAiBTkDMCACIAsgByAJoKAiAzkDKCACIAU5AyAgAiADOQMYIAIgCCAGIAqhoCIDOQMQIAIgCyAEIAmhoCIEOQMIIAIgAzkDAAwCCyACIAMgCqIgCKAiBTkDMCACIAcgCaIgC6AiAzkDKCACIAU5AyAgAiADOQMYIAIgBiAKoiAIoCIDOQMQIAIgBCAJoiALoCIEOQMIIAIgAzkDAAwBC0EIEFUiEEEENgIEIBBBBEEQEBgiAjYCACABKwMIIQggACgCECIAKwMYIQcgACsDECEEIAArA1iaIQUgAS0AEEEBRgRAIAArA1AhAyACIAQgBSABKwMAIgWhoDkDACACIAcgA5ogCKGgOQMIIAArA1ghAyACIAcgCCAAKwNQoKA5AxggAiAEIAOaIAWhoDkDECAAKwNgIQMgAiAHIAggACsDUKCgOQMoIAIgBCAFIAOgoDkDICAAKwNQIQMgAiAEIAUgACsDYKCgOQMwIAcgA5ogCKGgIQQMAQsgASsDACEGIAIgByAAKwNQIAiioTkDCCACIAUgBqIgBKA5AwAgACsDWCEDIAIgACsDUCAIoiAHoDkDGCACIAQgAyAGoqE5AxAgACsDYCEDIAIgACsDUCAIoiAHoDkDKCACIAMgBqIgBKA5AyAgACsDUCEDIAIgBiAAKwNgoiAEoDkDMCAHIAMgCKKhIQQLIAIgBDkDOAsgDUGgAWokACAQC9ICAgR/AXwjAEEQayIFJAACQCAAKAIQLgGoASICQQBOBEACQCACQQFHBEBBnIMLLQAAQQFHDQELIAUgADYCDCAFQQxqQQBBASABtyIGIAZBqPIJEJYIIAAoAhAoAmAEQCAAQTBBACAAKAIAQQNxQQNHG2ooAigQKyAAKAIQKAJgEIsCCyAAEKoDDAILIAJFDQEgAkEEEBghBANAIAIgA0YEQCAEQQAgAiABtyIGIAZBqPIJEJYIQQAhAANAIAAgAkYEQCAEEBcMBQsgBCAAQQJ0aigCACIBKAIQKAJgBEAgAUEwQQAgASgCAEEDcUEDRxtqKAIoECsgASgCECgCYBCLAgsgARCqAyAAQQFqIQAMAAsABSAEIANBAnRqIAA2AgAgA0EBaiEDIAAoAhAoArABIQAMAQsACwALQe2WA0GdvAFB2wFBvjQQAAALIAVBEGokAAuvAgIHfwF9IAMgAUECdGooAgAiCSgCECIFQQE6ALQBIAVBATYCsAFDAACAv0MAAIA/IAJBA0YbIQsgACABQRRsaiEIQQEhBQNAIAUgCCgCAE9FBEACQCAFQQJ0IgQgCCgCEGoiBioCAEMAAIA/Ww0AIAMgCCgCBCAEaigCACIHQQJ0aigCACgCECIELQC0AQRAIAYgCzgCAEEBIQRBASAAIAdBFGxqIgcoAgAiBiAGQQFNGyEGAkADQCAEIAZHBEAgBEECdCIKIAcoAgRqKAIAIAFGDQIgBEEBaiEEDAELC0H6MkGFuwFB3AVB7p4BEAAACyAHKAIQIApqQYCAgPx7NgIADAELIAQoArABDQAgACAHIAIgAxCHCgsgBUEBaiEFDAELCyAJKAIQQQA6ALQBC+UJASB/IAAQrgJB2KcKQcDVCigCABCUASESIARBAkcEQCAAQQJBjekAQQAQIEEARyETQdSECygCAEEARyENCyABQRQQGCEOIAFBBBAYIRBBAXQgAWoiEUEEEBghCCADQX5xIhhBAkYgE3IiGgRAIBFBBBAYIQcLIA0EQCARQQQQGCEJCyAYQQJHIhtFBEAgEUEEEBghDwtBBEEAIA0bIR5BBEEAIBobIR8gGEECRiIgQQJ0ISEgABAaIQoCQAJAA0AgCgRAIBJBAEHAACASKAIAEQQAGiAKKAIQKAKIASAURw0CIBAgFEECdGogCjYCACAOIBRBFGxqIhYgD0EAICAbNgIQIBYgCUEAIA0bIiI2AgwgFiAHQQAgGhsiIzYCCCAWIAg2AgQgDyAhaiEPIAkgHmohCSAHIB9qIQcgCEEEaiELQQEhFyAAIAoQbyEEQQEhGQNAIAQEQAJAIAQgBEEwayIcIAQoAgBBA3EiBkECRiIVGygCKCAEIARBMGoiJCAGQQNGIgYbKAIoRg0AIARBAEEwIAYbaigCKCgCECgCiAEiDCAEQQBBUCAVG2ooAigoAhAoAogBIhUgDCAVSBshJSMAQSBrIgYkACAGIBc2AhwgBiAMIBUgDCAVShs2AhggBiAlNgIUIBIgBkEMakEBIBIoAgARBAAoAhAhDCAGQSBqJAAgFyAMIgZHBEAgDQRAICIgBkECdGoiDCAEKAIQKwOAASAMKgIAu6C2OAIACyATRQ0BICMgBkECdGoiBiAGKgIAuyAEKAIQKwOIARAltjgCAAwBCyALIAogBCAkIAQoAgBBA3EiBkEDRhsoAigiDEYEfyAEIBwgBkECRhsoAigFIAwLKAIQKAKIATYCACANBEAgCSAEKAIQKwOAAbY4AgAgCUEEaiEJCwJAAkAgE0UEQCAbDQIgB0GAgID8AzYCACAHQQRqIQcMAQsgByAEKAIQKwOIAbY4AgAgB0EEaiEHIBsNAQsgDwJ9IARBoDoQIyIGBEBDAAAAACAGQe6ZARC6Ag0BGgtDAACAP0MAAIC/IAogBCAcIAQoAgBBA3FBAkYbKAIoRhsLOAIAIA9BBGohDwsgC0EEaiELIBdBAWohFyAdQQFqIR0gGUEBaiEZCyAAIAQgChBxIQQMAQsLIBYgGTYCACAIIBQ2AgAgFEEBaiEUIAAgChAbIQogCyEIDAELCyAYQQJHDQFBACEIQQAhBANAIAEgCEYEQANAIAEgBEYNBCAQIARBAnRqKAIAKAIQKAKwAUUEQCAOIAQgAyAQEIcKCyAEQQFqIQQMAAsABSAQIAhBAnRqKAIAKAIQIgtBADoAtAEgC0EANgKwASAIQQFqIQgMAQsACwALQYT6AEGFuwFBtQZB5sMBEAAACwJAIAAQrgIgHUECbSILRg0AIA4oAgQgESALQQF0IAFqIgBBBBB9IQggEwRAIA4oAgggESAAQQQQfSEHCyANBEAgDigCDCARIABBBBB9IQkLQQAhBANAIAEgBEYNASAOIARBFGxqIgAgCDYCBCAAKAIAQQJ0IQMgEwRAIAAgBzYCCCADIAdqIQcLIA0EQCAAIAk2AgwgAyAJaiEJCyADIAhqIQggBEEBaiEEDAALAAsgAiALNgIAAkAgBQRAIAUgEDYCAAwBCyAQEBcLIBIQ3gIgDgtMAQN/IAAoAhAiAiACKAK0ASIEQQFqIgM2ArQBIAIoArgBIAMgBEECakEEEH0hAiAAKAIQIAI2ArgBIAIgA0ECdGogATYCACABEMYEC48CAQR/IAAoAhAoAsABIQQDQCAEIgEEQCABKAIQIgQoAsQBIQIgBCgCuAEhBANAIAIEQCABKAIQKALAASACQQFrIgJBAnRqKAIAIgMQjAIgAygCEBAXIAMQFwwBBSABKAIQKALMASECA0AgAgRAIAEoAhAoAsgBIAJBAWsiAkECdGooAgAiAxCMAiADKAIQEBcgAxAXDAELCyABKAIQIgItAKwBQQFHDQMgAigCyAEQFyABKAIQKALAARAXIAEoAhAQFyABEBcMAwsACwALCyAAEBohAQNAIAEEQCAAIAEQKSECA0AgAgRAIAIQyQIgACACECwhAgwBCwsgARCDCiAAIAEQGyEBDAELCyAAEN4GC5cHAgh/AnwgAEECEIoCIAAgAEEAQYTpAEEAECBBAkECEE8hASAAIABBAEHE7wBBABAgIAFBAhBPIQMgABA0KAIQIAM7AbABIAAoAkgoAhAiCEEKIAgvAbABIgMgA0EKTxsiAzsBsAFBrIMLIAM7AQAgCCABIAMgASADSBs7AbIBIAAQNSEIQfzkCiAAQQFB/i1BABAgNgIAIABBAUG35wBBABAgIQMgABAaIQEDQCABBEAgARCNBEH85AooAgAhBCMAQdAAayICJAACQCAERQ0AIAEoAhAoApQBIQcgASAEED4iBS0AAEUNACACQQA6AE8CQEGsgwsvAQBBA0kNACACIAc2AjAgAiAHQRBqNgI4IAIgB0EIajYCNCACIAJBzwBqNgI8IAVBvcEBIAJBMGoQSUEDSA0AIAEoAhBBAToAhwFBrIMLLwEAIQUCQEGAgwsrAwBEAAAAAAAAAABkRQ0AQQAhBgNAIAUgBkYNASAHIAZBA3RqIgQgBCsDAEGAgwsrAwCjOQMAIAZBAWohBgwACwALIAVBBE8EQCABIAhBAxDRBgsgAi0AT0EhRwRAIANFDQIgASADED4QakUNAgsgASgCEEEDOgCHAQwBCyACIAc2AiAgAiAHQQhqNgIkIAIgAkHPAGo2AiggBUHBwQEgAkEgahBJQQJOBEAgASgCEEEBOgCHAUGsgwsvAQAhBQJAQYCDCysDAEQAAAAAAAAAAGRFDQBBACEGA0AgBSAGRg0BIAcgBkEDdGoiBCAEKwMAQYCDCysDAKM5AwAgBkEBaiEGDAALAAsCQCAFQQNJDQACQEHIhAsoAgAiBEUNACABIAQQPiIERQ0AIAIgAkFAazYCACAEQcqIASACEElBAUcNACAHIAIrA0AiCkGAgwsrAwAiCaMgCiAJRAAAAAAAAAAAZBs5AxAgASAIQQMQ0QYMAQsgASAIENAGCyACLQBPQSFHBEAgA0UNAiABIAMQPhBqRQ0CCyABKAIQQQM6AIcBDAELIAEQHyEEIAIgBTYCFCACIAQ2AhBBvesDIAJBEGoQMgsgAkHQAGokACAAIAEQGyEBDAELCyAAEBohAwNAIAMEQCAAIAMQKSEBA0AgAQRAIAFByyhBuAFBARAxGiABEKgDIAFB1IQLKAIARAAAAAAAAPA/RAAAAAAAAPA/EFAhCSABKAIQIAk5A4ABIAAgARAsIQEMAQsLIAAgAxAbIQMMAQsLC80BAgR/BHwjAEEQayIDJAAgA0EBNgIMAkAgACACIANBDGoQ5AYiBEECRg0AQfzkCigCAEUNAEGajQRBABAnCwJAIARBAUcNAEQYLURU+yEZQCABtyIIoyEJIAAQGiECA0AgAkUNASAHEFMhCiACKAIQIgUoApQBIgYgCiAIojkDCCAGIAcQQSAIojkDACAFQQE6AIcBQayDCy8BAEEDTwRAIAIgARDQBgsgCSAHoCEHIAAgAhAbIQIMAAsACyADKAIMELsHIANBEGokACAEC5sCAgJ/AnwjAEHQAGsiBCQAAkACQCAAEMcBRQ0AIAAgAxA+IAQgBEHIAGo2AgwgBCAEQUBrNgIIIAQgBEE4ajYCBCAEIARBMGo2AgBBrogBIAQQSUEERw0AIAQrAzgiBiAEKwNIIgdkBEAgBCAGOQNIIAQgBzkDOAsgBCAEKQNINwMoIAQgBEFAaykDADcDICAEIAQpAzg3AxggBCAEKQMwNwMQIABBvihBmAJBARAxGiAAKAIQIgUgBCkDEDcDECAFIAQpAyg3AyggBSAEKQMgNwMgIAUgBCkDGDcDGCABIAAQiQogACACIAMQjgoMAQsgABB3IQADQCAARQ0BIAAgASACIAMQjQogABB2IQAMAAsACyAEQdAAaiQAC6UBAgJ/AnwjAEEgayIEJAACQCABRQ0AIAAoAhAoAgxFDQAgACABED4gBCAEQRBqNgIEIAQgBEEYajYCAEG2iAEgBBBJQQJHDQAgBCsDGCEFIAQrAxAhBiAAKAIQKAIMIgNBAToAUSADIAY5A0AgAyAFOQM4CwJAIAJFDQAgABB3IQMDQCADRQ0BIAMgACABIAIQjQogAxB2IQMMAAsACyAEQSBqJAAL9gICB38CfCADQQgQGCEHIANBCBAYIQggA0EIEBghCSADQQgQGCEKIANBCBAYIQsgAyACIANBCBAYIgIQggIgBgRAIAMgAhC8AiADIAEQvAILIAAgAyABIAoQlQogAyACIAogBxCFBSADIAcgCBCCAkEAIQYgBUEAIAVBAEobIQwgBUEBayENIAMgByAHEKEBIQ9BACEFA0ACQAJAAkAgBSAMRg0AIAMgBxCUCiAEZEUNACAAIAMgCCAJEJUKIAMgCCAJEKEBIg5EAAAAAAAAAABhDQAgAyAIIA8gDqMiDiALEN4BIAMgASALIAEQhAUgBSANTg0CIAMgCSAOIAkQ3gEgAyAHIAkgBxCFBSADIAcgBxChASEOIA9EAAAAAAAAAABiDQFBpIMEQQAQMkEBIQYLIAcQFyAIEBcgCRAXIAoQFyALEBcgAhAXIAYPCyADIAggDiAPoyAIEN4BIAMgByAIIAgQhAUgDiEPCyAFQQFqIQUMAAsAC6MEAQV/IAAQGiEBA0AgAQRAIAFB2ChBwAJBARAxGiABEOUFIAEgARArKAIQKAJ0QQFxELkEIAEoAhBBADYCxAFBBUEEEBghAyABKAIQIgJBADYCzAEgAiADNgLAAUEFQQQQGCEDIAEoAhAiAkEANgLcASACIAM2AsgBQQNBBBAYIQMgASgCECICQQA2AtQBIAIgAzYC2AFBA0EEEBghAyABKAIQIgJBADYC5AEgAiADNgLQAUEDQQQQGCEDIAEoAhAiAkEBNgLsASACIAM2AuABIAAgARAbIQEMAQsLIAAQGiEDA0AgAwRAIAAgAxApIQEDQCABBEAgAUHLKEG4AUEBEDEaIAEQqAMgAUHUhAsoAgBBAUEAEE8hAiABKAIQIAI2ApwBIAFBMEEAIAEoAgBBA3FBA0cbaigCKEG8hAsoAgBBo4EFEHkhBCABQVBBACABKAIAQQNxQQJHG2ooAihBvIQLKAIAQaOBBRB5IQUgASgCECICQQE7AagBIAJBATsBmgEgBC0AAEUgBCAFR3JFBEAgAkHoBzsBmgEgAiACKAKcAUHkAGw2ApwBCyABEK8KBEAgASgCECICQQA2ApwBIAJBADsBmgELIAFBhIULKAIAQQBBABBPIQIgASgCEEH/ASACIAJB/wFOGzoAmAEgAUHYhAsoAgBBAUEAEE8hAiABKAIQIAI2AqwBIAAgARAsIQEMAQsLIAAgAxAbIQMMAQsLCzoBAn8gAEEAIABBAEobIQADQCAAIANGRQRAIAIgA0ECdCIEaiABIARqKgIAOAIAIANBAWohAwwBCwsLQwECfyAAQQAgAEEAShshBQNAIAQgBUZFBEAgAyAEQQJ0IgBqIAAgAWoqAgAgACACaioCAJI4AgAgBEEBaiEEDAELCwuJAQICfwF8IAFBACABQQBKGyEGIAJBACACQQBKGyECA0BEAAAAAAAAAAAhB0EAIQEgBSAGRkUEQANAIAEgAkZFBEAgACABQQJ0aigCACAFQQN0aisDACADIAFBA3RqKwMAoiAHoCEHIAFBAWohAQwBCwsgBCAFQQN0aiAHOQMAIAVBAWohBQwBCwsLRgIBfwF8IABBACAAQQBKGyEARJpkfsUOG1HKIQMDQCAAIAJGRQRAIAMgASACQQN0aisDAJkQJSEDIAJBAWohAgwBCwsgAwuCAQIEfwF8IAFBACABQQBKGyEGA0AgBCAGRkUEQCAAIARBAnRqIQdEAAAAAAAAAAAhCEEAIQUDQCABIAVGRQRAIAcoAgAgBUECdGoqAgC7IAIgBUEDdGorAwCiIAigIQggBUEBaiEFDAELCyADIARBA3RqIAg5AwAgBEEBaiEEDAELCwuTAQIFfwF8IAFBACABQQBKGyEGA0AgBCAGRwRAIAAgBEEUbGoiBSgCACEHQQAhAUQAAAAAAAAAACEJA0AgASAHRgRAIAMgBEEDdGogCTkDACAEQQFqIQQMAwUgAUECdCIIIAUoAghqKgIAuyACIAUoAgQgCGooAgBBA3RqKwMAoiAJoCEJIAFBAWohAQwBCwALAAsLC6YCAgp/AXwgAiADbEEUEBghBSAEIAJBBBAYIgY2AgBBACEEIAJBACACQQBKGyEHA0AgBCAHRgRAQQAhAiADQQAgA0EAShshBQNAIAIgB0ZFBEAgBiACQQJ0aiEIIAAgAkEUbGoiAygCACEJIAMoAgghCiADKAIEIQtBACEDA0AgAyAFRwRAIAEgA0ECdCIMaiENQQAhBEQAAAAAAAAAACEPA0AgBCAJRgRAIAgoAgAgDGogD7Y4AgAgA0EBaiEDDAMFIAogBEECdCIOaioCALsgDSgCACALIA5qKAIAQQN0aisDAKIgD6AhDyAEQQFqIQQMAQsACwALCyACQQFqIQIMAQsLBSAGIARBAnRqIAU2AgAgBEEBaiEEIAUgA0ECdGohBQwBCwsLjAECBH8BfCABQQAgAUEAShshBiACQQAgAkEAShshAgNAIAUgBkZFBEAgACAFQQJ0aiEHRAAAAAAAAAAAIQlBACEBA0AgASACRkUEQCABQQN0IgggBygCAGorAwAgAyAIaisDAKIgCaAhCSABQQFqIQEMAQsLIAQgBUEDdGogCTkDACAFQQFqIQUMAQsLC8gGAgt/AnwgAiABIAEgAkobIgpBACAKQQBKGyEHIAFBACABQQBKGyEOIAFBAWshCSABQR5sIQ8gAUEIEBghDCABQQgQGCENAkADQCAHIAhGDQEgAyAIQQJ0aigCACEGQQAhBQNAQQAhAiAFIA5HBEAgBiAFQQN0ahClAUHkAG+3OQMAIAVBAWohBQwBCwNAIAIgCEZFBEAgBiAJIAEgAyACQQJ0aigCACIFIAYQoQGaIAUQkAQgAkEBaiECDAELC0EAIQUgBiAJEJADIhBEu73X2d982z1jDQALIAEgBkQAAAAAAADwPyAQoyAGEN4BAkADQCABIAYgDRCCAiAAIAEgASAGIAwQmAogASAMIAYQggJBACECA0AgAiAIRkUEQCAGIAkgASADIAJBAnRqKAIAIgsgBhChAZogCxCQBCACQQFqIQIMAQsLIAVBAWohCyAFIA9OIAYgCRCQAyIQRLu919nffNs9Y3INASABIAZEAAAAAAAA8D8gEKMgBhDeASALIQUgASAGIA0QoQEiEZlEK4cW2c737z9jDQALIAQgCEEDdGogECARojkDACAIQQFqIQgMAQsLIAghBwsgByAKIAcgCkobIQgDfyAHIAhGBH9BASAKIApBAUwbQQFrIQZBACEIA0AgBiAIIgBHBEAgBCAAQQN0aiIHKwMAIRAgAEEBaiIIIQIgACEFA0AgAiAKTkUEQCAEIAJBA3RqKwMAIhEgECAQIBFjIgkbIRAgAiAFIAkbIQUgAkEBaiECDAELCyAAIAVGDQEgASADIABBAnRqKAIAIgAgDBCCAiABIAMgBUECdGoiAigCACAAEIICIAEgDCACKAIAEIICIAQgBUEDdGogBysDADkDACAHIBA5AwAMAQsLIAwQFyANEBcgCyAPTAUgAyAHQQJ0aigCACEAQQAhAkEAIQUDQCAFIA5GRQRAIAAgBUEDdGoQpQFB5ABvtzkDACAFQQFqIQUMAQsLA0AgAiAHRkUEQCAAIAkgASADIAJBAnRqKAIAIgUgABChAZogBRCQBCACQQFqIQIMAQsLIAEgAEQAAAAAAADwPyAAIAkQkAOjIAAQ3gEgBCAHQQN0akIANwMAIAdBAWohBwwBCwsL+QsCEH8CfEHwggstAAAEQEHX8gBBGUEBQYjzCCgCABBKGgsgAEEAIABBAEobIQcDQCADIAdHBEAgASADQQJ0aiEGQQAhBEQAAAAAAAAAACETA0AgACAERwRAIAMgBEcEQCATIAYoAgAgBEEDdGorAwCgIRMLIARBAWohBAwBCwsgBigCACADQQN0aiATmjkDACADQQFqIQMMAQsLIABBAWshA0EAIQRBACEGIwBBIGsiCyQAAkACf0Hw5AooAgAiAARAIAAQ1AILQfDkCiADIANEAAAAAAAAAAAQ1QI2AgBB9OQKKAIAEBdB9OQKIANBBBAYNgIAQfjkCigCABAXQfjkCiADQQgQGCIKNgIAIANBACADQQBKGyEIQfTkCigCACEHQfDkCigCACEJAkACQANAIAQgCEYNASAJIARBAnQiBWohDCABIAVqIQ5EAAAAAAAAAAAhE0EAIQADQCAAIANHBEAgAEEDdCIPIAwoAgBqIA4oAgAgD2orAwAiFDkDACAAQQFqIQAgEyAUmRAlIRMMAQsLIBNEAAAAAAAAAABkBEAgCiAEQQN0akQAAAAAAADwPyATozkDACAFIAdqIAQ2AgAgBEEBaiEEDAELCyAKIARBA3RqQgA3AwAMAQtBACEBIANBAWsiCEEAIAhBAEobIQxBACEEA0ACQEQAAAAAAAAAACETIAwgASIARg0AA0AgACADSARAIAkgByAAQQJ0aigCACIFQQJ0aigCACABQQN0aisDAJkgCiAFQQN0aisDAKIiFCATIBMgFGMiBRshEyAAIAQgBRshBCAAQQFqIQAMAQsLIBNEAAAAAAAAAABlDQIgASAERwRAIAcgAUECdGoiACgCACEFIAAgByAEQQJ0aiIAKAIANgIAIAAgBTYCAAsgCSAHIAFBAnRqKAIAQQJ0aigCACIOIAFBA3QiD2orAwAhEyABQQFqIgEhBQNAIAMgBUwNAiAJIAcgBUECdGooAgBBAnRqKAIAIhAgD2oiACAAKwMAIBOjIhQ5AwAgFJohFCABIQADQCAAIANIBEAgECAAQQN0IhFqIhIgFCAOIBFqKwMAoiASKwMAoDkDACAAQQFqIQAMAQsLIAVBAWohBQwACwALCyAJIAcgCEECdGooAgBBAnRqKAIAIAhBA3RqKwMARAAAAAAAAAAAYgwBC0EAC0UNAAJAIANBgICAgAJJBEBBACADIANBCBBFIgQbDQEDQEEAIQAgAyAGRwRAA0AgACADRwRAIAQgAEEDdGpCADcDACAAQQFqIQAMAQsLIAQgBkEDdGpCgICAgICAgPg/NwMAIAIgBkECdGooAgAhB0EAIQEgA0EAIANBAEobIQpB9OQKKAIAIQVB8OQKKAIAIQkDfyABIApGBH8gAwUgCSAFIAFBAnRqKAIAIghBAnRqIQ1EAAAAAAAAAAAhE0EAIQADQCAAIAFHBEAgAEEDdCIMIA0oAgBqKwMAIAcgDGorAwCiIBOgIRMgAEEBaiEADAELCyAHIAFBA3RqIAQgCEEDdGorAwAgE6E5AwAgAUEBaiEBDAELCyEAA0ACQAJAIABBAEoEQCAFIABBAWsiAUECdGohCkQAAAAAAAAAACETA0AgACADTg0CIABBA3QiCCAJIAooAgBBAnRqKAIAaisDACAHIAhqKwMAoiAToCETIABBAWohAAwACwALDAELIAcgAUEDdCIAaiIIIAgrAwAgE6EgCSAKKAIAQQJ0aigCACAAaisDAKM5AwAgASEADAELCyAGQQFqIQYMAQsLIAQQF0EAIQZBASENA0AgAyAGRg0DIAIgBkECdGohAUEAIQADQCAAIAZHBEAgASgCACAAQQN0aiIEKwMAIRMgBCACIABBAnRqKAIAIAZBA3RqIgQrAwA5AwAgBCATOQMAIABBAWohAAwBCwsgBkEBaiEGDAALAAsgC0EINgIEIAsgAzYCAEGI8wgoAgBBseoDIAsQHRoQJgALIAsgA0EDdDYCEEGI8wgoAgBBgOoDIAtBEGoQHRoQJgALIAtBIGokACANCyAAIAAEQCAAKAIEEBcgACgCCBAXIAAoAhAQFyAAEBcLCy0BAnxBfyACIAAoAgBBA3RqKwMAIgMgAiABKAIAQQN0aisDACIEZCADIARjGwtdAEHo5AooAgBB7OQKKAIAckUEQEHs5AogAzYCAEHo5AogAjYCACABQQJPBEAgACABQQRBNhCTAQtB7OQKQQA2AgBB6OQKQQA2AgAPC0GqrQNB8/4AQSdB/hoQAAALXgICfwJ8IAFBACABQQBKGyEBIANBA3QhAyACQQN0IQIDQCABIARGRQRAIAAgBEECdGooAgAiBSACaisDACADIAVqKwMAoSIHIAeiIAagIQYgBEEBaiEEDAELCyAGnwvmAwICfAR/IwBB0ABrIgQkAANAIAVBBEZFBEAgBUEEdCIGIARBEGpqIgcgACAGaiIGKQMANwMAIAcgBikDCDcDCCAFQQFqIQUMAQsLRAAAAAAAAABAIQIgAEQAAAAAAAAAAEQAAAAAAADwPyABKwMAIAErAwggASsDGBCHBSIDRAAAAAAAAAAAZkUgA0QAAAAAAAAAQGNFckUEQCAEIARBEGogAyAAQQAQqwEgAyECCyAARAAAAAAAAAAARAAAAAAAAPA/IAIgAkQAAAAAAADwP2QbIAErAxAgASsDCCABKwMYEIcFIgNEAAAAAAAAAABmRSACIANkRXJFBEAgBCAEQRBqIAMgAEEAEKsBIAMhAgsgAEQAAAAAAAAAAEQAAAAAAADwPyACIAJEAAAAAAAA8D9kGyABKwMIIAErAwAgASsDEBCGBSIDRAAAAAAAAAAAZkUgAiADZEVyRQRAIAQgBEEQaiADIABBABCrASADIQILIABEAAAAAAAAAABEAAAAAAAA8D8gAiACRAAAAAAAAPA/ZBsgASsDGCABKwMAIAErAxAQhgUiA0QAAAAAAAAAAGZFIAIgA2RFckUEQCAEIARBEGogAyAAQQAQqwEgAyECCyAEQdAAaiQAIAJEAAAAAAAAAEBjC3cBBX8gAUEAIAFBAEobIQUgASABbBC4ASEGIAEQuAEhBAN/IAMgBUYEfwNAIAIgBUZFBEAgAiAAIAEgBCACQQJ0aigCABCRBCACQQFqIQIMAQsLIAQFIAQgA0ECdGogBiABIANsQQJ0ajYCACADQQFqIQMMAQsLC/EBAQR/A0AgAUEBdCIEQQFyIQYCQCAAKAIEIgUgBEoEQCADIAAoAgAiByAEQQJ0aigCAEECdGoqAgAgAyAHIAFBAnRqKAIAQQJ0aioCAF0NAQsgASEECwJAIAUgBkwNACADIAAoAgAiBSAGQQJ0aigCAEECdGoqAgAgAyAFIARBAnRqKAIAQQJ0aioCAF1FDQAgBiEECyABIARHBEAgACgCACIFIARBAnRqIgYoAgAhByAGIAUgAUECdGoiBSgCADYCACAFIAc2AgAgAiAGKAIAQQJ0aiAENgIAIAIgBSgCAEECdGogATYCACAEIQEMAQsLC5UBAQV/IAQgAUECdCIFaiIGKgIAIAJfRQRAIAMgBWoiBygCACEFIAYgAjgCACAAKAIAIQYDQAJAIAVBAEwNACAEIAYgBUEBdiIAQQJ0aigCACIIQQJ0IglqKgIAIAJeRQ0AIAYgBUECdGogCDYCACADIAlqIAU2AgAgACEFDAELCyAGIAVBAnRqIAE2AgAgByAFNgIACwtfAQF/IAAoAgQiBARAIAEgACgCACIBKAIANgIAIAEgASAAKAIEQQJ0akEEaygCACIBNgIAIAIgAUECdGpBADYCACAAIAAoAgRBAWs2AgQgAEEAIAIgAxChCgsgBEEARwuTAQEEfyAEQQFrIgYQuAEhByAAIAY2AgQgACAHNgIAIARBACAEQQBKGyEIQQAhBANAIAUgCEZFBEAgASAFRwRAIAcgBEECdGogBTYCACACIAVBAnRqIAQ2AgAgBEEBaiEECyAFQQFqIQUMAQsLIAZBAm0hBQNAIAVBAEhFBEAgACAFIAIgAxChCiAFQQFrIQUMAQsLC+8BAQR/A0AgAUEBdCIEQQFyIQYCQCAAKAIEIgUgBEoEQCADIAAoAgAiByAEQQJ0aigCAEECdGooAgAgAyAHIAFBAnRqKAIAQQJ0aigCAEgNAQsgASEECyAFIAZKBEAgBiAEIAMgACgCACIFIAZBAnRqKAIAQQJ0aigCACADIAUgBEECdGooAgBBAnRqKAIASBshBAsgASAERwRAIAAoAgAiBSAEQQJ0aiIGKAIAIQcgBiAFIAFBAnRqIgUoAgA2AgAgBSAHNgIAIAIgBigCAEECdGogBDYCACACIAUoAgBBAnRqIAE2AgAgBCEBDAELCws/AAJAIAAgAWMEQCABIAJjDQFBf0EAIAEgAmQbDwsgACABZEUEQEEADwsgASACZA0AQX9BACABIAJjGw8LQQELfwIDfwN8IwBBMGsiAiQAIAErAwghBSABKwMAIQZBiPMIKAIAAn8gASgCECIEKAIEIAFGBEAgBCgCAAwBCyABQRhqCyIBKwMAIQcgAiABKwMIOQMgIAIgBzkDGCACIAU5AxAgAiAGOQMIIAIgADYCAEH88AQgAhAtIAJBMGokAAuvBAIKfAF/IARBAEwEQEEADwsgACsDCCEKIAArAwAhCCABKwMIIQUgASsDACEJAn8gACgCECIPKAIEIABGBEAgDygCAAwBCyAAQRhqCyIPKwMIIQ0gDysDACELAn8gASgCECIPKAIEIAFGBEAgDygCAAwBCyABQRhqCyIPKwMIIQYgDysDACEHQQEhDwJAAkACQAJAAkACQAJAIARBAWsOAwIBAAYLIAggC2EEQCACIAg5AwAgBSAGoSAJIAehoyAIIAehoiAGoCEFDAULIAcgCWEEQCACIAk5AwAgCiANoSAIIAuhoyAJIAuhoiANoCEFDAULIAIgCiAKIA2hIAggC6GjIgwgCKKhIg4gBSAFIAahIAkgB6GjIgYgCaKhIgWhIAYgDKEiB6M5AwAgBiAOoiAFIAyioSAHoyEFDAQLIAAgAUEAEL0CQX9GBEAgASAAQQEQvQJBf0cEQCAHIQwgBiEODAMLIA0gCiABIABBABC9AkF/RiIAGyEOIAsgCCAAGyEMDAILIAkhDCAFIQ4gACABQQEQvQJBf0YNAkEAIQ8gCyEMIA0hDiAIIQcgCiEGIAEgAEEAEL0CQX9HDQQMAgsgCCALoSAFIAqhoiAKIA2hIAkgCKGiYQRAIAIgCTkDAAwDCyACIAc5AwAgBiEFDAILIAkhByAFIQYLIAIgDCAHoEQAAAAAAADgP6I5AwAgDiAGoEQAAAAAAADgP6IhBQsgAyAFOQMAQQEhDwsgDwv2AQIIfAF/IAArAwghAyAAKwMAIQQgASsDCCEFIAErAwAhBgJ/IAAoAhAiCygCBCAARgRAIAsoAgAMAQsgAEEYagsiCysDCCEIIAsrAwAhBwJ/IAEoAhAiACgCBCABRgRAIAAoAgAMAQsgAUEYagsiACsDCCEJIAArAwAhCiACQX8gByAEoSIHIAUgA6GiIAggA6EiBSAGIAShoqEiBkQAAAAAAAAAAGQgBkQAAAAAAAAAAGMbIgA2AgAgAkF/IAcgCSADoaIgBSAKIAShoqEiA0QAAAAAAAAAAGQgA0QAAAAAAAAAAGMbIgE2AgQgAiAAIAFsNgIIC1kBAn8jAEEQayICJAACQCAARQ0AIAAtAABFDQAgASAAQYAEIAEoAgARBAAiAQR/IAEoAgwFQQALIgMNACACIAA2AgBBzrUEIAIQJ0EAIQMLIAJBEGokACADC00BAnwCf0EBIAAoAgAiACsDACICIAEoAgAiASsDACIDZA0AGkF/IAIgA2MNABpBASAAKwMIIgIgASsDCCIDZA0AGkF/QQAgAiADYxsLC98OAxR/CnwBfiMAQfAAayIDJAAgAUEAIAFBAEobIRIgAUEoEBghDwNAIAIgEkZFBEAgACACQQJ0aigCACgCBCAMaiEMIAJBAWohAgwBCwsgDEEYEBgiEEEYayEFA0AgCCASRwRAIA8gCEEobGoiBCAQIAZBGGxqNgIAIAAgCEECdGooAgAiDSgCBCEKQQAhAkT////////vfyEWRP///////+//IRdE////////7/8hGUT////////vfyEYA0AgAiAKRgRAIAQgFzkDICAEIBk5AxggBCAWOQMQIAQgGDkDCCAEIAUgBkEYbGo2AgQgCEEBaiEIDAMFIA0oAgAgAkEEdGoiBysDACEaIAcrAwghGyAQIAZBGGxqIgdBADYCFCAHIAQ2AhAgByAbOQMIIAcgGjkDACACQQFqIQIgBkEBaiEGIBcgGxAlIRcgGSAaECUhGSAWIBsQMyEWIBggGhAzIRgMAQsACwALC0EAIQIgDEEEEBghEQJAAkADQCACIAxGBEACQCARIAxBBEE0EJMBQQAhB0EAIQgDQCAMIA5GDQEgAyARIA5BAnRqIhUoAgAiAjYCTCADAn8gAigCECIEKAIAIAJGBEAgBCgCBAwBCyACQRhrCyIGNgJIQQAhEwNAAkACQAJAIBNBAkcEQCAHIQIgCCEEAkAgA0HMAGogA0HIAGoQqwpBAWoOAwADAgMLQQAhAiALQQAgC0EAShshFCAGQRhqIQ0DQAJAIAIgFEcEQCAEKAIAIgogBiADQeAAaiIJEKkKIAMoAmgiBUEASg0BAkAgBUEASARAIAYgCiAJEKkKIAMoAmgiBUEASg0DIAogBiADQdgAaiADQdAAaiAFQQBIBH9BAwUgBiAKIAMoAmAiBSAFQR91IgVzIAVrEL0CCxCoCg0BDAMLIAogBiADQdgAaiADQdAAagJ/IAMoAmAiBSADKAJkRgRAIAogBkEAEL0CIgUgCiAGQQEQvQIiCSAFIAlKG0EBdAwBCyAKIAYgBSAFQR91IglzIAlrEL0CCxCoCkUNAgsgCisDACEZAn8gCigCECIFKAIEIApGBEAgBSgCAAwBCyAKQRhqCyIJKwMAIRggDSEFIAorAwghHCADKwNQIRYgAysDWCEXIAYrAwghHSAJKwMIIR4gBigCECIJKAIEIAZGBEAgCSgCACEFCyAFKwMIIR8CQCAYIBliIgkgBisDACIaIAUrAwAiG2JxIBcgGWEgFiAcYXEgCXJFIBcgGGIgFiAeYnJxcg0AIBcgGmEgFiAdYXEgGiAbYnINAiAXIBtiDQAgFiAfYQ0CC0HwggstAABBAkkNDCADIBY5AzggAyAXOQMwQYjzCCgCAEGBpQQgA0EwahAtQQEgChCnCkECIAYQpwoMDAtBAUEMEBghAgJ/IAtFBEBBACEHIAIMAQsgByACNgIEIAgLIQQgAkEANgIEIAIgBjYCACACIAc2AgggBiACNgIUIAtBAWohCwwECyACQQFqIQIgBCgCBCEEDAALAAsgDkEBaiEODAQLIAYoAhQiBUUNAUEAIQJBACEEAkAgC0EBRg0AIAUgCEYEQCAIKAIEIgRBADYCCCAHIQIMAQsCQCAFIAdGBEAgBygCCCICQQA2AgQMAQsgBSgCCCICIAUoAgQiBDYCBCAEIAI2AgggByECCyAIIQQLIAUQFyAGQQA2AhQgC0EBayELCyADAn8gFSgCACIGIAYoAhAiCCgCBEYEQCAIKAIADAELIAZBGGoLNgJIIBNBAWohEyACIQcgBCEIDAELCwtBACEJQfCvBEEAEDIMBAsFIBEgAkECdGogECACQRhsajYCACACQQFqIQIMAQsLIAtBACALQQBKGyEUC0EAIQIDQCACIBRGRQRAIAgoAgQgCBAXIAJBAWohAiEIDAELCyAREBdBACEJIAwgDkcNAEEAIQJBASEJA0AgAiASRg0BIAMgACACQQJ0aigCACINKAIAIggpAwg3A2ggAyAIKQMANwNgIA8gAkEobGohBCACQQFqIgghAgNAIAEgAkYEQCAIIQIMAgsgACACQQJ0aigCACEFAkACQAJAIAQrAwgiFyAPIAJBKGxqIgcrAxgiGWUiBkUgFyAHKwMIIhZmRXINACAEKwMQIhggBysDICIaZUUNACAYIAcrAxAiG2ZFDQAgBCsDGCIYIBllRSAWIBhlRXINACAEKwMgIhggGmVFIBggG2ZFcg0AIAUpAgAhICADIAMpA2g3AyAgAyAgNwMoIAMgAykDYDcDGCADQShqIANBGGoQtARFDQEMAgsgFiAXZkUNACAWIAQrAxgiF2VFDQAgFyAZZkUgBysDECIWIAQrAyAiGGVFIAZFcnINACAWIAQrAxAiF2ZFDQAgBysDICIWIBhlRSAWIBdmRXINACAFKAIAIQcgAyANKQIANwMQIAMgBykDCDcDCCADIAcpAwA3AwAgA0EQaiADELQEDQELIAJBAWohAgwBCwsLQQAhCQsgDxAXIBAQFyADQfAAaiQAIAkLIwEBfyAAKAIIIgEEfyABQSBBJCAALQAQG2oFQajlCgsoAgALIwECfyAAKAIAIgEgACgCBCICNgIEIAIgATYCACAAQX42AggLNQEBfwJ/AkBBjIULKAIAIgFFDQAgACABED4iAUUNACABLQAARQ0AQQEgARBqRQ0BGgtBAAsLOwECfCAAKwMIIAErAwgiA6EgAisDACABKwMAIgShoiACKwMIIAOhIAArAwAgBKGioUQAAAAAAAAAAGQLIgAgACABKwMAIAIrAwChOQMAIAAgASsDCCACKwMIoTkDCAv1BQIHfAJ/AkACQCAAKwMAIgNEAAAAAAAA8D9hBEAgAEEYQRwgACsDCCIDRAAAAAAAAAAAZiIIG2ooAgAhCQJAAnwgAEEcQRggCBtqKAIAIggEQCAIKwMIIgVB+OMKKwMAZA0FQYDkCisDACICIAVlBEAgCCsDACEEDAMLIAArAxAgAyACoqEMAQsgACsDECADQYDkCisDACICoqELIQQgAiEFCwJ8IAkEQCAJKwMIIgEgAmMNBEH44worAwAiAiABZgRAIAkrAwAMAgsgACsDECADIAIiAaKhDAELIAArAxAgA0H44worAwAiAaKhCyEGIARBiOQKKwMAIgdkIgggBiAHZHENAkGQ5AorAwAiAiAEZCACIAZkcQ0CIAgEQCAAKwMQIAehIAOjIQUgByEECyACIARkBEAgACsDECACoSADoyEFIAIhBAsgBiAHZARAIAArAxAgB6EgA6MhASAHIQYLIAIgBmRFBEAgBiECDAILIAArAxAgAqEgA6MhAQwBCyAAKAIcIQkCQAJ8IAAoAhgiCARAIAgrAwAiBEGI5AorAwBkDQRBkOQKKwMAIgEgBGUEQCAIKwMIIQUMAwsgACsDECADIAGioQwBCyAAKwMQIANBkOQKKwMAIgGioQshBSABIQQLAnwgCQRAIAkrAwAiAiABYw0DQYjkCisDACIBIAJmBEAgCSsDCAwCCyABIQIgACsDECADIAGioQwBCyAAKwMQIANBiOQKKwMAIgKioQshBiAFQfjjCisDACIHZCIIIAYgB2RxDQFBgOQKKwMAIgEgBWQgASAGZHENASAIBEAgByEFIAArAxAgB6EgA6MhBAsgASAFZARAIAEhBSAAKwMQIAGhIAOjIQQLIAYgB2QEQCAAKwMQIAehIAOjIQIgByEGCyABIAZkRQRAIAYhAQwBCyAAKwMQIAGhIAOjIQILIAAoAiAgBCAFENgCIAAoAiAgAiABENgCIAAoAiQgBCAFENgCIAAoAiQgAiABENgCCwu4AQIBfwd8QezjChDvBiICIAE2AiQgAiAANgIgIAAQ+wQgARD7BCACQgA3AxgCfCABKwMAIAArAwAiB6EiA5kgASsDCCAAKwMIIgihIgSZZARAIAQgA6MhBUQAAAAAAADwPyEGIAMMAQsgAyAEoyEGRAAAAAAAAPA/IQUgBAshCSACIAU5AwggAiAGOQMAIAIgAyADoiAEIASioEQAAAAAAADgP6IgByADoiAIIASioKAgCaM5AxAgAgsLAEHs4wpBKBCJBQsOACAAQaoFQe66ARD4Cgs7AQJ/AkAgACgCECICKALoASIBRQ0AIAEoAhAiAS0AkAINACABKAKMAiACKAL0AUECdGooAgAhAAsgAAs3AQF/IAAQGiEBA0AgAQRAIAEoAhAoAsABEBcgASgCECgCyAEQFyAAIAEQGyEBDAELCyAAELUBC/MFAQh/IwBBEGsiCSQAIAlBiNQKKAIANgIMQf6GASAJQQxqQQAQ4wEiCEG+KEGYAkEBEDEaIAEQswEhBQNAIAUEQCAIIAUoAhQQH0EBEIgBIgRB2ChBwAJBARAxGiAEKAIQIgcgBTYCgAEgBSAENgIYIAdBADYCxAFBAUEEEBghByAEKAIQIgpBADYCzAEgCiAHNgLAAUEBQQQQGCEHIAQoAhAgBzYCyAECQCAGBEAgBigCECAENgK4AQwBCyAIKAIQIAQ2AsABCyAFKAIAIQUgBCEGDAELCyABELMBIQUCQANAIAUEQCAFQSBqIQogBSEEA0AgBCgCACIEBEAgBSAEIAIRAABFDQEgCiAEQSBqIAMRAAAhBiAIIAUoAhggBCgCGEEAQQEQYCIHQcsoQbgBQQEQMRogBkGAgARODQQgBygCECILQQE2ApwBIAsgBjYCrAEgACAFKAIUIAQoAhRBAEEAEGBFDQEgBygCEEHkADYCnAEMAQsLIAUoAgAhBQwBCwsgARCzASECA0AgAgRAIAggAigCGCIAECkhBANAIAQEQCAAKAIQIgEoAsgBIAEoAswBIgFBAWogAUECakEEEH0hASAAKAIQIgMgATYCyAEgAyADKALMASIDQQFqNgLMASABIANBAnRqIAQ2AgAgACgCECIBKALIASABKALMAUECdGpBADYCACAEIARBMGsiASAEKAIAQQNxQQJGGygCKCgCECIDKALAASADKALEASIDQQFqIANBAmpBBBB9IQMgBCABIAQoAgBBA3FBAkYbKAIoKAIQIAM2AsABIAQgASAEKAIAQQNxQQJGGygCKCgCECIDIAMoAsQBIgZBAWo2AsQBIAMoAsABIAZBAnRqIAQ2AgAgBCABIAQoAgBBA3FBAkYbKAIoKAIQIgEoAsABIAEoAsQBQQJ0akEANgIAIAggBBAsIQQMAQsLIAIoAgAhAgwBCwsgCUEQaiQAIAgPC0H01wFB7roBQfQBQeDWARAAAAvrCQENfyMAQRBrIgskACALQYjUCigCADYCDEH+hgEgC0EMakEAEOMBIgxBvihBmAJBARAxGkGBgICAeCEDIAAQswEhBANAIAQEQCAJIAMgBCgCCCIHR2ohCSAEKAIAIQQgByEDDAELCyAJQQF0QQFrIQ9BgYCAgHghByAAELMBIQRBACEDA0AgBARAIAQoAggiDiAHRwRAIAwgBCgCFBAfQQEQiAEiA0HYKEHAAkEBEDEaIAMoAhAiByAENgKAAQJAIAoEQCAFKAIQIAM2ArgBDAELIAwoAhAgAzYCwAEgAyEKCyAHQQA2AsQBIAZBAWoiB0EEEBghCCADKAIQIAg2AsABIAUEQCAFKAIQQQA2AswBIA8gCSAGayAFIApGG0EEEBghBiAFKAIQIAY2AsgBIAwgBSADQQBBARBgIgZByyhBuAFBARAxGiAGKAIQIghBATYCnAEgCEEKNgKsASAFKAIQIggoAsgBIAgoAswBIghBAWogCEECakEEEH0hCCAFKAIQIg0gCDYCyAEgDSANKALMASINQQFqNgLMASAIIA1BAnRqIAY2AgAgBSgCECIFKALIASAFKALMAUECdGpBADYCACADKAIQIgUoAsABIAUoAsQBIgVBAWogBUECakEEEH0h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IgIgAkEBahCNAiIDIAJBAnRqIAE2AgAgACgCECIAIAM2ArABIAAgAC8BqAFBAWo7AagBCxYAIABB5bUBQZMCQY66AUH+ngMQkgULowECAn8DfCAAKAIQIgIoAowBIgErAwghAyABKwMQIQQgASsDGCEFIAIgASsDIEQAAAAAAABSQKI5AyggAiAFRAAAAAAAAFJAojkDICACIAREAAAAAAAAUkCiOQMYIAIgA0QAAAAAAABSQKI5AxBBASEBA0AgASACKAK0AUpFBEAgAigCuAEgAUECdGooAgAQ1gogAUEBaiEBIAAoAhAhAgwBCwsL7wECA38CfCAAKAIQKAKMASICKwMQIQUgAisDCCEGAkAgACABRg0AIAAQGiECA0AgAkUNASAAIAIoAhAiAygC6AFGBEAgAygClAEiAyAGIAMrAwCgOQMAIAMgBSADKwMIoDkDCAsgACACEBshAgwACwALQQEhAwNAIAAoAhAiAigCtAEgA04EQCACKAK4ASADQQJ0aigCACEEIAAgAUcEQCAEKAIQKAKMASICIAUgAisDIKA5AyAgAiAGIAIrAxigOQMYIAIgBSACKwMQoDkDECACIAYgAisDCKA5AwgLIAQgARDXCiADQQFqIQMMAQsLC59LAxh/EHwBfiMAQbABayIIJABB8IILLQAABEAgCCAAEB82AnBBiPMIKAIAQfvwAyAIQfAAahAdGgsgABAaIQIDQCACBEAgAigCEEEANgK4ASAAIAIQGyECDAELC0HwggstAABBAk8EQCABKAIQIQIgCCAAEB82AmQgCCACNgJgQYjzCCgCAEGY+QMgCEHgAGoQHRoLIAEgASgCEEEBajYCECAIQYjUCigCADYCXEGxqwEgCEHcAGpBABDjASIKQb4oQZgCQQEQMRpBOBBVIQIgCigCECACNgKMASAAEDQhAiAKKAIQIAIoAhAvAbABOwGwASAAIApByd8AEPsGIAAgCkGH3gAQ+wYgACAKQZDWARD7BiAIQZgBaiEGIAhBkAFqIQwgCEGIAWohA0EBIRADQCAAKAIQIgIoArQBIBBOBEAgAigCuAEgEEECdGooAgAiCxDGBCAKIAsQHxD6BiIEKAIQIgIgETYCiAEgAiALNgLoAQJAAkAgASgCBCICRQRARP///////+9/IRxE////////7/8hGwwBC0T////////v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NgIIIAFBnLILQaCkCxBsEHBBqLILQQEQbSICQazkCTYCCCACQaTOCTYCACACQdTOCTYCCCABQaiyC0GopAsQbBBwQbSyC0EBEG0iAkEIahCVCyACQZTQCTYCACABQbSyC0GwpAsQbBBwQcCyC0EBEG0iAkEIahCVCyACQbTRCTYCACABQcCyC0G4pAsQbBBwQcyyC0EBEG1BxNsJNgIAIAFBzLILQYClCxBsEHBB1LILQQEQbUG83Ak2AgAgAUHUsgtBiKULEGwQcCAGQRBqJAAgBUGYpQs2AghBtKYLIAUoAggQmwIaQbimC0EBOgAACyAFQRBqJABBvKYLQbSmCxC/C0HApgtBAToAAAsgAEG8pgsoAgAiADYCACAAEL4LCxEAIABBmKULRwRAIAAQwQsLCxMAIAAgASgCACIANgIAIAAQvgsLnQEBBH8gAEG4sAk2AgAgAEEIaiEBA0AgARDAAiACSwRAIAEgAhCSAygCAARAIAEgAhCSAygCABCYBQsgAkEBaiECDAELCyAAQZABahAvGiMAQRBrIgIkACACQQxqIAEQmwIiASgCACIDKAIABEAgAxDCCyABKAIAGiABKAIAEJEDIAEoAgAiASgCACABEJsLGhCZCwsgAkEQaiQAIAALDwAgACAAKAIEQQFqNgIECwwAIAAgACgCABCcCwt7AQN/IwBBEGsiBCQAIARBBGoiAiAANgIAIAIgACgCBCIDNgIEIAIgAyABQQJ0ajYCCCACIgMoAgQhASACKAIIIQIDQCABIAJGBEAgAygCACADKAIENgIEIARBEGokAAUgABCRAxogARCdCyADIAFBBGoiATYCBAwBCwsLIAAgAEGIuQk2AgAgACgCCBBmRwRAIAAoAggQhQwLIAALBABBfwumAQEDfyMAQRBrIgQkACMAQSBrIgMkACADQRhqIAAgARChCyADQRBqIAMoAhggAygCHCACEJUMIAMoAhAhBSMAQRBrIgEkACABIAA2AgwgAUEMaiIAIAUgABCRB2tBAnUQlQchACABQRBqJAAgAyAANgIMIAMgAiADKAIUEJgDNgIIIARBCGogA0EMaiADQQhqEPQBIANBIGokACAEKAIMIARBEGokAAuBBgEKfyMAQRBrIhMkACACIAA2AgBBBEEAIAcbIRUgA0GABHEhFgNAIBRBBEYEQCANECJBAUsE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KwMYIQQgACsDICEGIAAoAjgiASgCECIDIAArAyhEAAAAAAAAUkCjOQMoIAMgBkQAAAAAAABSQKM5AyAgAyAEOQMYIAMgBTkDECABIAEQKygCECgCdEEBcRC5BAJAQfSDCygCACIARQ0AIAEgABA+LQAADQAgAiABKAIQKwNQRGZmZmZmZuY/ojkDMCACQUBrIgBBKEHoiQEgAkEwahC6ARogAUH0gwsoAgAgABBpCyABEOUFQfCCCy0AAEUNACABEB8hAyABKAIQIgArAxAhBSAAKwNgIQQgACsDWCEGIAArAxghByACIAArA1A5AxggAiAHOQMQIAIgBiAEoDkDICACIAU5AwggAiADNgIAQYjzCCgCAEHgqgQgAhAtCyACQfAAaiQACwoAIAEgAGtBAnULHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEN8LCyACIAEgASACKAIAEI8MIAZBDGogAyAAKAIAEIcMIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQnQIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLsgYCCn8FfCMAQdABayIBJAACQCAAKAJAIgRFDQAgBEEEEJkEIQUgAEEwaiIHIQMDQCACIARGBEAgBSAEQQRBHhCTAUEAIQIgBEEIEJkEIQMDQCACIARGBEACfyAAKwMIIgwgACsDAGEEQCABIAApAyg3A4gBIAEgACkDIDcDgAEgASAAKQMYNwN4IAEgACkDEDcDcCAEIAMgAUHwAGoQrAsMAQsgACsDICELIAArAyghDSABIAArAxA5A7ABIAEgACsDGDkDuAEgASALIA0gC6AgDSALoSILIAuiIAxEAAAAAAAAEECioJ+hRAAAAAAAAOA/oiILoTkDwAEgASANIAuhOQPIASABIAEpA7gBNwOYASABIAEpA8ABNwOgASABIAEpA8gBNwOoASABIAEpA7ABNwOQASAEIAMgAUGQAWoQrAsLIQhBiPMIKAIAIQlB8IILLQAABEAgACsDECELIAArAxghDSAAKwMgIQwgASAAKwMoOQNoIAEgDDkDYCABIA05A1ggASALOQNQ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CyQBAn8jAEEQayICJAAgASAAEKQFIQMgAkEQaiQAIAEgACADGwv7AQEFfyABEBohAwNAIAMEQCABIAMQGyEEIAMoAhAtALUBBEAgASADELQBIAQhAwwCBUEBIQIDQAJAIAAoAhAiBSgCtAEiBiACSgR/IAUoArgBIAJBAnRqKAIAIAMQqgFFDQEgACgCECgCtAEFIAYLIAJKBEAgASADELQBCyADKAIQQQA2AugBIAQhAwwECyACQQFqIQIMAAsACwALCyABEBohAANAIAAEQCABEF4gABApIQIDQCACBEAgASACQVBBACACKAIAQQNxQQJHG2ooAigQqgEEQCABIAJBARDIAhoLIAEQXiACECwhAgwBCwsgASAAEBshAAwBCwsLDgBBACAAIABBfxDEAhsLsAEBA38CQCABIAIQkAwhBCMAQRBrIgMkACAEQff///8HTQRAAkAgBBClBQRAIAAgBBDOASAAIQUMAQsgA0EIaiAEENMDQQFqENIDIAMoAgwaIAAgAygCCCIFEPMBIAAgAygCDBDyASAAIAQQuQELA0AgASACRwRAIAUgARDNASAFQQFqIQUgAUEBaiEBDAELCyADQQA6AAcgBSADQQdqEM0BIANBEGokAAwBCxDCAQALCzcBAX8gACgCBCEBA0AgAUF/RgRAIABBADYCBAUgACgCACABQQJ0akEANgIAIAFBAWshAQwBCwsLDwAgACAAKAIYIAFqNgIYCxcAIAAgAjYCHCAAIAE2AhQgACABNgIYC4ICAQN/AkACQAJAIAEoAhAiAigCyAENACACIAA2AsgBIAAgARCbDCABEBpFDQAgACABEJgMQQAhAkGYgwsoAgBB5ABGBEAgARC8DCABKAIQIgRBwAFqIQADQCAAKAIAIgAEQCAAKAIQIgMoAvQBRQRAIAIgACADLQCsARshAgsgA0G4AWohAAwBCwsgAkUNAiAEIAI2AogCIAEQGiEAA0AgAEUNAiAAIAJHIAAoAhAoAuwBQQJOcQ0EIAAgAhDnBRogACgCEEEHOgC1ASABIAAQGyEADAALAAsgARDZDAsPC0HW0gFBrr4BQewBQfw8EAAAC0GLPUGuvgFB8AFB/DwQAAALVwECfwJAIAAoAgAiAkUNAAJ/IAIoAhgiAyACKAIcRgRAIAIgASACKAIAKAI0EQAADAELIAIgA0EEajYCGCADIAE2AgAgAQtBfxDEAkUNACAAQQA2AgALCzEBAX8gACgCDCIBIAAoAhBGBEAgACAAKAIAKAIoEQIADwsgACABQQRqNgIMIAEoAgALJwEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAiQRAgAPCyABKAIAC2oBAn8gACgCECIBIAEoAogCKAIQKAL0ASICIAEoAugBajYC6AEgASACIAEoAuwBajYC7AFBASECA0AgAiABKAK0AUpFBEAgASgCuAEgAkECdGooAgAQpQwgAkEBaiECIAAoAhAhAQwBCwsLJwEBfwJAIAAoAgAiAkUNACACIAEQrAxBfxDEAkUNACAAQQA2AgALC1MBA38CQEF/IAAoAkwQxAJFBEAgACgCTCEADAELIAAjAEEQayIBJAAgAUEMaiICIAAQTCACEMQBQSAQlwEhACACEEggAUEQaiQAIAA2AkwLIADACxoAIAAgASABKAIAQQxrKAIAaigCGDYCACAACwsAIABBkKQLEKICC98CAQR/IAEQdyEDA0AgAwRAQQchBAJAAkAgAxDHAUUEQCADQbD3ABAjQZDuCUGw7gkQkQghBCADKAIQIAQ6AJICIARFDQELAkAgBEEHRw0AQZiDCygCAEHkAEcNACAAIAMQoQwMAgsgAxAaIgJFDQEgBCEFIAIhAQNAIAEoAhAgBToAtQEgAyABEBsiAQRAIAIgARDnBRogAigCEC0AtQEhBQwBCwsCQAJAAkAgBEECaw4EAAABAQQLIAAoAhAiASgC4AEiBUUEQCABIAI2AuABDAILIAUgAhDnBSECIAAoAhAiASACNgLgAQwBCyAAKAIQIgEoAuQBIgVFBEAgASACNgLkAQwBCyAFIAIQ5wUhAiAAKAIQIgEgAjYC5AELQeABIQICQAJAIARBA2sOAwEDAAMLQeQBIQILIAEgAmooAgAoAhAgBDoAtQEMAQsgACADEKoMCyADEHYhAwwBCwsLCQAgABCtBxAXCz0BAX8gACgCGCICIAAoAhxGBEAgACABEJoDIAAoAgAoAjQRAAAPCyAAIAJBAWo2AhggAiABOgAAIAEQmgMLNAEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAigRAgAPCyAAIAFBAWo2AgwgASwAABCaAwsqAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBECAA8LIAEsAAAQmgMLDwAgACAAKAIAKAIYEQIAC7kBAQN/QQEhAgNAIAIgACgCECIDKAK0AUpFBEAgAygCuAEgAkECdGooAgBBABCwDCACQQFqIQIMAQsLAkAgAUUEQCADKALIAUUNAQsgA0L/////dzcD6AFBACEBIAAQGiECA0AgAgRAIAIoAhAoAvQBIgMgACgCECIEKALsAUoEQCAEIAM2AuwBCyADIAQoAugBSARAIAQgAzYC6AEgAiEBCyAAIAIQGyECDAELCyAAKAIQIAE2AogCCwsIACAAKAIQRQsEAEF/CwgAIAAQpwcaC6YCAQZ/IAEoAhAiBigCsAFFBEAgBkEBOgC0ASAGQQE2ArABIAAgARApIQIDQCACBEAgACACECwhBiACQQBBUCACKAIAQQNxIgdBAkYiAxtqKAIoIgUoAhAiBC0AtAEEQCAAIAIgAkEwayIEIAMbKAIoIAIgAkEwaiIFIAdBA0YbKAIoQQBBABBgIgNFBEAgACACIAQgAigCAEEDcSIEQQJGGygCKCACIAUgBEEDRhsoAihBAEEBEGAhAwsgAigCECIEKAKsASEFIAMoAhAiAyADKAKcASAEKAKcAWo2ApwBIAMgAygCrAEiBCAFIAQgBUobNgKsASAAIAIQtAEgBiECDAILIAYhAiAEKAKwAQ0BIAAgBRC0DAwBCwsgASgCEEEAOgC0AQsLvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxCwAUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELABIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEJgBIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEJgBIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEJgBIAVB8AFqIARCAEIAIAUpA4gCfUIAEJgBIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEJgBIAVB0AFqIARCAEIAIAUpA+gBfUIAEJgBIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEJgBIAVBsAFqIARCAEIAIAUpA8gBfUIAEJgBIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEJgBIAVBkAFqIANCD4ZCACACQgAQmAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCYASAFQYABakIBIAR9QgAgAkIAEJgBIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQmAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQmAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCbAyAFQTBqIA0gFSAGQfAAahCwASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEJgBIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQmAEgBSADIBJCBUIAEJgBIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQdSKC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBDIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELIFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQsgULIABBCGoL9gEBBH8CQCAAEMcBRQ0AIAAQuAdFDQAgABAaIQQDQCAEBEAgACAEEK8CRQRAIAQQ+QEoAhAoAqQBIQUgAkUEQCABQY7cABCgBCECCyABIAIgBUEAQQEQYBoLIAAgBBApRQRAIAEgBBD5ASgCECgCpAEgA0UEQCABQZEeEKAEIQMLIANBAEEBEGAaCyAAIAQQGyEEDAELCyACRSADRXINACABIAIgA0EAQQEQYCgCECIEIAQoApwBQegHajYCnAEgBCAEKAKsASIEQQAgBEEAShs2AqwBCyAAEHchBANAIAQEQCAEIAEgAiADELgMIAQQdiEEDAELCwsSACAARQRAQQAPCyAAIAEQtQcL5R4CD38FfiMAQZABayIFJAAgBUEAQZABEDAiBUF/NgJMIAUgADYCLCAFQYAENgIgIAUgADYCVCABIQQgAiEQQQAhACMAQbACayIGJAAgBSIDKAJMGgJAAkAgAygCBEUEQCADEMMHGiADKAIERQ0BCyAELQAAIgFFDQECQAJAAkACQAJAA0ACQAJAIAFB/wFxIgEQxgIEQANAIAQiAUEBaiEEIAEtAAEQxgINAAsgA0IAEIYCA0ACfyADKAIEIgIgAygCaEcEQCADIAJBAWo2AgQgAi0AAAwBCyADEFILEMYCDQALIAMoAgQhBCADKQNwQgBZBEAgAyAEQQFrIgQ2AgQLIAQgAygCLGusIAMpA3ggFXx8IRUMAQsCfwJAAkAgAUElRgRAIAQtAAEiAUEqRg0BIAFBJUcNAgsgA0IAEIYCAkAgBC0AAEElRgRAA0ACfyADKAIEIgEgAygCaEcEQCADIAFBAWo2AgQgAS0AAAwBCyADEFILIgEQxgINAAsgBEEBaiEEDAELIAMoAgQiASADKAJoRwRAIAMgAUEBajYCBCABLQAAIQEMAQsgAxBSIQELIAQtAAAgAUcEQCADKQNwQgBZBEAgAyADKAIEQQFrNgIECyABQQBOIA5yDQ0MDAsgAygCBCADKAIsa6wgAykDeCAVfHwhFSAEIQEMAwtBACEIIARBAmoMAQsCQCABQTBrIgJBCUsNACAELQACQSRHDQAjAEEQayIBIBA2AgwgASAQIAJBAnRqQQRrIBAgAkEBSxsiAUEEajYCCCABKAIAIQggBEEDagwBCyAQKAIAIQggEEEEaiEQIARBAWoLIQFBACEPQQAhByABLQAAIgRBMGtBCU0EQANAIAdBCmwgBGpBMGshByABLQABIQQgAUEBaiEBIARBMGtBCkkNAAsLIARB7QBHBH8gAQVBACEMIAhBAEchDyABLQABIQRBACEAIAFBAWoLIglBAWohAUEDIQIgDyEFAkACQAJAAkACQAJAIARB/wFxQcEAaw46BAwEDAQEBAwMDAwDDAwMDAwMBAwMDAwEDAwEDAwMDAwEDAQEBAQEAAQFDAEMBAQEDAwEAgQMDAQMAgwLIAlBAmogASAJLQABQegARiICGyEBQX5BfyACGyECDAQLIAlBAmogASAJLQABQewARiICGyEBQQNBASACGyECDAMLQQEhAgwCC0ECIQIMAQtBACECIAkhAQtBASACIAEtAAAiBUEvcUEDRiICGyERAkAgBUEgciAFIAIbIg1B2wBGDQACQCANQe4ARwRAIA1B4wBHDQFBASAHIAdBAUwbIQcMAgsgCCARIBUQuwwMAgsgA0IAEIYCA0ACfyADKAIEIgIgAygCaEcEQCADIAJBAWo2AgQgAi0AAAwBCyADEFILEMYCDQALIAMoAgQhBCADKQNwQgBZBEAgAyAEQQFrIgQ2AgQLIAQgAygCLGusIAMpA3ggFXx8IRULIAMgB6wiFBCGAgJAIAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBAwBCyADEFJBAEgNBgsgAykDcEIAWQRAIAMgAygCBEEBazYCBAtBECEEAkACQAJAAkACQAJAAkACQAJAAkAgDUHYAGsOIQYJCQIJCQkJCQEJAgQBAQEJBQkJCQkJAwYJCQIJBAkJBgALIA1BwQBrIgJBBktBASACdEHxAHFFcg0ICyAGQQhqIAMgEUEAEMYMIAMpA3hCACADKAIEIAMoAixrrH1SDQUMDAsgDUEQckHzAEYEQCAGQSBqQX9BgQIQMBogBkEAOgAgIA1B8wBHDQYgBkEAOgBBIAZBADoALiAGQQA2ASoMBgsgBkEgaiABLQABIgRB3gBGIgVBgQIQMBogBkEAOgAgIAFBAmogAUEBaiAFGyECAn8CQAJAIAFBAkEBIAUbai0AACIBQS1HBEAgAUHdAEYNASAEQd4ARyEKIAIMAwsgBiAEQd4ARyIKOgBODAELIAYgBEHeAEciCjoAfgsgAkEBagshAQNAAkAgAS0AACICQS1HBEAgAkUNDyACQd0ARg0IDAELQS0hAiABLQABIglFIAlB3QBGcg0AIAFBAWohBQJAIAkgAUEBay0AACIETQRAIAkhAgwBCwNAIARBAWoiBCAGQSBqaiAKOgAAIAQgBS0AACICSQ0ACwsgBSEBCyACIAZqIAo6ACEgAUEBaiEBDAALAAtBCCEEDAILQQohBAwBC0EAIQQLQgAhEkEAIQtBACEKQQAhCSMAQRBrIgckAAJAIARBAUcgBEEkTXFFBEBB1IoLQRw2AgAMAQsDQAJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQUgsiAhDGAg0ACwJAAkAgAkEraw4DAAEAAQtBf0EAIAJBLUYbIQkgAygCBCICIAMoAmhHBEAgAyACQQFqNgIEIAItAAAhAgwBCyADEFIhAgsCQAJAAkACQCAEQQBHIARBEEdxIAJBMEdyRQRAAn8gAygCBCICIAMoAmhHBEAgAyACQQFqNgIEIAItAAAMAQsgAxBSCyICQV9xQdgARgRAQRAhBAJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQUgsiAkGRiglqLQAAQRBJDQMgAykDcEIAWQRAIAMgAygCBEEBazYCBAsgA0IAEIYCDAYLIAQNAUEIIQQMAgsgBEEKIAQbIgQgAkGRiglqLQAASw0AIAMpA3BCAFkEQCADIAMoAgRBAWs2AgQLIANCABCGAkHUigtBHDYCAAwECyAEQQpHDQAgAkEwayILQQlNBEBBACECA0AgAkEKbCALaiICQZmz5swBSQJ/IAMoAgQiBSADKAJoRwRAIAMgBUEBajYCBCAFLQAADAELIAMQUgtBMGsiC0EJTXENAAsgAq0hEgsgC0EJSw0CIBJCCn4hFCALrSETA0ACQAJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQUgsiAkEwayIFQQlNIBMgFHwiEkKas+bMmbPmzBlUcUUEQCAFQQlNDQEMBQsgEkIKfiIUIAWtIhNCf4VYDQELC0EKIQQMAQsgBCAEQQFrcQRAIAJBkYoJai0AACIKIARJBEADQCAKIAQgC2xqIgtBx+PxOEkCfyADKAIEIgIgAygCaEcEQCADIAJBAWo2AgQgAi0AAAwBCyADEFILIgJBkYoJai0AACIKIARJcQ0ACyALrSESCyAEIApNDQEgBK0hFgNAIBIgFn4iFCAKrUL/AYMiE0J/hVYNAiATIBR8IRIgBAJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQUgsiAkGRiglqLQAAIgpNDQIgByAWQgAgEkIAEJgBIAcpAwhQDQALDAELIARBF2xBBXZBB3FBkYwJaiwAACEFIAJBkYoJai0AACILIARJBEADQCALIAogBXQiAnIhCiACQYCAgMAASQJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQUgsiAkGRiglqLQAAIgsgBElxDQALIAqtIRILIAQgC00NAEJ/IAWtIhSIIhMgElQNAANAIAutQv8BgyASIBSGhCESIAQCfyADKAIEIgIgAygCaEcEQCADIAJBAWo2AgQgAi0AAAwBCyADEFILIgJBkYoJai0AACILTQ0BIBIgE1gNAAsLIAQgAkGRiglqLQAATQ0AA0AgBAJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQUgtBkYoJai0AAEsNAAtB1IoLQcQANgIAQQAhCUJ/IRILIAMpA3BCAFkEQCADIAMoAgRBAWs2AgQLIAlBAXJFIBJCf1FxBEBB1IoLQcQANgIAQn4hEgwBCyASIAmsIhOFIBN9IRILIAdBEGokACADKQN4QgAgAygCBCADKAIsa6x9UQ0HIAhFIA1B8ABHckUEQCAIIBI+AgAMAwsgCCARIBIQuwwMAgsgCEUNASAGKQMQIRQgBikDCCETAkACQAJAIBEOAwABAgQLIAggEyAUELAFOAIADAMLIAggEyAUELQHOQMADAILIAggEzcDACAIIBQ3AwgMAQtBHyAHQQFqIA1B4wBHIgkbIQICQCARQQFGBEAgCCEHIA8EQCACQQJ0EEMiB0UNBwsgBkIANwKoAkEAIQQDQCAHIQACQANAAn8gAygCBCIFIAMoAmhHBEAgAyAFQQFqNgIEIAUtAAAMAQsgAxBSCyIFIAZqLQAhRQ0BIAYgBToAGyAGQRxqIAZBG2pBASAGQagCahCzBSIFQX5GDQAgBUF/RgRAQQAhDAwMCyAABEAgACAEQQJ0aiAGKAIcNgIAIARBAWohBAsgD0UgAiAER3INAAtBASEFQQAhDCAAIAJBAXRBAXIiAkECdBA2IgcNAQwLCwtBACEMIAAhAiAGQagCagR/IAYoAqgCBUEACw0IDAELIA8EQEEAIQQgAhBDIgdFDQYDQCAHIQADQAJ/IAMoAgQiBSADKAJoRwRAIAMgBUEBajYCBCAFLQAADAELIAMQUgsiBSAGai0AIUUEQEEAIQIgACEMDAQLIAAgBGogBToAACAEQQFqIgQgAkcNAAtBASEFIAAgAkEBdEEBciICEDYiBw0ACyAAIQxBACEADAkLQQAhBCAIBEADQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQUgsiACAGai0AIQRAIAQgCGogADoAACAEQQFqIQQMAQVBACECIAgiACEMDAMLAAsACwNAAn8gAygCBCIAIAMoAmhHBEAgAyAAQQFqNgIEIAAtAAAMAQsgAxBSCyAGai0AIQ0AC0EAIQBBACEMQQAhAgsgAygCBCEHIAMpA3BCAFkEQCADIAdBAWsiBzYCBAsgAykDeCAHIAMoAixrrHwiE1AgCSATIBRRckVyDQIgDwRAIAggADYCAAsCQCANQeMARg0AIAIEQCACIARBAnRqQQA2AgALIAxFBEBBACEMDAELIAQgDGpBADoAAAsgAiEACyADKAIEIAMoAixrrCADKQN4IBV8fCEVIA4gCEEAR2ohDgsgAUEBaiEEIAEtAAEiAQ0BDAgLCyACIQAMAQtBASEFQQAhDEEAIQAMAgsgDyEFDAILIA8hBQsgDkF/IA4bIQ4LIAVFDQEgDBAXIAAQFwwBC0F/IQ4LIAZBsAJqJAAgA0GQAWokACAOC0MAAkAgAEUNAAJAAkACQAJAIAFBAmoOBgABAgIEAwQLIAAgAjwAAA8LIAAgAj0BAA8LIAAgAj4CAA8LIAAgAjcDAAsL6A4BC38gABDNDCAAIAAQqgwgABDFCiAAEBohAwNAIAMEQCAAIAMQKSEBA0AgAQRAAkAgASgCECgCsAENACABEK8KDQAgASABQTBqIgUgASgCAEEDcUEDRhsoAigQrAEiAiABIAFBMGsiBiABKAIAQQNxQQJGGygCKBCsASIERg0AAkAgAigCECgC6AFFBEAgBCgCECgC6AFFDQELIAEgBiABKAIAQQNxIgJBAkYiBhsgASAFIAJBA0YiBRshCEEAIQJBACEEIAFBAEEwIAUbaigCKCgCECIFKALoASIJBEAgBSgC9AEgCSgCECgCiAIoAhAoAvQBayEECygCKCAIKAIoIAFBAEFQIAYbaigCKCgCECIFKALoASIGBEAgBigCECgCiAIoAhAoAvQBIAUoAvQBayECCyABKAIQKAKsASEGIAAQsgIiBSgCEEECOgCsARCsASEIEKwBIQcgBSAIRAAAAAAAAAAAQQAgBiACIARqaiICa7ggAkEASiIEGyABKAIQKAKcAUEKbBCZASAFIAcgAkEAIAQbuCABKAIQKAKcARCZASgCECABNgJ4KAIQIAE2AngMAQsgAiAEEIcDIgUEQCABIAUQgwMMAQsgAiAEIAEQ2gEaCyAAIAEQLCEBDAELCyAAIAMQGyEDDAELCyAAKAIQIgMoAuABIQECQAJAAkACQCADKALkASICRQRAIAENAQwECyABRQ0BCyABEKwBIQMgACgCECIBIAM2AuABIAEoAuQBIgJFDQELIAIQrAEhAyAAKAIQIgEgAzYC5AEgA0UNACADKAIQIgEtALUBQQVGIQoCQANAIAEoAsgBKAIAIgEEQCABQVBBACABKAIAQQNxQQJHG2ooAigiAhCsASACRw0CIAEQxAcgAygCECEBDAELCyAAKAIQIQEMAQtB56gDQa6+AUHNAkGOMxAAAAsgASgC4AEiA0UEQAwBCyADKAIQIgEtALUBQQNGIQsDQCABKALAASgCACIBRQ0BIAFBMEEAIAEoAgBBA3FBA0cbaigCKCICEKwBIAJGBEAgARDEByADKAIQIQEMAQsLQceoA0GuvgFB1AJBjjMQAAALIABBABCzCEEAIQIDQCAAKAIQIgEoAtwBIAJLBEAgASABKALYASACQQJ0aigCACIBNgLAASABIQMDQCADBEAgAygCECIDQQA2ArABIAMoArgBIQMMAQsLA0AgAQRAIAEQ3AwgASgCECgCuAEhAQwBCwsgAkEBaiECDAELCwJAIAAoAhAiASgC5AFFBEAgASgC4AFFDQELIAAQGiEBQQAhAwNAIAEEQAJAIAEQrAEgAUcNAAJAIAEoAhAiAigCzAENACAAKAIQKALkASIERSABIARGcg0AIAEgBEEAENoBIgMoAhAiAkEANgKcASACIAo2AqwBIAEoAhAhAgsgAigCxAENACAAKAIQKALgASICRSABIAJGcg0AIAIgAUEAENoBIgMoAhAiAkEANgKcASACIAs2AqwBCyAAIAEQGyEBDAELCyADRQ0AIABBABCzCAsgAEG67AIQIyIBBH8gABA1IAEQpgIQ1wwFQf////8HCyECQQAhAQNAIAEgACgCECIDKALcAUkEQCADIAMoAtgBIAFBAnRqKAIANgLAASAAIAMoArQBRSACEMIEGiABQQFqIQEMAQsLIAAQGiEBIAAoAhAhAwJAIAEEQCADQv////93NwPoAQNAIAEEQAJAIAEgARCsASICRgRAIAEoAhAiAygC9AEhAgwBCyABKAIQIgMgAygC9AEgAigCECgC9AFqIgI2AvQBCyACIAAoAhAiBCgC7AFKBEAgBCACNgLsAQsgAiAEKALoAUgEQCAEIAI2AugBCyADLQC1ASIDRSADQQZGckUEQCABENQOCyAAIAEQGyEBDAELCyAAEF4gAEcNAUGYgwsoAgBB5ABGBEBBASEBA0AgASAAKAIQIgMoArQBSg0DIAMoArgBIAFBAnRqKAIAEKUMIAFBAWohAQwACwALIAAQXhB3IQEDQCABRQ0CIAEoAhAtAJICQQdGBEAgACABEKEMCyABEHYhAQwACwALIANCADcD6AELQQAhAgN/IAAoAhAiASgC3AEgAk0EfyAAEBoFIAEgASgC2AEgAkECdGooAgAiATYCwAEDQCABBEAgASgCEEHAAWoQngwgASgCEEHIAWoQngwgASgCECIBQQA2ArABIAEoArgBIQEMAQsLIAJBAWohAgwBCwshAwNAAkAgAwRAIAAgAxApIQEDQCABRQ0CAkAgASgCECICKAKwASIERQ0AIAEgBCgCECgCeEYNACACQQA2ArABCyAAIAEQLCEBDAALAAsgABAaIQMDQCADBEAgACADECkhAQNAIAEEQAJAIAEoAhAoArABIgJFDQAgAigCECIEKAJ4IAFHDQAgBBAXIAIQFyABKAIQQQA2ArABCyAAIAEQLCEBDAELCyAAIAMQGyEDDAELCyAAKAIQKALYARAXIAAoAhBCADcD2AEPCyAAIAMQGyEDDAALAAsPACAAIAEgAkEAQQAQtgcLvAIAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACAkKCAkBAgMECgkKCggJBQYHCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxEDAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALbwEFfyAAKAIAIgMsAABBMGsiAUEJSwRAQQAPCwNAQX8hBCACQcyZs+YATQRAQX8gASACQQpsIgVqIAEgBUH/////B3NLGyEECyAAIANBAWoiBTYCACADLAABIAQhAiAFIQNBMGsiAUEKSQ0ACyACC6kBAQJ/IwBBEGsiBCQAAkACQAJAIAAgASACQQBBABBgIgUNACAAIAIgAUEAQQAQYCIFDQAgACABIAJBAEEBEGAiBUUNAQsgAygCECICKAKsASEBIAUoAhAiACAAKAKcASACKAKcAWo2ApwBIAAgACgCrAEiACABIAAgAUobNgKsAQwBCyABEB8hACAEIAIQHzYCBCAEIAA2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aiQAIA4pAyghFSAOKQMgIRYMAQtCACEVCyAAIBY3AwAgACAVNwMIIA5BMGokAAvDBgIEfwN+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEJwDRQ0AAn8gBEL///////8/gyEKAn8gBEIwiKdB//8BcSIHQf//AUcEQEEEIAcNARpBAkEDIAMgCoRQGwwCCyADIAqEUAsLRQ0AIAJCMIinIghB//8BcSIGQf//AUcNAQsgBUEQaiABIAIgAyAEEGggBSAFKQMQIgIgBSkDGCIBIAIgARC1DCAFKQMIIQIgBSkDACEEDAELIAEgAkL///////////8AgyIKIAMgBEL///////////8AgyIJEJwDQQBMBEAgASAKIAMgCRCcAwRAIAEhBAwCCyAFQfAAaiABIAJCAEIAEGggBSkDeCECIAUpA3AhBAwBCyAEQjCIp0H//wFxIQcgBgR+IAEFIAVB4ABqIAEgCkIAQoCAgICAgMC7wAAQaCAFKQNoIgpCMIinQfgAayEGIAUpA2ALIQQgB0UEQCAFQdAAaiADIAlCAEKAgICAgIDAu8AAEGggBSkDWCIJQjCIp0H4AGshByAFKQNQIQMLIAlC////////P4NCgICAgICAwACEIQsgCkL///////8/g0KAgICAgIDAAIQhCiAGIAdKBEADQAJ+IAogC30gAyAEVq19IglCAFkEQCAJIAQgA30iBIRQBEAgBUEgaiABIAJCAEIAEGggBSkDKCECIAUpAyAhBAwFCyAJQgGGIARCP4iEDAELIApCAYYgBEI/iIQLIQogBEIBhiEEIAZBAWsiBiAHSg0ACyAHIQYLAkAgCiALfSADIARWrX0iCUIAUwRAIAohCQwBCyAJIAQgA30iBIRCAFINACAFQTBqIAEgAkIAQgAQaCAFKQM4IQIgBSkDMCEEDAELIAlC////////P1gEQANAIARCP4ggBkEBayEGIARCAYYhBCAJQgGGhCIJQoCAgICAgMAAVA0ACwsgCEGAgAJxIQcgBkEATARAIAVBQGsgBCAJQv///////z+DIAZB+ABqIAdyrUIwhoRCAEKAgICAgIDAwz8QaCAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQaCAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABBoQf3/AiADIANB/f8CTxtB/v8BayEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgICAORBoIAQpA0ghAiAEKQNAIQEgA0H0gH5LBEAgA0GN/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORBoQeiBfSADIANB6IF9TRtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhBoIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs8ACAAIAE3AwAgACACQv///////z+DIAJCgICAgICAwP//AINCMIinIANCMIinQYCAAnFyrUIwhoQ3AwgLFwEBfyAAQQAgARDtAiICIABrIAEgAhsLmgMBAn8CQCAAEBpFDQAgABDHAQRAAkAgAQRAIAEoAhAoAswBIQIgACgCECIDIAE2AsgBIAMgAkEBajYCzAEgASAAEJgMIAEgABCbDAwBCyAAKAIQQQA2AswBCyAAIQELIAAQdyECA0AgAgRAIAIgARDLDCACEHYhAgwBCwsCQCAAEMcBRQ0AIAAQGiECA0AgAkUNASACKAIQIgMoAugBRQRAIAMgADYC6AELIAAgAhAbIQIMAAsACwJAIABBsPcAECMiAkUNACACLQAARQ0AAkACQCACQbvnABBGRQ0AIAJByqMBEEZFDQAgAkHFExBGRQ0BIAJBm/YAEEZFDQEgAkHXmwEQRg0CIAAQpwUaDAILIAAQpwUgAUUNASABKAIQKALQARCoByECIAEoAhAgAjYC0AEMAQsgABCnBSABRQ0AIAEoAhAoAtQBEKgHIQIgASgCECACNgLUAQsgABDHAUUNACAAKAIQIgEoAtABIgJFDQAgAiABKALUAUcNACAAEKcFIQEgACgCECIAIAE2AtQBIAAgATYC0AELC6UBAQV/QbiMCygCACIDBEBBtIwLKAIAIQUDQCAAIAUgAkECdGoiBCgCACIGRgRAIAQgATYCACAAEBcPCyAGIAFFckUEQCAEIAE2AgBBACEBCyACQQFqIgIgA0cNAAsLAkAg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AyAHECkhAQNAIAEEQCAHKAIQIgIoAsgBIAIoAswBIgJBAWogAkECahCNAiEFIAcoAhAiAiAFNgLIASACIAIoAswBIgJBAWo2AswBIAUgAkECdGogATYCACAHKAIQIgIoAsgBIAIoAswBQQJ0akEANgIAIAEgAUEwayIEIAEoAgBBA3FBAkYbKAIoKAIQIgIoAsABIAIoAsQBIgJBAWogAkECahCNAiECIAEgBCABKAIAQQNxQQJGGygCKCgCECACNgLAASABIAQgASgCAEEDcUECRhsoAigoAhAiBSAFKALEASICQQFqNgLEASAFKALAASACQQJ0aiABNgIAIAEgBCABKAIAQQNxQQJGGygCKCgCECICKALAASACKALEAUECdGpBADYCACADIAEQLCEBDAELCyADIAcQGyEHDAELCyADQQEgECAAQbmLARAjIgIEfyACEIcCBUF/CxCQDxogACgCEEL/////dzcD6AFBACEHAkAgCUECSA0AIAlBAWoiAhCuByEHQQEhAQNAIAEgAkYNASAHIAFBAnRqQf////8HNgIAIAFBAWohAQwACwALIAAQGiEIA0AgCARAIAgQ+QEhAiAIKAIQIgUgAigCECgCpAEoAhAiAigC9AEiBDYC9AEgBCAAKAIQIgEoAuwBSgRAIAEgBDYC7AELIAQgASgC6AFIBEAgASAENgLoAQsgBwRAIAUgAigCkAEiAjYCkAEgByACQQJ0aiICIAIoAgAiAiAEIAIgBEgbNgIACyAAIAgQGyEIDAELCwJAIAcEQCAAEBohAQNAIAEEQCABKAIQIgIgAigC9AEgByACKAKQAUECdGooAgBrNgL0ASAAIAEQGyEBDAEFQQEhBgwDCwALAAtBACEGIAAoAhAoAugBIgVBAEwNACAAEBohAQNAIAEEQCABKAIQIgIgAigC9AEgBWs2AvQBIAAgARAbIQEMAQsLIAAoAhAiAiACKALoASAFazYC6AEgAiACKALsASAFazYC7AELIAAgBhCwDCADEBohAQNAIAEEQCABKAIQKALAARAXIAEoAhAoAsgBEBcgAyABEBshAQwBCwsgABAaKAIQKAKAARAXIAAQGiEBA0AgAQRAIAEoAhBBADYCgAEgACABEBshAQwBCwsgBxAXIAMQtQELQfCCCy0AAARAIAogACgCECkD6AFCIIk3AwBBiPMI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AkBB5IkLKAIAIgFFBEBB5IkLQQQQQyIANgIAIABFDQEgAEEANgIAQbCKC0EBNgIAQeiJC0EANgIADwtB6IkLKAIAQbCKCygCACIAQQFrTwRAQeSJCyABIABBCGoiAkECdBA2IgE2AgAgAUUNAiABIABBAnRqIgBCADcCACAAQgA3AhggAEIANwIQIABCADcCCEGwigsgAjYCAAsPC0HhqQMQqgIAC0HhqQMQqgIAC0wBAX8DQCAAIgEoAhAoAngiAA0ACyABQTBBACABKAIAQQNxIgBBA0cbaigCKCgCECgC6AEgAUFQQQAgAEECRxtqKAIoKAIQKALoAUcLCwAgACABQQEQ0A0L1wECBX8BfiMAQSBrIgUkAAJAIAFFDQAgABDPBSEEIAUgATYCGAJAIAQgBUEIakEEIAQoAgARBAAiAwRAIAMgAykDCCIIQgF8Qv///////////wCDIAhCgICAgICAgICAf4OENwMIDAELIAEQOEEYaiEGAkAgAARAIAYQ4gEhAwwBCyAGEEMhAyAGRQ0AIANFDQILIANCgYCAgICAgICAf0IBIAIbNwMIIAMgA0EUaiABELYFNgIQIAQgA0EBIAQoAgARBAAaCyADKAIQIQcLIAVBIGokACAHC0ABAX8jAEEgayICJAAgABDPBSEAIAIgATYCGCAAIAJBCGpBBCAAKAIAEQQAIgAEfyAAKAIQBUEACyACQSBqJAALlgMBBn8CQCABQVBBACABKAIAQQNxIgRBAkcbaigCKCIFKAIQKALQASIGRQ0AIAFBMEEAIARBA0cbaiEHA0AgBiADQQJ0aigCACICRQ0BIANBAWohAyACQVBBACACKAIAQQNxQQJHG2ooAiggBygCKEcNAAsgASACEIMDAkAgAigCECIALQBwQQRHDQAgACgCeA0AIAAgATYCeAsgASABQTBqIgAgASgCAEEDcUEDRhsoAigoAhAiAigC4AEgAigC5AEiAkEBaiACQQJqQQQQfSECIAEgACABKAIAQQNxQQNGGygCKCgCECACNgLgASABIAAgASgCAEEDcUEDRhsoAigoAhAiAiACKALkASIDQQFqNgLkASACKALgASADQQJ0aiABNgIAIAEgACABKAIAQQNxQQNGGygCKCgCECIAKALgASAAKALkAUECdGpBADYCAA8LIAUgAUEwQQAgBEEDRxtqKAIoIAEQvQgiAigCECIDQQRBAyABKAIQIgEtAHBBBEYbOgBwIAMgASgCYDYCYCAAIAIQ9wULIwAgAiABKAIQRgRAIAEgAigCBCIAQQAgACACRxtBABDnBwsLXgEBfwJAIAJFDQAgACABIAIoAggQ1A1BCCEDAkACQAJAIAEoAgBBA3FBAWsOAwABAwILQRQhAwwBC0EgIQMLIAIoAgAgA2ooAgAiA0UNACAAIAEgAigCBCADEQUACws6ACAAKAIIIAFNBEBB8LMDQcS7AUGwCkHrIRAAAAsgACgCACAAKAIEIAFqIAAoAgxwQQJ0aiACNgIAC2IBAX8CQCADRQ0AIAAgASACIAMoAggQ1g1BBCEEAkACQAJAIAEoAgBBA3FBAWsOAwABAwILQRAhBAwBC0EcIQQLIAMoAgAgBGooAgAiBEUNACAAIAEgAygCBCACIAQRCAALCxMAIAAgASACIAAoAkwoAigQ1g0LZAEBfwJAIAJFDQAgACABIAIoAggQ2A0CfwJAAkACQCABKAIAQQNxQQFrDgMBAgQACyACKAIADAILIAIoAgBBDGoMAQsgAigCAEEYagsoAgAiA0UNACAAIAEgAigCBCADEQUACwuOBAIIfwF+IwBBMGsiAiQAAkACQCAABEAgAUUNASAAKAIEQeQAbCAAKAIABH9BASAAKAIIdAVBAAsiBUHGAGxJDQJBASAFBH8gACgCCEEBagVBCgsiA3RBBBAYIQQgAkIANwMYIAJCADcDKCACQgA3AyAgAiADNgIYIAJCADcDECACIAQ2AhBBACEDA0AgACgCACEEIAMgBUYEQCAEEBcgACACKQMoNwMYIAAgAikDIDcDECAAIAIpAxg3AwggACACKQMQNwMADAQLIAQgA0ECdGooAgAiBEEBakECTwRAIAJBEGogBBDZDQsgA0EBaiEDDAALAAtBotMBQdXAAUGsA0HAsgEQAAALQeXSAUHVwAFBrQNBwLIBEAAACyABKAIQKQMIIQoCQCAALQAMQQFGBEAgCiAAKQMQWg0BCyAAIAo3AxAgAEEBOgAMCyAAKQMYIApUBEAgACAKNwMYCwJAIAAoAgAiBARAQQEgACgCCHQiBSAAKAIEIgZLDQELQZeMAUHVwAFB2QNBwLIBEAAACyAFQQFrIQcgCqchCEEAIQMCQANAIAMgBUcEQCAEIAMgCGogB3FBAnRqIgkoAgBBAWpBAkkNAiADQQFqIQMMAQsLIAJB6AM2AgQgAkHVwAE2AgBBiPMIKAIAQa2+BCACEB0aEG4ACyAJIAE2AgAgACAGQQFqNgIEIAJBMGokAAu8AQECfwJAAkAgACgCMBChAyAAKAIsEJsBRgRAIAAoAjAQoQMhAyAAEDQgAEYEfyABQRxqBUEkEOIBCyICIAE2AhAgACgCMCACENkNIAAoAiwiASACQQEgASgCABEEABogACgCMBChAyAAKAIsEJsBRw0BIAAoAjAQoQMgA0EBakcNAg8LQYaiA0HVwAFB4QBBx6IBEAAAC0GGogNB1cABQegAQceiARAAAAtBkosDQdXAAUHpAEHHogEQAAALHQAgABA0LQAYQSBxBEAgACABENkFCyAAIAEQ6QcLFQADQCAAIAEQ2g0gACgCRCIADQALC28BAX8gAkKAgICAAVQEQEHAABDiASIDIAE3AwggAyADKAIAQQxxIAKnQQR0ckEBcjYCACADIAAQNDYCGCAAEDQtABhBIHEEQCADQezSCigCAEEQQQAQMRoLIAMPC0H4rANB1cABQcwAQb+iARAAAAuuAQEGfwJAAkAgAARAIAAtAAxBAUYEQCABIAApAxBUDQILIAEgACkDGFYNASABpyEEIAAoAgAiBQRAQQEgACgCCHQhAwsgA0EBayEGA0BBACEAIAIgA0YNAwJAAkAgBSACIARqIAZxQQJ0aigCACIHQQFqDgIBBQALIAciACgCECkDCCABUQ0ECyACQQFqIQIMAAsAC0Gi0wFB1cABQewDQeKnARAAAAtBACEACyAAC4cBAQF/IwBBIGsiAiQAQfjUCkHs1AopAgA3AgAgAiABNgIUIAEQOCEBIAJBADYCHCACIAE2AhggAkH01Ao2AhAgAkGc1Ao2AgwCfyAABEAgACACQRRqIAJBDGoQ6Q0MAQsgAkEUaiACQQxqEOsHC0Gw1QpBATYCAEGQigtBADYCACACQSBqJAALCQBBACAAEN8NC6ABAQN/IAEoAhAiBEEBNgKwAQJAIAQoAtQBRQ0AA0AgBCgC0AEgBUECdGooAgAiBkUNAQJAIAAgBhDRBUUNACAGQVBBACAGKAIAQQNxQQJHG2ooAigiBCgCECgCsAENACAAIAQgAiADEOENCyAFQQFqIQUgASgCECEEDAALAAsgAyAEKAL0AUcEQEHEPkHEuwFBwQpBpzwQAAALIAIgARB4CzcBA38DQCABQQNHBEAgACABQQJ0aiICKAIAIgMEQCADEJwBGiACQQA2AgALIAFBAWohAQwBCwsLZgECfyAAQQIgASABQQNGGyIDIAIQ5A0iAUUEQA8LIANBAnQiAyAAKAJMaigCLCIEIAFBAiAEKAIAEQQAGiAAKAJMIANqKAI4IgMgAUECIAMoAgARBAAaIAAgASgCGBCJARogARAXC0cBAX8jAEEgayIDJAAgACgCTEECIAEgAUEDRhtBAnRqKAI4IgAEfyADIAI3AxAgACADQQQgACgCABEEAAVBAAsgA0EgaiQACzsAIAIEQCAAQaCJCygCACgCAEECIAFBABAgIgAEfyAABUGgiQsoAgAoAgBBAiABQaOBBRAgCyACEGkLC28AQaCJCygCACgCACAAIAIgBEEBEGAiAgRAIAJBjxsgAyABIAJBMEEAIAIoAgBBA3EiBEEDRxtqKAIoIAJBUEEAIARBAkcbaigCKCIERyAAIARGcSIAGxDlDSACQcsbIAEgAyAAGxDlDSACEO0NCwtWAQJ/A0AgAARAIAAoAgwgACgCACICQYkCRgR/IAAoAgQQ5w0gACgCAAUgAgtBiwJGBEBBmIkLKAIAIAAoAggQiQEaC0GYiQsoAgAaIAAQFyEADAELCwsrAQF/A0AgACgCCCABTQRAIABCADcCBAUgACABENAFGiABQQFqIQEMAQsLC+k4ARV/QZiJCyAANgIAQdSJCyABNgIAQZyJCyACQZTUCiACGyIANgIAQYiJC0EANgIAQaiKCyABNgIAQaSKCyAANgIAQYSKC0EANgIAIwBBkBBrIggkAEGQiQtBfjYCAEGMiQtBADYCACAIQZAIakEBciEVQcgBIQ4gCEEgaiIGIREgCEHABmoiCyECAkACQAJAAkACQANAAkAgCyAKOgAAIAsgAiAOakEBa08EQCAOQY/OAEoNAUGQzgAgDkEBdCIAIABBkM4AThsiDkEFbEEDahBDIgBFDQEgACACIAsgAmsiBUEBaiIBEB4iACAOQQNqQQRtQQJ0aiARIAFBAnQiAxAeIREgCEHABmogAkcEQCACEBcLIAEgDk4NAyAAIAVqIQsgAyARakEEayEGIAAhAgsgCkEGRg0EAn8CQAJAAkAgCkHg8gdqLQAAIgdB7gFGDQBBkIkLKAIAIgNBfkYEQEGQiQsCfyMAQTBrIgkkAEHciQstAABFBEBB3IkLQQE6AABB4IkLKAIARQRAQeCJC0EBNgIAC0HUiQsoAgBFBEBB1IkLQYzzCCgCADYCAAtB2IkLKAIARQRAQdiJC0GQ8wgoAgA2AgALAkBB5IkLKAIAIgAEQCAAQeiJCygCAEECdGooAgANAQsQzQ1B1IkLKAIAEMwNIQBB5IkLKAIAQeiJCygCAEECdGogADYCAAsQ5AcLA0BB7IkLKAIAIgxB8IkLLQAAOgAAQeSJCygCAEHoiQsoAgBBAnRqKAIAKAIcQeCJCygCAGohACAMIQUDQCAFLQAAQfD4B2otAAAhASAAQQF0QfD6B2ovAQAEQEH4iQsgBTYCAEH0iQsgADYCAAsDQCABQf8BcSEBAkADQCAAIABBAXQiA0HQgAhqLgEAIAFqQQF0IgRBsPwHai4BAEYNASADQbCCCGouAQAiAEHdAEgNAAsgAUGQhAhqLQAAIQEMAQsLIAVBAWohBSAEQdCECGouAQAiAEEBdEHQgAhqLwEAQdsBRw0AIAAhAQNAIAFBAXRB8PoHai8BACIARQRAQfiJCygCACEFQfSJCygCAEEBdEHw+gdqLwEAIQALQfyJCyAMNgIAQYCKCyAFIAxrNgIAQfCJCyAFLQAAOgAAIAVBADoAAEHsiQsgBTYCACAAwSEAA0BBACEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAOKQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQnJycnJQsgBUHwiQstAAA6AABB9IkLKAIAIQFB+IkLKAIAIQUMLQtBgIoLKAIAIgBBAEoNJEF/IQEMJQtBgIoLKAIAIgBBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwLQbDVCkGw1QooAgBBAWo2AgAMLQtBgIoLKAIAIgBBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwLQeCJC0EDNgIADCwLQYCKCygCACIAQQBMDStB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcDCsLQYCKCygCACIAQQBMDSpB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcDCoLQYCKCygCACIAQQBKBEBB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcC0HgiQtBATYCAAwpC0GAigsoAgAiAEEATA0oQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAwoC0H8iQsoAgAhAEGAigsoAgAiAUEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAIAAgAWpBAWstAABBCkY2AhwLIABBAWoiAUGcmwFBBBDgASEFIAkgCUEsajYCCCAJIAlBJmo2AgQgCSAJQShqNgIAIAEgAEEFaiAFGyIAQYbuACAJEEkiAUEATA0nIAkoAigiBUEATA0nQbDVCiAFQQFrNgIAIAFBAUYNJyAAIAkoAixqIgUhAANAIAAtAAAiAUUgAUEiRnJFBEAgAEEBaiEADAELCyAAIAVGIAFBIkdyDScgAEEAOgAAQbiKCygCACEBIAAgBWsiAEG0igsoAgAiA0sEQCABIANBAWogAEEBahDLDSEBQbSKCyAANgIAQbiKCyABNgIAC0GQigsgASAFELYFNgIADCcLQYCKCygCACIAQQBMDSZB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcDCYLQYCKCygCACIAQQBMDSVB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcDCULQYCKCygCACIAQQBMDSRB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcDCQLQYMCIQFBgIoLKAIAIgBBAEwNGkHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwMGgtBhAIhAUGAigsoAgAiAEEATA0ZQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAwZC0GAigsoAgAiAEEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAtBhIoLKAIABEBBggIhAQwZC0GCAiEBQYSKC0GCAjYCAAwYC0GAigsoAgAiAEEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAtBhIoLKAIABEBBhQIhAQwYC0GFAiEBQYSKC0GFAjYCAAwXC0GHAiEBQYCKCygCACIAQQBMDRZB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcDBYLQYYCIQFBgIoLKAIAIgBBAEwNFUHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwMFQtBgIoLKAIAIgBBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwLQYgCQS1BhIoLKAIAQYUCRhshAQwUC0GAigsoAgAiAEEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAtBiAJBLUGEigsoAgBBggJGGyEBDBMLQfyJCygCACEAQYCKCygCACIBQQBKBEBB5IkLKAIAQeiJCygCAEECdGooAgAgACABakEBay0AAEEKRjYCHAtBlIkLQYiJCygCACAAEKkBNgIAQYsCIQEMEgtB/IkLKAIAIQBBgIoLKAIAIgFBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCwJAIAAgAWpBAWsiAy0AACIBQS5HIAHAQTBrQQlLcUUEQCABQS5HDQEgAEEuEMUBIgFFIAEgA0ZyDQELIAkgADYCECAJQbDVCigCADYCFCAJQZCKCygCACIAQbUYIAAbNgIYQfrnAyAJQRBqECdBgIoLKAIAIQAgBUHwiQstAAA6AABB/IkLIAw2AgBBgIoLIABBAWsiADYCAEHsiQsgACAMaiIANgIAQfCJCyAALQAAOgAAIABBADoAAEHsiQsgADYCAEH8iQsoAgAhAAtBlIkLQYiJCygCACAAEKkBNgIAQYsCIQEMEQtBgIoLKAIAIgBBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwLQeCJC0EFNgIAEMoNDBkLQYCKCygCACIAQQBKBEBB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcC0HgiQtBATYCAEGUiQtBiIkLKAIAQZSKCxCuBBCpATYCAEGMAiEBDA8LQYCKCygCACIAQQBKBEBB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcC0GpxgMQ9wIMFwtBgIoLKAIAIgBBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwLQbXIARD3AgwWC0GAigsoAgAiAEEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAtBsNUKQbDVCigCAEEBajYCAAwVC0GAigsoAgAiAEEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAtBoIEFEPcCQbDVCkGw1QooAgBBAWo2AgAMFAtB/IkLKAIAIQBBgIoLKAIAIgFBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyAAEPcCDBMLQYCKCygCACIAQQBKBEBB5IkLKAIAQeiJCygCAEECdGooAgBB/IkLKAIAIABqQQFrLQAAQQpGNgIcC0GIigtBATYCAEHgiQtBBzYCABDKDQwSC0GAigsoAgAiAEEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAQfyJCygCACAAakEBay0AAEEKRjYCHAtBiIoLQYiKCygCAEEBayIANgIAIAAEQEH8iQsoAgAQ9wIMEgtB4IkLQQE2AgBBlIkLQYiJCygCAEGUigsQrgQQzw02AgBBjAIhAQwIC0H8iQsoAgAhAEGAigsoAgAiAUEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAIAAgAWpBAWstAABBCkY2AhwLQYiKC0GIigsoAgBBAWo2AgAgABD3AgwQC0H8iQsoAgAhAEGAigsoAgAiAUEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAIAAgAWpBAWstAABBCkY2AhwLIAAQ9wJBsNUKQbDVCigCAEEBajYCAAwPC0H8iQsoAgAhAEGAigsoAgAiAUEASgRAQeSJCygCAEHoiQsoAgBBAnRqKAIAIAAgAWpBAWstAABBCkY2AhwLIAAQ9wIMDgtB/IkLKAIAIQBBgIoLKAIAIgFBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyAALAAAIQEMBAtB/IkLKAIAIQBBgIoLKAIAIgFBAEoEQEHkiQsoAgBB6IkLKAIAQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyAAIAFBAUHYiQsoAgAQShoMDAtB/IkLKAIAIRYgBUHwiQstAAA6AAACQEHkiQsoAgAiEkHoiQsoAgAiE0ECdGoiFCgCACIAKAIsBEBBjIoLKAIAIQQMAQtBjIoLIAAoAhAiBDYCACAAQdSJCygCADYCACAUKAIAIgBBATYCLAtB7IkLKAIAIg0gACgCBCIBIARqIgNNBEBB7IkLQfyJCygCACAWQX9zaiAFaiIFNgIAEOMHIgFBAXRB8PoHai8BAARAQfiJCyAFNgIAQfSJCyABNgIACyABIQADQCAAIABBAXQiA0HQgAhqLgEAQQFqIgRBAXQiDUGw/AdqLgEARwRAIANBsIIIai4BACEADAELC0H8iQsoAgAhDCAERQ0KIA1B0IQIai4BACIAQdwARg0KQeyJCyAFQQFqIgU2AgAMCwsgDSADQQFqSw0DQfyJCygCACEDAkAgACgCKEUEQCANIANrQQFHDQEMCQtBACEAIANBf3MgDWoiD0EAIA9BAEobIRcgAyEEA0AgACAXRwRAIAEgBC0AADoAACAAQQFqIQAgAUEBaiEBIARBAWohBAwBCwsCfwJAIBQoAgAiACgCLEECRgRAQYyKC0EANgIAIABBADYCEAwBCyADIA1rIQQDQCAAKAIMIgEgBGoiA0EATARAIAAoAhRFBEAgAEEANgIEDAwLIAAoAgQhAyAAIAFBACABa0EDdmsgAUEBdCABQQBMGyIBNgIMIAAgAyABQQJqEDYiADYCBCAARQ0LQeyJCyAAIA0gA2tqIg02AgAgFCgCACEADAELC0GMigtBqIoLKAIAIAAoAgQgD2pBgMAAIAMgA0GAwABPG0GkigsoAgAoAgQoAgARBAAiBDYCACAEQQBIDQdB5IkLKAIAIhJB6IkLKAIAIhNBAnRqKAIAIgAgBDYCEEEAIAQNARoLIA9FBEBB1IkLKAIAIQACQEHkiQsoAgAiAQRAIAFB6IkLKAIAQQJ0aigCACIBDQELEM0NQdSJCygCABDMDSEBQeSJCygCAEHoiQsoAgBBAnRqIAE2AgALIAEgABDJDRDkB0HkiQsoAgAiEkHoiQsoAgAiE0ECdGooAgAhAEGMigsoAgAhBEEBDAELIABBAjYCLEEAIQRBAgshDSASIBNBAnRqIQECQCAEIA9qIgMgACgCDEwEQCAAKAIEIQAMAQsgACgCBCADIARBAXVqIgQQNiEAIAEoAgAgADYCBCABKAIAIg8oAgQiAEUNByAPIARBAms2AgwLQYyKCyADNgIAIAAgA2pBADoAACABKAIAKAIEIANqQQA6AAFB/IkLIAEoAgAoAgQiAzYCAAJAAkAgDUEBaw4CCgEAC0HsiQsgAyAWQX9zaiAFaiIFNgIAEOMHIQBB/IkLKAIAIQwMDAtB5IkLKAIAQeiJCygCAEECdGooAgAoAgQhAUGMigsoAgAhBAtB7IkLIAEgBGoiBTYCABDjByEBQfyJCygCACEMDAkLQf2mARCqAgALQX8hAUHkiQsoAgBB6IkLKAIAQQJ0aigCAEH8iQsoAgAgAGpBAWstAABBCkY2AhwLIAlBMGokACABDAkLQcKsARCqAgALQdewARCqAgALQYepAxCqAgALQbEVEKoCAAtB7IkLIAM2AgBB4IkLKAIAQQFrQQJtQSVqIQAMAAsACwALAAsACyIDNgIACyAHwAJ/IANBAEwEQEGQiQtBADYCAEEADAELQQIgA0GMAksNABogA0Gw8wdqLAAACyIBaiIAQTtLDQAgASAAQcD1B2osAABHDQAgAEGA9gdqLAAAIQpCASAArYZCgKDIhICAkIAGg1AEQCAGQZSJCygCADYCBEGQiQtBfjYCACAQQQFrIgBBACAAIBBNGyEQIAZBBGoMBAtBACAKayEFDAELIApBwPYHaiwAACIFRQ0BCyAGQQEgBUGQ9wdqLAAAIgxrQQJ0aigCACEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBUECaw46AAEVFQITEgUSEgUVFRUVFRUVFQMVFQQEBRIVFQYHCAkKCwwNDhIVFRUVFRUPFRARExISFRUVExMTFBULEPINEPENDBQLQZiJCygCAEUNExDyDRDxDUGYiQsoAgAQtQFBmIkLQQA2AgBBiIkLQQA2AgAMEwsgBigCACEAQZiJCygCACIHRQRAIAZBBGsoAgAhAyAGQQhrKAIAIQRBpIkLQQA2AgAgCCADQQBHQQpBCCAEG3I6AJAIIBVBADoAAiAVQQA7AAAgCCAIKAKQCDYCDEGYiQsgACAIQQxqQZyJCygCABDjASIHNgIAC0GIiQsgBzYCAEGgiQtBoIkLKAIAIAcQ8A02AgBBACAAEIkBGgwSCyAGQQRrKAIABEBBAhDvB0EAIQNBoIkLKAIAQRhqIQcDQCAHKAIAIgAEQAJAIAAoAgBBiwJHDQAgACgCBBDuB0UNACAAKAIIIQMLIABBDGohBwwBCwtBoIkLKAIAQRBqIQoDQCAKKAIAIgAoAgwEQCAAQQxqIQogAEEEaiEHIAAoAgBBhgJGBEAgACgCBCIEEBohBwNAIAdFDQNBoIkLKAIAKAIAIAdBABB7QQAgACgCDCADEO4NIAQgBxAbIQcMAAsACwNAIAcoAgAiBEUNAiAEKAIEIAQoAgggACgCDCADEO4NIARBDGohBwwACwALC0GgiQsoAgBBCGoQrQJBoIkLKAIAQRBqEK0CQaCJCygCAEEYahCtAkGgiQsoAgBBADYCBAwSC0EBEO8HQaCJCygCAEEIaiEHA0AgBygCACIABEAgACgCBBDtDSAAQQxqIQcMAQsLQaCJCygCAEEIahCtAkGgiQsoAgBBGGoQrQJBoIkLKAIAQRBqEK0CQaCJCygCAEEANgIEDBELQQAhAAJAQaCJCygCACIDKAIIIgQEQEGJAiAEQQAQ0wUhAEGgiQsoAgAiA0IANwIIDAELIAMoAgQiBARAQYYCIARBABDTBSEAQaCJCygCACEDCyADQQA2AgQLIAAEQCADQRBqIAAQ7AcLDBALQQEhAQwPCyAGKAIAQQBBABDtBwwOCyAGQQhrKAIAIAYoAgBBABDtBwwNCyAGQRBrKAIAIAZBCGsoAgAgBigCABDtBwwMCyAGQQhrKAIAIAZBBGsoAgAQ7A0MCwtBggJBABDsDQwKC0GCAiEBDAkLQYMCIQEMCAtBhAIhAQwHCyAGQQRrKAIAIQEMBgsgBigCACIARQ0LQYsCIAZBCGsoAgAgABDTBSEAQaCJCygCAEEYaiAAEOwHDAULIAYoAgAhAEGkiQtBpIkLKAIAIgNBAWo2AgAgA0GHJ04EQCAIQZDOADYCEEGL3gAgCEEQahAyC0GgiQtBoIkLKAIAIgMgAygCACAAQQEQjwEQ8A02AgBBmIkLKAIAIAAQiQEaDAQLQaCJCygCACIDKAIAIQBBpIkLQaSJCygCAEEBazYCAEGgiQsgAxDrDSIDNgIAIAMgADYCBCAADQNBhocBQe4RQbYEQYGHARAAAAtBACEBDAILIAYoAgAhAQwBCyAIQZAIaiEAIAZBCGsoAgAiAxA4IAYoAgAiBBA4akEBaiIBQYEITwR/QQEgARBEBSAACyADELYFIgAQOCAAaiAEELYFGkGYiQsoAgAgABCpASEBQZiJCygCACADEIkBGkGYiQsoAgAgBBCJARogACAIQZAIakYNACAAEBcLIAYgDEECdGsiAyABNgIEAn8CQCALIAxrIgssAAAiASAFQdD3B2osAAAiBUH59wdqLAAAaiIAQTtLDQAgAEHA9QdqLQAAIAFB/wFxRw0AIABBgPYHagwBCyAFQan4B2oLLAAAIQogA0EEagwBCwJAAkACQCAQDgQAAgIBAgtBjIkLQYyJCygCAEEBajYCAEGNORDGDQwBC0GQiQsoAgAiAEEATARAIAANAQwHC0GQiQtBfjYCAAsDQCAHQf8BcUERRwRAIAIgC0YNByAGQQRrIQYgC0EBayILLAAAQeDyB2otAAAhBwwBCwsgBkGUiQsoAgA2AgRBASEKQQMhECAGQQRqCyEGIAtBAWohCwwBCwtBwKsBEMYNDAILIAAhAgwCC0Gv0wFB7hFBnAJBpTcQAAALIAIgCEHABmpGDQELIAIQFwsgCEGQEGokAEGIiQsoAgAiAAR/IAAFQeSJCygCACIABH8gAEHoiQsoAgBBAnRqKAIABUEACxDHDUGIiQsoAgALCwoAQYmsAUEAECcLFQEBfyAAKAIgQZiJCygCABogABAXC5MCAQR/IwBBEGsiAiQAIAEEQBDqDQtBoIkLKAIAQRhqIQEDQCABKAIAIgEEQCABKAIIRQRAEOoNCyABQQxqIQEMAQsLIABBggJrIgVBA0kEQCAFEO8HQaCJCygCACIDQRhqIQEDQCABKAIAIgEEQAJAIAEoAgBBiwJGDQAgAygCACEAAkAgASgCBCIELQAVBEAgAEGYiQsoAgBGDQELIAAgBSAEKAIIIAEoAggQICEEQZiJCygCACEAQaCJCygCACEDCyADKAIAIABHDQAgBEEBOgAWCyABQQxqIQEMAQsLIANBGGoQrQIgAkEQaiQADwsgAkHdAjYCBCACQe4RNgIAQYjzCCgCAEGtvgQgAhAdGhBuAAumAQECf0GgiQsoAgBBGGohAQJAAkACQANAIAEoAgAiAQRAAkAgASgCACICQYoCRgRAIAEoAgQiAkUNASAAIAIgASgCCBBpDAELIAAtAABBAnFFDQMgAkGLAkcNBCABKAIEEO4HRQ0FCyABQQxqIQEMAQsLDwtBktkBQe4RQb0CQfUrEAAAC0GQ7wBB7hFBvgJB9SsQAAALQYecA0HuEUG/AkH1KxAAAAuLAQEBfyACQQRqIQQCQCACKAIAQYYCRwRAA0AgBCgCACICRQ0CIAAgAUGgiQsoAgAoAgAgAigCBEEAEHsgAigCCCADEOYNIAJBDGohBAwACwALIAIoAgQiAhAaIQQDQCAERQ0BIAAgAUGgiQsoAgAoAgAgBEEAEHtBACADEOYNIAIgBBAbIQQMAAsACwumBAEJfyAAKAIQKALEASABKAIQIgIoAvQBQQZ0aigCOCEHIAJBAToAtAEgAkEBNgKwASAAEF4hAwJAAkACQAJAAkAgASgCECIEKALQASICRQ0AIAMoAhAoArQBQQBMIQhBACEDA0AgAiADQQJ0aigCACICRQ0BAkAgCEUEQCAAIAJBMEEAIAIoAgBBA3FBA0cbaigCKBCqAUUNASAAIAJBUEEAIAIoAgBBA3FBAkcbaigCKBCqAUUNAQsgAigCECgCnAFFDQAgAiACQTBrIgkgAigCAEEDcSIFQQJGGygCKCgCECIKKAKsAiEEIAcoAgAhBiAKLQC0AQRAIAQgBk8NBCACQTBBACAFQQNHG2ooAigoAhAoAqwCIgUgBygCBCIGTw0FIAcoAgggBCAGbGogBWpBAToAACADQQFrIQMgAhC3CCACKAIQLQBwQQRGDQEgACACENINDAELIAQgBk8NBSACQTBBACAFQQNHG2ooAigoAhAoAqwCIgUgBygCBCIGTw0GIAcoAgggBSAGbGogBGpBAToAACACIAkgAigCAEEDcUECRhsoAigiAigCECgCsAENACAAIAIQ7w0LIANBAWohAyABKAIQIgQoAtABIQIMAAsACyAEQQA6ALQBDwtB6ChBxLsBQcsIQdX9ABAAAAtBry9BxLsBQcwIQdX9ABAAAAtB6ChBxLsBQdQIQdX9ABAAAAtBry9BxLsBQdUIQdX9ABAAAAsiAQJ/QZiJCygCACEDQSQQ4gEiAiABNgIAIAIgADYCICACC5EDAQd/QfyJCygCACEEQeyJCygCACICQfCJCy0AADoAAAJAAkBB5IkLKAIAQeiJCygCAEECdGoiBigCACIBKAIEIgBBAmogAksEQCAAQYyKCygCAGpBAmohAyAAIAEoAgxqQQJqIQUDQCAAIANJBEAgBUEBayIFIANBAWsiAy0AADoAACAGKAIAIgEoAgQhAAwBCwtBjIoLIAEoAgwiBjYCACABIAY2AhAgAiAFIANrIgFqIgIgAEECakkNASABIARqIQQLIAJBAWsiAEHAADoAAEH8iQsgBDYCACAALQAAIQJB7IkLIAA2AgBB8IkLIAI6AAAMAQtB3RUQqgIAC0EAIQFBiIkLQZiJCygCACIDNgIAIAMoAkxBLGohBANAIAFBA0cEQAJAIAQgAUECdGoiBSgCACIARQ0AIABBAEGAASAAKAIAEQQAIQIDQCACIgBFDQEgBSgCACICIABBCCACKAIAEQQAIQIgACgCGC0AAEElRw0AIAMgASAAKQMQEOMNDAALAAsgAUEBaiEBDAELCwtMAQF/QaCJCygCACEAA0AgAARAIABBCGoQrQJBoIkLKAIAQRhqEK0CQaCJCygCAEEQahCtAkGgiQtBoIkLKAIAEOsNIgA2AgAMAQsLCw0AIAAtABhBf3NBAXELHQEBfyAAIAEoAgAQ4QEgABCbASABIAAQ8gI2AgAL8wQCCX8BfiMAQSBrIgUkACAAQYDVCkHY1QooAgAQiAI2AiwgAEEBQSAQGDYCMCAAQfTSCkGM0wogABA0IABGG0HY1QooAgAQiAI2AjQgAEGk0wpBvNMKIAAQNCAARhtB2NUKKAIAEIgCNgI4IABB1NMKQdjVCigCABCIAiIBNgI8AkACQCABQTAQNiIBBEAgAUIANwAgIAFCADcAKCAAIAE2AjwgAEHs0wpB2NUKKAIAEIgCNgJAAkAgACgCRCIGBEAgBigCTCIBIAEpAxBCAXwiCjcDECAKQoCAgIABWg0DIAAgACgCAEEPcSAKp0EEdHI2AgAgBigCPCIBIABBASABKAIAEQQAGgJAIAYoAjwiASgCKCIHIAEoAiwiAkcEQCABKAIkIQMgASgCICEEDAELIAdBAXRBASAHGyICQf////8DSwRAQcQAIQAMBgsgASgCICACQQJ0EDYiBEUEQEEwIQAMBgsgBCABKAIsIghBAnRqQQAgAiAIa0ECdBAwGiAIIAEoAigiByABKAIkIgNqSQRAIANBAnQhCSAEIAIgCCADayIIayIDQQJ0aiAEIAlqIAhBAnQQVBogASADNgIkCyABIAI2AiwgASAENgIgCyAEIAMgB2ogAnBBAnRqIAA2AgAgASAHQQFqNgIoIAYoAkAiASAAQQEgASgCABEEABogBi0AGEEgcUUNAQsgABD8DQsgACAAEOkHIAVBIGokACAADwsgBUEwNgIAQYjzCCgCAEGA6gMgBRAdGhAmAAtB+KwDQde+AUHXAEGR7QIQAAALIAUgABB6NgIQQYjzCCgCAEGSgQQgBUEQahAdGhAmAAslAQF/IAAQGiECA0AgAgRAIAAgAiABEPAHIAAgAhAbIQIMAQsLC3sBAn8gAUFQQQAgASgCAEEDcUEDRiIDG2oiAigCKCEEIAAgAUEAQTAgAxtqIgEoAigQ5AEhAyAAKAI0IANBIGogAhDWBSAAKAI4IANBGGogAhDWBSAAIAQQ5AEhAiAAKAI0IAJBHGogARDWBSAAKAI4IAJBFGogARDWBQshAQF/IAAQ5gEiAQRAIAAgARD6DSAAQezSCigCABDZAQsL0AEBB38gASgCECgCyAEhAgNAIAIoAgAiAQRAIAFBUEEAIAEoAgBBA3FBAkcbaigCKCgCECgC+AEhBSAAKAIQKALIASEEIAEoAhAiBi4BmgEhBwNAIAQoAgAiAQRAAkACQCAFIAFBUEEAIAEoAgBBA3FBAkcbaigCKCgCECgC+AEiCEgEQCABKAIQIQEMAQsgBSAIRw0BIAEoAhAiASsDOCAGKwM4ZEUNAQsgAS4BmgEgB2wgA2ohAwsgBEEEaiEEDAELCyACQQRqIQIMAQsLIAMLSwEDfyAAECshAyAAENgFIgBBACAAQQBKGyEEA0AgASgCDCEAIAIgBEcEQCADIAAgAkECdGooAgAQiQEaIAJBAWohAgwBCwsgABAXC+MBAQV/IAFB7NIKKAIAQRBBABAxIQMCQCAAIAEoAgBBA3EQowMiAgRAAkAgAygCCCIERQRAIAMgABA0IAEoAgBBA3EQowM2AgggARDYBSEAIAMgARArIQVBBCAAIABBBEwbQQJ0EOIBNgIMIAJBAEGAASACKAIAEQQAIQADQCAARQ0CIAEQKyAAKAIMEKkBIQQgAygCDCAAKAIQQQJ0aiAENgIAIAIgAEEIIAIoAgARBAAhAAwACwALIAIgBEcNAgsPC0G8JUG7vAFBvwFBgCwQAAALQa8lQbu8AUHLAUGALBAAAAuPAgECfyAAIAAtABhBIHI6ABggAEHc0gpBFEEAEDEiAUHE0gpB2NUKKAIAEIgCNgIIIAFBxNIKQdjVCigCABCIAjYCDCABQcTSCkHY1QooAgAQiAI2AhACQAJAIAAoAkQiAgRAIAEgAkEAELACIgJGDQIgASgCCCACKAIIEPECGiABKAIMIAIoAgwQ8QIaIAEoAhAgAigCEBDxAhoMAQtBhIkLKAIAIgJFIAAgAkZyDQAgAkEAELACIgIoAgggASgCCCAAQQEQ9gcgAigCDCABKAIMIABBAhD2ByACKAIQIAEoAhAgAEEAEPYHCyAAKAJEIgEgACABGyAAEPsNDwtBzbIBQbu8AUH3AEGgJRAAAAvQAQEHfyABKAIQKALAASECA0AgAigCACIBBEAgAUEwQQAgASgCAEEDcUEDRxtqKAIoKAIQKAL4ASEFIAAoAhAoAsABIQQgASgCECIGLgGaASEHA0AgBCgCACIBBEACQAJAIAUgAUEwQQAgASgCAEEDcUEDRxtqKAIoKAIQKAL4ASIISARAIAEoAhAhAQwBCyAFIAhHDQEgASgCECIBKwMQIAYrAxBkRQ0BCyABLgGaASAHbCADaiEDCyAEQQRqIQQMAQsLIAJBBGohAgwBCwsgAws7AQF/IwBBIGsiAyQAIAAgARCjAyIABH8gAyACNgIQIAAgA0EIakEEIAAoAgARBAAFQQALIANBIGokAAtYAQJ/IAUEQCAAIAEgAyACEQUACyAAEHchBgNAIAYEQCAGIAEgBBEAACIHBEAgBiAHIAIgAyAEIAUQ/w0LIAYQdiEGDAELCyAFRQRAIAAgASADIAIRBQALCxMAQfyICygCABpB/IgLQQA2AgALIgECfxDbBSEAEOUDIQEgAEHsiAtqIABB7IgLKAIAaiABGwvgAgEIfyAAKAIAIQUgAUEATCEJQQAhAQNAIAUgAUECdGooAgAiBARAIARBKGohCCABIQACQCAJRQRAA0AgBSAAQQFqIgBBAnRqKAIAIgJFDQIgAigCECIGKwMQIAQoAhAiBysDEKEgAkFQQQAgAigCAEEDcUECRxtqKAIoKAIQKAL4ASAIQVBBACAEKAIAQQNxQQJHG2ooAgAoAhAoAvgBa7eiRAAAAAAAAAAAY0UNACAGLgGaASAHLgGaAWwgA2ohAwwACwALA0AgBSAAQQFqIgBBAnRqKAIAIgJFDQEgAigCECIGKwM4IAQoAhAiBysDOKEgAkEwQQAgAigCAEEDcUEDRxtqKAIoKAIQKAL4ASAIQTBBACAEKAIAQQNxQQNHG2ooAgAoAhAoAvgBa7eiRAAAAAAAAAAAY0UNACAGLgGaASAHLgGaAWwgA2ohAwwACwALIAFBAWohAQwBCwsgAwsVAQF/EOUDIQBBD0H0iAsoAgAgABsLEwBB6IgLKAIAGkHoiAtBADYCAAsTAEHkiAsoAgAaQeSIC0EBNgIAC/oIAwp/C3wBfiMAQfAAayIDJAAgACgCFCEMIAAoAhAhCiAAKAIIIQcgACgCBCIIQQJqQQgQGCEJAkAgAUHSbkcNACADIAIpAwg3A2AgAyACKQMANwNYA0AgBCIBIAAoAgBOBEBBqXchAQwCCyADIAAoAgggACgCDCIFIAFBAnRqKAIAIgZBBHRqNgJoIAUgAUEBaiIEQQJ0aigCACEFIAMgAykDYDcDSCADIAUgBms2AmwgAyADKQNYNwNAIAMgAykCaDcDUCADQdAAaiADQUBrELQERQ0ACwtBACEEIAgiBSEGIAFBAE4EQCAAKAIMIAFBAnRqIgAoAgQhBiAAKAIAIQULIAVBACAFQQBKGyELIAIrAwAhEyACKwMIIRQDQAJ8AkACQCAEIAtGBEAgBSAGIAUgBkobIQAgBSEEDAELIAMgByAEQQR0aiIAKQMINwNgIAMgACkDADcDWCAUIAMrA2AiDaEiECAHIAogBEECdCIBaigCAEEEdGoiACsAACADKwNYIg+hIhWiIAArAAggDaEiFiATIA+hIhGioSIORC1DHOviNho/ZCAORC1DHOviNhq/Y0VyIQAgFCAHIAEgDGooAgBBBHRqIgErAAgiDqEgDyABKwAAIhKhoiANIA6hIBMgEqGioSIXRC1DHOviNho/ZCAXRC1DHOviNhq/Y0VyIQECQCAOIA2hIBWiIBYgEiAPoaKhRC1DHOviNho/ZARAIAAgAXENAQwDCyAAIAFyRQ0CCyADIAIpAwg3AzggAikDACEYIAMgAykDYDcDKCADIBg3AzAgAyADKQNYNwMgIANBMGogA0EgaiAFIAYgCCAHIAoQ+gdFDQEgESARoiAQIBCioJ8MAgsDQCAAIARGRQRAIAkgBEEDdGpCADcDACAEQQFqIQQMAQsLIAYgCCAGIAhKGyELIAYhBANAIAkgBEEDdGoCfAJAIAQgC0cEQCADIAcgBEEEdGoiACkDCDcDYCADIAApAwA3A1ggFCADKwNgIg2hIhAgByAKIARBAnQiAWooAgBBBHRqIgArAAAgAysDWCIPoSIVoiAAKwAIIA2hIhYgEyAPoSIRoqEiDkQtQxzr4jYaP2QgDkQtQxzr4jYav2NFciEAIBQgByABIAxqKAIAQQR0aiIBKwAIIg6hIA8gASsAACISoaIgDSAOoSATIBKhoqEiF0QtQxzr4jYaP2QgF0QtQxzr4jYav2NFciEBAkAgDiANoSAVoiAWIBIgD6GioUQtQxzr4jYaP2QEQCAAIAFxDQEMAwsgACABckUNAgsgAyACKQMINwMYIAIpAwAhGCADIAMpA2A3AwggAyAYNwMQIAMgAykDWDcDACADQRBqIAMgBSAGIAggByAKEPoHRQ0BIBEgEaIgECAQoqCfDAILIAkgCEEDdGoiAEIANwMAIABCADcDCCADQfAAaiQAIAkPC0QAAAAAAAAAAAs5AwAgBEEBaiEEDAALAAtEAAAAAAAAAAALIQ0gCSAEQQN0aiANOQMAIARBAWohBAwACwAL7wEBA38CQCACRQRAA0AgAyABKAIQIgIoAswBTw0CIAIoAsgBIANBAnRqKAIAIgIgAkEwayIEIAIoAgBBA3FBAkYbKAIoKAIQIgUoArABRQRAIAVBATYCsAEgACACIAQgAigCAEEDcUECRhsoAigQgAgLIANBAWohAwwACwALA0AgAyABKAIQIgIoAsQBTw0BIAIoAsABIANBAnRqKAIAIgIgAkEwaiIEIAIoAgBBA3FBA0YbKAIoKAIQIgUoArABRQRAIAVBATYCsAEgACACIAQgAigCAEEDcUEDRhsoAigQgAgLIANBAWohAwwACwALC/EBAgd8An8gAiABQQR0aiIBKwAIIgUgAiAAQQR0aiIMKwAIIgehIAIgAyAAQQJ0Ig1qKAIAQQR0aiIAKwAAIAwrAAAiCKEiCqIgACsACCAHoSILIAErAAAiCSAIoaKhIgZELUMc6+I2Gj9kIAZELUMc6+I2Gr9jRXIhACAFIAIgBCANaigCAEEEdGoiASsACCIFoSAIIAErAAAiBqGiIAcgBaEgCSAGoaKhIglELUMc6+I2Gj9kIAlELUMc6+I2Gr9jRXIhASAFIAehIAqiIAsgBiAIoaKhRC1DHOviNho/ZAR/IAAgAXEFIAAgAXILQQFxC/MCAQd/IwBBEGsiBiQAAn8CQAJAQcyICygCACIHQdCICygCACIDRwRAQciICygCACEFQcSICygCACEEDAELIAdBAXRBASAHGyIDQebMmTNLDQFBxIgLKAIAIANBKGwQNiIERQ0BIARB0IgLKAIAIghBKGxqQQAgAyAIa0EobBAwGiAIQcyICygCACIHQciICygCACIFakkEQCAFQShsIQkgBCADIAggBWsiCGsiBUEobGogBCAJaiAIQShsEFQaQciICyAFNgIAC0HQiAsgAzYCAEHEiAsgBDYCAAsgBCAFIAdqIANwQShsaiIDQX82AiQgAyAANgIgIAMgAjYCHCADQX82AhggAyACNgIUIAMgATYCECADQX82AgwgAyABNgIIIAMgADYCBCADQQA2AgBBzIgLIAdBAWo2AgBBAAwBCyAGQb8wNgIIIAZB4QI2AgQgBkG6ugE2AgBBiPMIKAIAQaaBBCAGEB0aQX8LIAZBEGokAAvbAgEGfyMAQeAAayICJAAgACgCCCEEAkADQCAEIgMgACgCECIFSQRAIAAoAgAiByADQQJ0aigCACgCACEFIAEoAgAhBiACIAcgA0EBaiIEQQJ0aigCACgCACIHKQMINwMoIAIgBykDADcDICACIAUpAwg3AxggAiAFKQMANwMQIAIgBikDCDcDCCACIAYpAwA3AwAgAkEgaiACQRBqIAIQ5gNBAUcNAQwCCwsgACgCDCEEIAUhAwN/IAMgBE8NASAAKAIAIARBAnRqIgYoAgAoAgAhAyABKAIAIQUgAiAGQQRrKAIAKAIAIgYpAwg3A1ggAiAGKQMANwNQIAIgAykDCDcDSCACIAMpAwA3A0AgAiAFKQMINwM4IAIgBSkDADcDMCACQdAAaiACQUBrIAJBMGoQ5gNBAkYEfyAEBSAEQQFrIQQgACgCECEDDAELCyEDCyACQeAAaiQAIAMLrQEBBX8jAEGAAWsiAiQAIAJB2ABqIAAQ+gICf0EAIAIoAlgNABogABCzBEEBNgIAQQEgACABRg0AGiACQRRqIQQgAkE8aiEFA0AgA0EDRwRAIAJBMGogABD6AgJAIAUgA0EMbCIGaigCAEF/Rg0AIAJBCGogABD6AiAEIAZqKAIAIAEQiw5FDQBBAQwDCyADQQFqIQMMAQsLIAAQswRBADYCAEEACyACQYABaiQACxIAIAAgAUH0JEEWQdv/ABDSAQvKAQEHfyMAQYABayICJAAgAkE4aiEHIAJB3ABqIQgDQCADQQNGRQRAIAJB2ABqIAAQ+gIgCCADQQxsIgVqKAIAKAIAIQYgAkEwaiAAEPoCIAUgB2ooAgAoAgAhBSACIAYpAwg3AyggAiAGKQMANwMgIAIgBSkDCDcDGCACIAUpAwA3AxAgAiABKQMINwMIIAIgASkDADcDACADQQFqIQMgBCACQSBqIAJBEGogAhDmA0ECR2ohBAwBCwsgAkGAAWokACAERSAEQQNGcgvDIgIQfw98IwBBoANrIgUkAAJAAkACQCAAKAIEIgNBCBBFIg4gA0VyRQRAIAVB5i82AgggBUHgADYCBCAFQbq6ATYCAEGI8wgoAgBBpoEEIAUQHRoMAQsgA0EEEEUiCiADRXJFBEAgBUGKLTYCGCAFQeUANgIUIAVBuroBNgIQQYjzCCgCAEGmgQQgBUEQahAdGiAOEBcMAQtBACEDA0BBzIgLKAIAIANLBEAgBUH4AmogAxD6AiADQQFqIQMMAQsLQQAhA0HIiAtCADcCACAFQQA2AogDIAUgACgCBCIGQQF0Igc2AvwCIAUgB0EEEEUiCzYC+AICQAJAIAtFBEAgBUHPLzYCKCAFQe8ANgIkIAVBuroBNgIgQYjzCCgCAEGmgQQgBUEgahAdGgwBCyAFIAZB/////wdxIhA2AoADQX8hByAFIBBBAWsiDzYChAMgACgCACEERAAAAAAAAPB/IRMDQCADIAZHBEAgBCADQQR0aisDACIVIBMgEyAVZCIIGyETIAMgByAIGyEHIANBAWohAwwBCwsgBSAEIAdBBHRqIgMpAwg3A+ACIAUgAykDADcD2AIgBSAEIAcgBiAHG0EEdGpBEGsiAykDCDcD8AIgBSADKQMANwPoAkEAIQggBCAHQQFqQQAgByAGQQFrIglHG0EEdGohAwJAAkACQCAFKwPYAiITIAUrA+gCYg0AIBMgAysDAGINACADKwMIIAUrA+ACZA0BCyAFIAUpA/ACNwPoASAFIAUpA+ACNwPYASAFIAUpA9gCNwPQASAFIAUpA+gCNwPgASAFIAMpAwg3A8gBIAUgAykDADcDwAEgBUHgAWogBUHQAWogBUHAAWoQ5gMgACgCBCEGQQFGBEBBACEDA0AgAyAGRg0DIAAoAgAhBAJAAkAgA0UNACAEIANBBHRqIgcrAwAgB0EQaysDAGINACAHKwMIIAdBCGsrAwBhDQELIA4gCEEDdGoiByAEIANBBHRqNgIAIAcgDiAIIAZwQQN0ajYCBCAKIAhBAnRqIAc2AgAgCEEBaiEICyADQQFqIQMMAAsACyAGQQFrIQkLIAYhBwNAIAchAwNAIAZFIANFcg0CIAAoAgAhBAJAIANBAWsiByAJTw0AIAQgB0EEdGoiDSsDACAEIANBBHRqIgwrAwBiDQAgByEDIA0rAwggDCsDCGENAQsLIA4gCEEDdGoiAyAEIAdBBHRqNgIAIAMgDiAIIAZwQQN0ajYCBCAKIAhBAnRqIAM2AgAgCEEBaiEIDAALAAsjAEEQayINJAACfwJAAkACQANAAkBBACEAIAhBBEkNAANAIAAiAyAIRg0DIANBAWohACADQQJqIAhwIQlBACEMIwBBwAJrIgQkACAEQbACaiAKIAMgCGpBAWsgCHAiBhC7ASAEQaACaiAKIAMQuwEgBEGQAmogCiAAIAhwIgcQuwECQAJAIAQrA7gCIAQrA6gCIhOhIAQrA5ACIAQrA6ACIhWhoiAEKwOYAiAToSAEKwOwAiAVoaKhRAAAAAAAAAAAYwRAIARBgAJqIAogAxC7ASAEQfABaiAKIAkQuwEgBEHgAWogCiAGELsBIAQrA4gCIAQrA/gBIhOhIAQrA+ABIAQrA/ABIhWhoiAEKwPoASAToSAEKwOAAiAVoaKhRAAAAAAAAAAAY0UNAiAEQdABaiAKIAkQuwEgBEHAAWogCiADELsBIARBsAFqIAogBxC7ASAEKwPYASAEKwPIASIToSAEKwOwASAEKwPAASIVoaIgBCsDuAEgE6EgBCsD0AEgFaGioUQAAAAAAAAAAGNFDQIMAQsgBEGgAWogCiADELsBIARBkAFqIAogCRC7ASAEQYABaiAKIAcQuwEgBCsDqAEgBCsDmAEiE6EgBCsDgAEgBCsDkAEiFaGiIAQrA4gBIBOhIAQrA6ABIBWhoqFEAAAAAAAAAABkRQ0BC0EAIQYDQCAGIgcgCEYiDA0BIAZBAWoiBkEAIAYgCEcbIhEgCUYgByAJRnIgAyAHRiADIBFGcnINACAEQfAAaiAKIAMQuwEgBEHgAGogCiAJELsBIARB0ABqIAogBxC7ASAEQUBrIAogERC7ASAEIAQpA3g3AzggBCAEKQNoNwMoIAQgBCkDWDcDGCAEIAQpA0g3AwggBCAEKQNwNwMwIAQgBCkDYDcDICAEIAQpA1A3AxAgBCAEKQNANwMAAn8gBCsDMCIXIAQrAyAiE6EiFJohGgJAAkACQAJAIAQrAzgiGyAEKwMoIhWhIhwgBCsDECIdIBOhoiAEKwMYIh4gFaEgFKKhIhhEAAAAAAAAAABkIBhEAAAAAAAAAABjciIHRQ0AIBwgBCsDACIUIBOhoiAEKwMIIhYgFaEgGqKgIhlEAAAAAAAAAABkIBlEAAAAAAAAAABjckUNACAeIBahIiAgFyAUoaIgGyAWoSAdIBShIiGioSIfRAAAAAAAAAAAZCAfRAAAAAAAAAAAY3JFDQAgICATIBShoiAVIBahICGaoqAiFEQAAAAAAAAAAGQgFEQAAAAAAAAAAGNyDQELIBUgG6EhFCATIBehIRYCQCAHDQAgHSAXoSIYIBaiIBQgHiAboSIZoqBEAAAAAAAAAABmRQ0AIBggGKIgGSAZoqAgFiAWoiAUIBSioGUNAwsCQCAcIAQrAwAiHCAToaIgBCsDCCIYIBWhIBqioCIaRAAAAAAAAAAAZCAaRAAAAAAAAAAAY3INACAcIBehIhogFqIgFCAYIBuhIhmioEQAAAAAAAAAAGZFDQAgGiAaoiAZIBmioCAWIBaiIBQgFKKgZQ0DCyAYIB6hIRQgHCAdoSEWAkAgHiAYoSIaIBcgHKGiIBsgGKEgHSAcoSIZoqEiH0QAAAAAAAAAAGQgH0QAAAAAAAAAAGNyDQAgFyAdoSIXIBaiIBsgHqEiGyAUoqBEAAAAAAAAAABmRQ0AIBcgF6IgGyAboqAgFiAWoiAUIBSioGUNAwtBACEHIBogEyAcoaIgFSAYoSAZmqKgIhdEAAAAAAAAAABkIBdEAAAAAAAAAABjcg0BIBMgHaEiEyAWoiAVIB6hIhUgFKKgRAAAAAAAAAAAZkUNASATIBOiIBUgFaKgIBYgFqIgFCAUoqBlDAMLIBhEAAAAAAAAAABjIBlEAAAAAAAAAABjcyAfRAAAAAAAAAAAYyAURAAAAAAAAAAAY3NxIQcLIAcMAQtBAQtFDQALCyAEQcACaiQAIAxFDQALIAogA0ECdGooAgAgCiAAQQAgACAIRxsiAEECdGooAgAgCiAJQQJ0aigCABCJDg0EIAAgCEEBayIIIAAgCEsbIQMDQCAAIANGDQIgCiAAQQJ0aiAKIABBAWoiAEECdGooAgA2AgAMAAsACwsgCigCACAKKAIEIAooAggQiQ4NAgwBCyANQfSwATYCCCANQc4CNgIEIA1BuroBNgIAQYjzCCgCAEGmgQQgDRAdGgtBAAwBC0F/CyEAIA1BEGokAAJAIABFBEBBACEEQcyICygCACEDQQAhAANAIAAgA08EQANAIAMgBE0NBCAEIAEQjQ5BzIgLKAIAIQMNBCAEQQFqIQQMAAsACyAAQQFqIgghBgNAQQAhCSADIAZNBEAgCCEADAILA0BBACEDAkAgCUEDRwRAA0AgA0EDRg0CIAAQswQhByAGELMEIQwCQAJAAkAgByAJQQxsaiINKAIEKAIAIhEgDCADQQxsaiIMKAIEKAIAIhJHBEAgDCgCCCgCACEHDAELIAwoAggoAgAiByANKAIIKAIARg0BCyAHIBFHDQEgDSgCCCgCACASRw0BCyANIAY2AgwgDCAANgIMCyADQQFqIQMMAAsACyAGQQFqIQZBzIgLKAIAIQMMAgsgCUEBaiEJDAALAAsACwALIAsQFwwBCwJAIAMgBEcEQCABQRBqIQdBACEGA0AgAyAGTQ0CIAYgBxCNDkHMiAsoAgAhAw0CIAZBAWohBgwACwALIAVBzZ4BNgI4IAVBtwE2AjQgBUG6ugE2AjBBiPMIKAIAQaaBBCAFQTBqEB0aDAQLIAMgBkYEQCAFQaeeATYCSCAFQcIBNgJEIAVBuroBNgJAQYjzCCgCAEGmgQQgBUFAaxAdGgwECyAEIAYQiw5FBEAgBUGF/AA2ArgBIAVBzAE2ArQBIAVBuroBNgKwAUEAIQNBiPMIKAIAQaaBBCAFQbABahAdGiALEBcgChAXIA4QF0ECEPwHDQMgAkECNgIEQdSICygCACIAIAEpAwA3AwAgACABKQMINwMIIAAgBykDADcDECAAIAcpAwg3AxggAiAANgIADAULIAQgBkYEQCALEBcgChAXIA4QF0ECEPwHDQMgAkECNgIEQQAhA0HUiAsoAgAiACABKQMANwMAIAAgASkDCDcDCCAAIAcpAwA3AxAgACAHKQMINwMYIAIgADYCAAwFCyAFQQA2AswCIAUgBzYCyAIgBUEANgLEAiAFIAE2AsACIBBFBEAgBSALKAIANgLEAgsgBUHAAmoiAUEIciEAIAUgDzYCgAMgCyAPQQJ0aiABNgIAIAUgDzYCiAMgDyIBIQggBCEGA0AgBkF/RwRAIAYQswQiCUECNgIAIAlBDGohDUEAIQMCfwJAA0AgA0EDRwRAIA0gA0EMbCIMaigCACIQQX9HBEAgBUGYAmogEBD6AiAFKAKYAkEBRg0DCyADQQFqIQMMAQsLIAsgAUECdGoiDCgCACgCACEDIAsgCEECdGooAgAoAgAhCSAFIAcpAwg3A3ggBSAHKQMANwNwIAUgCSkDCDcDaCAFIAkpAwA3A2AgBSADKQMINwNYIAUgAykDADcDUCAFQfAAaiAFQeAAaiAFQdAAahDmAyEDIAAgDCgCACIJIANBAUYiDBshAyAJIAAgDBsMAQsgCUEEaiIQIAxqIgkoAgQoAgAhDCAQIANBAWpBA3BBDGxqKAIEKAIAIQMgBSAJKAIAKAIAIhApAwg3A6gBIAUgECkDADcDoAEgBSADKQMINwOYASAFIAMpAwA3A5ABIAUgDCkDCDcDiAEgBSAMKQMANwOAASAFQaABaiAFQZABaiAFQYABahDmA0EBRgRAIAkoAgAhAyAJKAIEDAELIAkoAgQhAyAJKAIACyEJAkAgBCAGRgRAIAEgCE8EQCAJIAsgAUECdGooAgA2AgQLIAUgAUEBaiIBNgKEAyALIAFBAnRqIAk2AgAgASAITwRAIAMgCyAIQQJ0aigCADYCBAsgBSAIQQFrIgg2AoADIAsgCEECdGogAzYCAAwBCyAFAn8CQCALIAhBAnRqKAIAIANGDQAgCyABQQJ0aigCACADRg0AIAVB+AJqIAMQig4iBiABTQRAIAMgCyAGQQJ0aigCADYCBAsgBSAGQQFrIgg2AoADIAsgCEECdGogAzYCACAGIA8gBiAPSxsMAQsgCCAFQfgCaiAJEIoOIgNNBEAgCSALIANBAnRqKAIANgIECyAFIANBAWoiATYChAMgCyABQQJ0aiAJNgIAIAMgDyADIA9JGwsiDzYCiAMLQQAhAwNAIANBA0YEQEF/IQYMAwsCQCANIANBDGxqIgYoAgAiCUF/Rg0AIAVB8AFqIAkQ+gIgBSgC8AFBAUcNACAGKAIAIQYMAwsgA0EBaiEDDAALAAsLIAsQF0EAIQYgACEDA0AgAwRAIAZBAWohBiADKAIEIQMMAQsLIAYQ/AdFDQELIAoQFyAOEBcMAQsgAiAGNgIEQdSICygCACEBA0AgAARAIAEgBkEBayIGQQR0aiIDIAAoAgAiBykDADcDACADIAcpAwg3AwggACgCBCEADAELCyACIAE2AgAgChAXIA4QF0EAIQMMAgtBfiEDDAELIAsQFyAKEBcgDhAXQX8hAwsgBUGgA2okACADC1gCAXwCf0EBIAEgAUEBTBshBEEBIQEDQCABIARGRQRAIAIgACABQQR0aiIDKwMAIANBEGsrAwChIAMrAwggA0EIaysDAKEQTqAhAiABQQFqIQEMAQsLIAILPAEBfyAAKAIIEBcgACgCDBAXIAAoAhAQFyAAKAIUEBcgACgCGCIBBEAgASgCABAXIAAoAhgQFwsgABAXC4QIAg5/AXxBHBBDIgUEQCABQQAgAUEAShshCwNAIAMgC0cEQCAAIANBAnRqKAIAKAIEIAJqIQIgA0EBaiEDDAELCwJAIAJBAEgNACAFIAJBEBBFIgw2AggCQCABQQBOBEAgBSABQQFqQQQQRSIKNgIMIAUgAkEEEEUiBzYCECACQQQQRSEJIAUgAjYCBCAFIAk2AhQgBSABNgIAAkAgCkUNACACRQ0CIAxFIAdFcg0AIAkNAgsgCRAXIAcQFyAKEBcgDBAXDAILQeCUA0GIugFBL0HB6AAQAAALA0ACQAJAIAsgDUcEQCAKIA1BAnQiAWogBjYCACAAIAFqKAIAIg4oAgQiCEEASA0BIAZBAWshD0EAIQIgCCEBIAYhAwNAIAEgAkwNAyAMIANBBHRqIgEgDigCACACQQR0aiIEKQMANwMAIAEgBCkDCDcDCCAHIANBAnQiAWogA0EBaiIENgIAIAEgCWogA0EBazYCACACQQFqIQIgDigCBCEBIAQhAwwACwALIAogC0ECdGogBjYCAEEAIQQjAEEgayIDJAACQCAFKAIEIgBBAE4EQCAAQQJqIghBBBAYIQYgACAAbEEIEBghASAAQQN0IQIDQCAAIARGBEADQCAAIAhHBEAgBiAAQQJ0akEANgIAIABBAWohAAwBCwsgBSAGNgIYIAUoAgQiAkEAIAJBAEobIQsgBSgCFCEJIAUoAhAhCiAFKAIIIQRBACEBA0AgASALRwRAIAYgAUECdCIAaigCACIMIAAgCWooAgAiAEEDdGogBCABQQR0aiIIKwAAIAQgAEEEdGoiBysAAKEiECAQoiAIKwAIIAcrAAihIhAgEKKgnyIQOQMAIAFBA3QiDSAGIABBAnRqKAIAaiAQOQMAIAFBAmsgAUEBayIHIAAgB0YbIQADQCAAQQBOBEACQCABIAAgBCAKIAkQiA5FDQAgACABIAQgCiAJEIgORQ0AIAMgCCkDCDcDGCADIAgpAwA3AxAgAyAEIABBBHRqIgcpAwg3AwggAyAHKQMANwMAIANBEGogAyACIAIgAiAEIAoQ+gdFDQAgDCAAQQN0aiAIKwAAIAcrAAChIhAgEKIgCCsACCAHKwAIoSIQIBCioJ8iEDkDACAGIABBAnRqKAIAIA1qIBA5AwALIABBAWshAAwBCwsgAUEBaiEBDAELCyADQSBqJAAMAwUgBiAEQQJ0aiABNgIAIARBAWohBCABIAJqIQEMAQsACwALQcCWA0G4uQFBHEGsEBAAAAsgBQ8LQZzKAUGIugFBxwBBwegAEAAACyAHIAggD2oiAUECdGogBjYCACAJIAZBAnRqIAE2AgAgDUEBaiENIAMhBgwACwALIAUQFwtBAAvaAwEKfyACQcgAbCELIANBAUchDANAIAEiAkEATCENA0ACQCANDQAgBCgCBCIDIAJByABsaiIGQRhqIgogAyALakEYahCCCEUNACAGKAIwIQECQCAMRQRAIAFBAEoEQCADIAFByABsaigCBCAARg0CCyAGKAI0IgFBAEwNBCADIAFByABsaigCBCAARw0EDAELIAFBAEoEQCADIAFByABsaigCACAARg0BCyAGKAI0IgFBAEwNAyADIAFByABsaigCACAARw0DCyAGKAIAIAMgAUHIAGwiDmoiCCgCAEcNAiAGKAIEIAgoAgRHDQIgBigCOCEHAkAgBSgCBCIJIAkgCCgCOCIPQShsaigCHEEobGoiCSgCICAPRgRAIAkgBzYCIAwBCyAJIAc2AiQLIAYgCCgCMCIHNgIwAkAgB0EATA0AIAEgAyAHQcgAbGoiBygCKEYEQCAHIAI2AigMAQsgBygCLCABRw0AIAcgAjYCLAsgBiAIKAI0IgY2AjQCQCAGQQBMDQAgASADIAZByABsaiIDKAIoRgRAIAMgAjYCKAwBCyADKAIsIAFHDQAgAyACNgIsCyAKIAgpAxg3AwAgCiAIKQMgNwMIIAQoAgQgDmpBAjYCRAwBCwsLC74UAhN/A3wjAEHQAGsiCiQAIApBGGogASAAQThsaiIRQTgQHhogCkEoaiEHIAECfwJAIAorAzAiGCAKKwMgIhdESK+8mvLXej6gZA0AIBggF0RIr7ya8td6vqBjRQRAIAorAyggCisDGGQNAQsgASAAQThsakEwagwBCyAHIBEpAwA3AwAgByARKQMINwMIIAogESkDGDcDICAKIBEpAxA3AxggCiAKKQI8QiCJNwI8QQEhCyARQSxqCygCAEE4bGotACAhDiAKQRhqIAcgCigCPCABIAMQ3AUhBQJAIA4EQCAFIQ4MAQsgAhCkAyEOIAIoAgQiCCAOQcgAbCIMaiIEQQE2AkQgBCAIIAVByABsIgRqQcgAEB4aIAIoAgQiCCAEaiIEIAorAyAiFzkDICAIIAxqIgYgFzkDECAEIAorAxgiFzkDGCAGIBc5AwggBEEANgI0IAQgDjYCMCAGQQA2AiwgBiAFNgIoAkAgBigCMCIMQQBMDQAgBSAIIAxByABsaiIEKAIoRgRAIAQgDjYCKAsgCCAMQcgAbGoiBCgCLCAFRw0AIAQgDjYCLAsCQCAGKAI0IgRBAEwNACAFIAggBEHIAGxqIgQoAihGBEAgBCAONgIoCyAEKAIsIAVHDQAgBCAONgIsCyADEOcBIQ0gAxDnASEJIAVByABsIgwgAigCBGooAjgiBkEobCIEIAMoAgRqIghBAjYCACAIIAopAxg3AwggCCAKKQMgNwMQIAMoAgQiCCAEaiIEIAk2AiAgBCANNgIkIAQgADYCBCAIIA1BKGxqIgQgBjYCHCAEIAU2AhggBEEDNgIAIAggCUEobGoiBSAGNgIcIAUgDjYCGCAFQQM2AgAgAigCBCIFIAxqIA02AjggBSAOQcgAbGogCTYCOAsgAUEwQSwgCxsiCCABIABBOGxqaigCAEE4bGotACAhEyAHIApBGGogCigCQCABIAMQ3AUhDyATRQRAIAIQpAMhDSACKAIEIgwgDUHIAGwiBGoiBUEBNgJEIAUgDCAPQcgAbCIFakHIABAeGiACKAIEIgwgBGoiBiAKKwMwIhc5AxAgBSAMaiIFIBc5AyAgBiAKKwMoIhc5AwggBUEANgI0IAUgDTYCMCAFIBc5AxggBkEANgIsIAYgDzYCKAJAIAYoAjAiBEEATA0AIA8gDCAEQcgAbGoiBSgCKEYEQCAFIA02AigLIAwgBEHIAGxqIgUoAiwgD0cNACAFIA02AiwLAkAgBigCNCIFQQBMDQAgDyAMIAVByABsaiIFKAIoRgRAIAUgDTYCKAsgBSgCLCAPRw0AIAUgDTYCLAsgAxDnASEJIAMQ5wEhCyAPQcgAbCIEIAIoAgRqKAI4IgZBKGwiBSADKAIEaiIMQQI2AgAgDCAHKQMANwMIIAwgBykDCDcDECADKAIEIgwgBWoiBSALNgIgIAUgCTYCJCAFIAA2AgQgDCAJQShsaiIFIAY2AhwgBSAPNgIYIAVBAzYCACAMIAtBKGxqIgUgBjYCHCAFIA02AhggBUEDNgIAIAIoAgQiBSAEaiAJNgI4IAUgDUHIAGxqIAs2AjgLIAggEWohDUEAIQwgDiEFA0ACfwJAAkACQAJAIAVBAEwNACACKAIEIgggBUHIAGwiEmoiBEEYaiAIIA9ByABsIhRqQRhqEIIIRQ0AIAQoAjghCyADEOcBIRYgAxDnASEHIAMoAgQiCCALQShsaiIEIAc2AiQgBCAWNgIgIAQgADYCBCAEQQE2AgAgCCAWQShsaiIEIAs2AhwgBCAFNgIYIARBAzYCACAIIAdBKGwiBGpBAzYCACACEKQDIQggAygCBCAEaiIEIAg2AhggAigCBCIJIAhByABsIhBqIgZBATYCRCAEIAs2AhwCQCAJIBJqIgsrAyAgCSAUaiIEKwMgoZlESK+8mvLXej5lRQ0AIAsrAxggBCsDGKGZREivvJry13o+ZUUNACAIIQwLIAggFSAFIA5GGyEVIAYgC0HIABAeGiACKAIEIgQgEmoiBiAWNgI4IAQgEGogBzYCOCAGKAI0IQQgBigCMEEASg0BIARBAEoNAkH9hARBE0EBQYjzCCgCABBKGgsgACAOIA9BASACIAMQkg4gACAVIAxBAiACIAMQkg4gEUEBOgAgIApB0ABqJAAPCyAEQQBKDQEgCkEYaiIJIAEgAiAFIAgQgQgCQCACKAIEIgcgEmoiBisDICAHIBRqIgQrAyChmURIr7ya8td6PmVFDQAgBisDGCAEKwMYoZlESK+8mvLXej5lRSATRXINAAJAIA0oAgAiBEEATA0AIAQgASAJELYERQ0AIAcgBigCMEHIAGxqIAU2AiggByAQakJ/NwMwIAYoAjAMBAsgByAHIBBqKAIwQcgAbGogCDYCLCAGQn83AzBBfwwDCwJAIAcgBigCMCIEQcgAbGoiCSgCKCILQQBMDQAgCSgCLCIGQQBMDQAgCSAGIAsgBSALRiIGGzYCPCAJQQFBAiAGGzYCQAsgCSAINgIsIAkgBTYCKCAEDAILIApBGGoiCSABIAIgBSAIEIEIAkAgAigCBCIHIBJqIgYrAyAgByAUaiIEKwMgoZlESK+8mvLXej5lRQ0AIAYrAxggBCsDGKGZREivvJry13o+ZUUgE0VyDQACQCANKAIAIgRBAEwNACAEIAEgCRC2BEUNACAHIAYoAjRByABsaiAFNgIoIAcgEGpCfzcDMCAGKAI0DAMLIAcgByAQaigCNEHIAGxqIAg2AiwgBkJ/NwMwQX8MAgsCQCAHIAYoAjQiBEHIAGxqIgkoAigiC0EATA0AIAkoAiwiBkEATA0AIAkgBiALIAUgC0YiBhs2AjwgCUEBQQIgBhs2AkALIAkgCDYCLCAJIAU2AiggBAwBCyAGQRhqIQQCfyAGKwMgIhkgCisDICIYoSIXmURIr7ya8td6PmUEQCAEKwMAIAorAxhkDAELIAogGTkDECAKIBcgCisDMCAYoaMgCisDKCAKKwMYIhehoiAXoDkDCCAKQQhqIAQQgghBAXMLIQsgCkEYaiABIAIgBSAIEIEIAn8CQCACKAIEIgcgEmoiCSsDICAHIBRqIgQrAyChmURIr7ya8td6PmVFDQAgCSsDGCAEKwMYoZlESK+8mvLXej5lRSATRXINACAHIAkoAjBByABsaiIEQX82AiwgBCAFNgIoIAcgCSgCNCIEQcgAbGoiBUF/NgIsIAUgCDYCKCAHIBBqIgUgBDYCMCAJQX82AjQgBUF/NgI0IAlBNGoMAQsgByAJKAIwQcgAbGoiBiAFNgIoIAlBNGohBCALBEAgBiAINgIsIAcgBCgCAEHIAGxqIgZBfzYCLCAGIAg2AiggBEF/NgIAIAlBMGoMAQsgBkF/NgIsIAcgBCgCACILQcgAbGoiBiAINgIsIAYgBTYCKCAHIBBqIgVBfzYCNCAFIAs2AjAgBAsoAgALIQUgByASaiAANgIEIAcgEGogADYCAAwACwALlAQBBn8jAEHwAGsiAiQAIAEoAhAoAvQBIgNBBnQiBCAAKAIQKALEAWoiBSgCACEGAkACQCAFKAIIQQBMBEAgABAfIQAgARAfIQEgAiAGNgIQIAIgAzYCDCACIAE2AgggAiAANgIEIAJBpAk2AgBB3N0EIAIQMgwBCyAFKAIEIAZBAnRqIAE2AgAgASgCECAGNgL4ASAAKAIQIgUoAsQBIARqIgAgACgCACIEQQFqNgIAIAQgACgCCE4NASADQQZ0IgRBsNoKKAIAKAIQKALEAWooAggiByAGSARAIAEQHyEAIAEoAhAoAvgBIQEgAkGw2gooAgAoAhAoAsQBIARqKAIINgIwIAJBuAk2AiAgAiAANgIkIAIgATYCKCACIAM2AixBq8oEIAJBIGoQMgwBCyAFKALsASEEIAUoAugBIgUgA0wgAyAETHFFBEAgAiAENgJMIAIgBTYCSCACIAM2AkQgAkG9CTYCQEHkywQgAkFAaxAyDAELIAAoAgQgBkECdGogACgCDCAHQQJ0ak0NACABEB8hAEGw2gooAgAoAhAoAsQBIANBBnRqKAIIIQYgASgCECgC+AEhASACIAM2AmAgAiADNgJkIAIgBjYCaCACQcMJNgJQIAIgAzYCVCACIAA2AlggAiABNgJcQfTKBCACQdAAahAyCyACQfAAaiQADwtBje0AQcS7AUGrCUGU9wAQAAALwAsDFn8CfAF+IwBBEGsiCSQAIAlBATYCCCAJQSgQ6gM2AgwgAEEBNgIAIABByAAQ6gM2AgQgAygCBCENIAlBCGoQ5wEiDEEobCIIIAkoAgxqIgVBAjYCACACIA1BOGxqIgRBEGohBiAFAn8gBCAEKwMIIhogBCsDGCIbREivvJry13o+oGQNABogBiAaIBuhmURIr7ya8td6PmVFDQAaIAQgBiAEKwMAIAQrAxBESK+8mvLXej6gZBsLIgcpAwA3AwggBSAHKQMINwMQIAlBCGoiBRDnASEOIAkoAgwiByAIaiAONgIkIAcgDkEobGoiByAMNgIcIAdBAzYCACAFEOcBIQUgCCAJKAIMIgdqIAU2AiAgByAFQShsIgtqQQI2AgAgByALaiIIAn8gBCAEKwMIIhogBCsDGCIbREivvJry13q+oGMNABogBiAaIBuhmURIr7ya8td6PmVFDQAaIAQgBiAEKwMAIAQrAxBjGwsiBikDADcDCCAGKQMIIRwgCCAMNgIcIAggHDcDECAJQQhqIggQ5wEhEyAJKAIMIgYgC2ogEzYCICAGIBNBKGwiGGoiBiAFNgIcIAZBAzYCACAIEOcBIQYgCSgCDCIKIAtqIAY2AiQgCiAGQShsIgdqIgogBTYCHCAKIA02AgQgCkEBNgIAIAgQ5wEhFCAJKAIMIgUgB2ogFDYCICAFIBRBKGwiGWoiBSAGNgIcIAVBAzYCACAIEOcBIRUgCSgCDCIKIAdqIBU2AiQgCiAVQShsaiIXIAY2AhwgF0EDNgIAIAAQpAMhDyAAEKQDIRAgABCkAyERIAAQpAMhEiAAKAIEIhYgD0HIAGxqIgUgCiAMQShsaiIHKQMINwMIIAUgBykDEDcDECAWIBBByABsaiIGIAcpAxA3AxAgBiAHKQMINwMIIBYgEkHIAGxqIgggBykDEDcDICAIIAcpAwg3AxggBSAKIAtqIgspAxA3AyAgBSALKQMINwMYIAYgCykDEDcDICAGIAspAwg3AxggFiARQcgAbGoiByALKQMQNwMQIAcgCykDCDcDCCAIQoCAgICAgIDowQA3AwggCEKAgICAgICA6MEANwMQIAdCgICAgICAgOhBNwMYIAdCgICAgICAgOhBNwMgIAUgDTYCBCAGIA02AgAgBSASNgIoIAYgEjYCKCAFIBE2AjAgBiARNgIwIAggDzYCMCAHIA82AiggCCAQNgI0IAcgEDYCLCAFIBQ2AjggBiAVNgI4IAcgEzYCOCAIIA42AjggBUEBNgJEIAZBATYCRCAHQQE2AkQgCEEBNgJEIAogDkEobGogEjYCGCAKIBhqIBE2AhggCiAZaiAPNgIYIBcgEDYCGCAEQQE6ACAgAUEAIAFBAEobQQFqIQdBASEEA0AgBCAHRgRAAkAgAbchGkEAIQQDQCAaRAAAAAAAAPA/ZgRAIARBAWohBCAaEMgHIRoMAQsLIARBAWsiCkEAIApBAEobQQFqIQtBASEGQQIhBANAIAYgC0YNASABIAZBAWsQgwghBSAEIAEgBhCDCCIIIAUgBSAISBtqIAVrIQUDQCAEIAVGBEAgACgCBCEMQQEhCANAIAcgCEcEQCACIAhBOGxqIgQtACBFBEAgBCAMIAQgBEEQaiINIAQoAiQgAiAJQQhqIg4Q3AVByABsaigCODYCJCAEIAwgDSAEIAQoAiggAiAOENwFQcgAbGooAjg2AigLIAhBAWohCAwBCwsgBkEBaiEGIAUhBAwCBSADIARBAnRqKAIAIAIgACAJQQhqEJMOIARBAWohBAwBCwALAAsACwUgAiAEQThsaiIFIAw2AiQgBSAMNgIoIARBAWohBAwBCwsgASAKEIMIIgUgASABIAVIGyAFayAEaiEBA0AgASAERwRAIAMgBEECdGooAgAgAiAAIAlBCGoQkw4gBEEBaiEEDAELCyAJKAIMEBcgCUEQaiQAC54DAgZ/AX4jAEEgayIHJAAgACgCBCABQRhsaiIEQQE2AgAgByAEKQIQIgo3AxggByAEKQIINwMQIAJBAWohCCAKpyEFQQAhAgNAIAIgBUYEQAJAIARBAjYCAAJAIAMoAggiBiADKAIMIgJHBEAgAygCBCEEIAMoAgAhAAwBCyAGQQF0QQEgBhsiAkH/////A0sEQEHEACECDAILIAMoAgAgAkECdBA2IgBFBEBBMCECDAILIAAgAygCDCIFQQJ0akEAIAIgBWtBAnQQMBogBSADKAIIIgYgAygCBCIEakkEQCAEQQJ0IQkgACACIAUgBGsiBWsiBEECdGogACAJaiAFQQJ0EFQaIAMgBDYCBAsgAyACNgIMIAMgADYCAAsgACAEIAZqIAJwQQJ0aiABNgIAIAMgAygCCEEBajYCCCAHQSBqJAAgCEEBag8LBSAHQRBqIAIQhAghBiAAKAIEIAZBGGxqKAIARQRAIAAgBiAIIAMQlg4hCAsgAkEBaiECDAELCyAHIAIQejYCAEGI8wgoAgBBkoEEIAcQHRoQJgALFAAgACABQQJB8idBEUHegAEQkQULnQEBA38jAEEQayICJAAgAiABNgIMAkAgAARAQQAhAQNAIAEgACgCCE8NAiAAIAEQlw4iAygAACACKAIMRgRAA0AgAUEBaiIBIAAoAggiBE8EQCAAIARBAWs2AggMBQUgAyAAIAEQlw4iAygCADYCAAwBCwALAAUgAUEBaiEBDAELAAsAC0Gh0gFB3oABQRFB4YwBEAAACyACQRBqJAALfgEFfCABKwMAIAArAwAiA6EiBSACKwMAIAOhIgOiIAErAwggACsDCCIEoSIGIAIrAwggBKEiBKKgIQcgBSAEoiADIAaioUQAAAAAAAAAAGYEQCAHIAUgBhBOoyADIAQQTqMPC0QAAAAAAAAAwCAHIAUgBhBOoyADIAQQTqOhC2IBAn8CfwJAIAEoAhAiAS0ArAFBAUcNACABKALEAUEBRw0AIAEoAswBQQFHDQAgASgCyAEhAQNAIAEoAgAiAigCECIDQfgAaiEBIAMtAHANAAtBASAAIAIQqgENARoLQQALC+kBAgh/AX4gAUEBaiEJIAFBAmohCiABQQNqIQYgACABQThsaiEFIAEhAwNAIAMgBkpFBEACQCABIANGBEAgBSAGNgIwIAUgCTYCLAwBCyADIAZGBEAgBSAKNgLYASAFIAE2AtQBDAELIAAgA0E4bGoiBCADQQFrNgIwIAQgA0EBajYCLAsgACADQThsaiIEQQA6ACAgBCACIAdBBHRqIggpAwA3AwAgBCAIKQMINwMIIAgpAwAhCyAAIAQoAjBBOGxqIgQgCCkDCDcDGCAEIAs3AxAgB0EBaiEHIANBAWohAwwBCwsgAUEEagu7AQEDfCADIAApAwA3AwAgAyAAKQMINwMIIAMgACkDEDcDICADIAApAxg3AyggAEEIQRggAhtqKwMAIQYgACsDECEEIAArAwAhBSADIABBGEEIIAIbaisDADkDOCADIAY5AxggAyAFIAQgAhs5AzAgAyAEIAUgAhs5AxACQCABRQ0AQQAhAANAIABBBEYNASADIABBBHRqIgErAwghBCABIAErAwA5AwggASAEmjkDACAAQQFqIQAMAAsACwtRAQJ/IwBBIGsiAiQAA0AgASAAKAIIT0UEQCACIAAgARD1AyABQQFqIQEMAQsLIABCADcCBCAAKAIAEBcgAEIANwIIIABCADcCACACQSBqJAALgwUCC38CfCMAQRBrIgckACAHIAIoAgAiBTYCDCAHQQA2AghBnIgLIAVBIU8EfyAHIAVBA3YgBUEHcUEAR2pBARAYNgIIIAIoAgAFIAULQRAQGDYCAEGgiAsgAEEBakE4EBg2AgBBpIgLIABBBBAYIgw2AgAgAigCACEJQQAhBQJAA0AgBSAJRg0BAkACQCACKAIEIAVByABsaiIGKAJEQQJGDQAgBigCAEEATA0AIAYoAgQiCEEATA0AAkAgBigCKEEATARAIAYoAixBAEwNAQsgBigCMEEASg0BIAYoAjRBAEoNAQsgASAIQThsaiIIKwMYIhAgCCsDCCIRREivvJry13o+oGQNASAQIBFESK+8mvLXer6gYw0AIAgrAxAgCCsDAGQNAQsgBUEBaiEFDAELCyAFIQkLIABBACAAQQBKG0EBaiENQaCICygCACEOQZyICygCACEPQQEhBQNAIAUgDUZFBEAgDyAFQQR0aiILIAEgBUE4bCIGaiIKKAIwNgIIIAooAiwhCCALIAU2AgAgCyAINgIEIAYgDmoiBiAKKQMINwMIIAYgCikDADcDACAKKAIsIQggBiAFNgIgIAZBATYCMCAGIAg2AhAgBUEBaiEFDAELC0GoiAsgADYCAEGsiAtBADYCACAMQQE2AgACQCACKAIEIAlByABsaiIFKAIoIgBBAEoEQCAHQQhqIAQgASACQQAgCSAAIANBARA7DAELIAUoAjAiAEEATA0AIAdBCGogBCABIAJBACAJIAAgA0ECEDsLIAcoAgxBIU8EQCAHKAIIEBcLIAdCADcDCEGciAsoAgAQF0GgiAsoAgAQF0GkiAsoAgAQFyAHQRBqJAALwQECBX8BfEF/IAAgAEEASBtBAWohAwNAIAIgA0YEQCAAQQFqIQMgAEEAIABBAEobQQFqIQBBASECA0AgACACRwRAIAICfxDPASADIAJrt6IgArigIgeZRAAAAAAAAOBBYwRAIAeqDAELQYCAgIB4CyIERwRAIAEgAkECdGoiBSgCACEGIAUgASAEQQJ0aiIEKAIANgIAIAQgBjYCAAsgAkEBaiECDAELCwUgASACQQJ0aiACNgIAIAJBAWohAgwBCwsL0AEBA38jAEGAAWsiBSQAIAUgAikDCDcDKCAFIAIpAxA3AzAgBSACKQMYNwM4IAUgAikDADcDICAFQSBqIARBASAFQUBrIgIQnA4gAUEAIAFBAEobIQcgA0EBIAIQmw4hBkEAIQIDQCACIAdGRQRAIAUgACACQcgAbGoiAUFAaykDADcDGCAFIAEpAzg3AxAgBSABKQMwNwMIIAUgASkDKDcDACAFIARBACAFQUBrIgEQnA4gAkEBaiECIAMgBiABEJsOIQYMAQsLIAVBgAFqJAAL1wECAX8CfAJAAkACQAJAIAArAxgiBSABKwMYIgZjBEAgAiAAKAIkIgBGBEAgASgCICADRg0FCyAAIANHDQEgASgCICACRw0BDAMLIAEoAiAhBCAFIAZkRQ0BIAMgBEYEQCABKAIkIANGDQQLIAIgBEcNACABKAIkIAJGDQILQQAPCyADIARGBEBBACAAKAIkIgBBAEcgASgCJCIBIAJHciABIANGIAAgA0dycWsPCyABKAIkIgFBAEcgACgCJCIAIAJHciAAIANGIAEgA0dycQ8LQQEPC0F/Cx0BAX8gASgCEC0ArAEEf0EABSAAIAEQqgFBAEcLC/AEAgR/BHwCQAJAAkACQCAAKwMYIgkgASsDECIIYw0AIAArAxAiCiABKwMYIgtkDQAgCCAJY0UgCCAKZEVyRQRAIAAgASACIAMQoQ4PCyAIIApjRSAKIAtjRXJFBEBBACABIAAgAiADEKEOaw8LIAggCmEEQCAJIAthBEACQCAAKAIgIgQgASgCICIGRwRAIAEoAiQhAQwBCyABKAIkIgEgACgCJEYNAwsgASAGRgRAQQEhBSACIAZGDQMgAyAGRg0FIAIgBEcEQCAAKAIkIAJHDQQLIAMgBEcEQEF/IQUgACgCJCADRw0EC0EADwsgAiAGRyIHIAEgA0dyRQRAIAAoAiQhACACIARHBEAgACADRw0EDAcLIAAgA0YNAwwFCwJAAkAgASACRgRAIAMgBkcNASACIAAoAiRHBEAgAyAERg0JDAYLIAMgBEcNBwwFCyAGIAEgA0dyRQRAQX8gACgCJCADRiADIARHGw8LIAEgB3INAUEBQX9BACACIARGGyAAKAIkIAJHGw8LIAZFDQQLQX8gAyAERiAAKAIkIANHGw8LIAkgC2MEQCABKAIgIgFBAEcgACgCICIEIAJHciADIARGIAEgA0dycSEFIAAoAiQgAkcNAkEAIAVrDwsgACgCICIAQQBHIAIgASgCICICR3IgAiADRiAAIANHcnEhBSABKAIkIANHDQFBACAFaw8LIAggCWEEQCAAKAIkIgAgASgCIEYNAUEBQX8gACADRhsPCyAAKAIgIgAgASgCJEYNAEEBQX8gACADRhshBQsgBQ8LQQFBf0EAIAAoAiQgAkYbIAIgBEcbDwtBfw8LQQEL2AECAn8DfCMAQeAAayICJAAgASgCICEDIAErAxghBgJAIAEtAABBAUYEQCABKwMQIQUgASsDCCEEIAMQ3gUhAyACIAEoAiQQ3gU2AiQgAiADNgIgIAIgBjkDGCACIAQ5AxAgAiAFOQMIIAIgBDkDACAAQdw2IAIQLQwBCyABKwMQIQUgASsDCCEEIAMQ3gUhAyACIAEoAiQQ3gU2AlQgAiADNgJQIAIgBDkDSCACQUBrIAY5AwAgAiAEOQM4IAIgBTkDMCAAQdw2IAJBMGoQLQsgAkHgAGokAAtrAANAIAAgARCFCARAIABBARCmAyEAIAEgAhCmAyEBDAELCyADQRhBFCAALQAAG2ooAgAgABCnAygCKCICKAIEIAAoAigiAEEYbGpBCGogASgCKCIBEJgOIAIoAgQgAUEYbGpBCGogABCYDgv4AQIDfwJ8An8CQAJAA0AgASADEKYDIgFFDQIgAiAEEKYDIgIEQCABIAIQhQhFDQIgBkEBaiEGDAELC0HXmgNBj70BQcIGQZofEAAAC0F/IAEgAhCnDiIFQX5GDQEaIAZBAmohBCADQQFzIQdBASEDA0AgAyAERg0BIAEiAiAHEKYDIgErAwghCCACKwMQIQlBACAFayAFAn8gAi0AAEUEQCAIIAlhBEAgAigCIEEBRgwCCyACKAIkQQNGDAELIAggCWEEQCACKAIgQQRGDAELIAIoAiRBAkYLGyEFIANBAWohAwwACwALIAAgBTYCBCAAIAY2AgBBAAsLSwEBfwJAIAAtAAAiAiABLQAARgRAIAArAwggASsDCGENAQtB5ZUEQQAQMkF+DwsgAgRAIAAgAUEEQQIQow4PCyAAIAFBA0EBEKMOC/EBAQN/IAJBAE4hBSABIQMCQAJAA0AgAyEEIAFFDQECQAJ/IAVFBEAgASgCECIBKAL4ASIDQQBMDQJBsNoKKAIAKAIQKALEASABKAL0AUEGdGooAgQgA0ECdGpBBGsMAQtBsNoKKAIAKAIQKALEASABKAIQIgEoAvQBQQZ0aigCBCABKAL4ASIDQQJ0akEEagsoAgAiAUUNACABKAIQKAL4ASADayACbEEATA0DIAEhAyAAIAEQog4NASABIAQgACABEJoOGyEDDAELCyAEDwtByRdBxLsBQfEGQf85EAAAC0HukgNBxLsBQfcGQf85EAAAC4EGAgp/AnwjAEEgayIHJABBiPMIKAIAIQYgABCzASEIA0AgCARAIAgoAhAQswEhAwNAIAMEQAJAIAMoAiAiAEUNACADQRhqIQkCQEGYiAstAABBCHFFIABBAUZyDQAgCCsDCCELIAMrAwghDCAHIAMrAxA5AxAgByAMOQMIIAcgCzkDACAGQaLyBCAHEC1BACEAA0AgACADKAIgTw0BAkAgAygCKCgCBCAAQRhsaiIBKAIQIgJFDQAgASgCFCEEIAEoAgwhBSABKAIIIQogBiAJIAAQWxCkDkGo1AQgBhCDARpBACEBA0AgASACRg0BQarNAyAGEIMBGiAGIAkgCiABIAVqIARwQQJ0aigCABBbEKQOQaCBBSAGEIMBGiABQQFqIQEMAAsACyAAQQFqIQAMAAsACyADKAIoIQQjAEEwayIAJAACQAJAAkACQAJAAkAgBCgCACIBDgICAAELIAQoAgRBADYCBAwBCyAAQgA3AiQgAUGAgICABE8NAUEBIAFBAnQiAhBFIgVFDQIgACABNgIsIAAgBTYCIEEAIQJBACEFA0AgASACTQRAAkBBACEBIAAoAighAgNAIAJFDQEgAkEBayICIAAoAihPBEBB3rIDQdS+AUE7QcckEAAABSAAKAIgIAAoAiQgAmogACgCLHBBAnRqKAIAIQUgACACNgIoIAQoAgQgBUEYbGogATYCBCABQQFqIQEMAQsACwALBSAEKAIEIAJBGGxqKAIARQRAIAQgAiAFIABBIGoQlg4hBSAEKAIAIQELIAJBAWohAgwBCwsgACgCIBAXCyAAQTBqJAAMAgsgAEEENgIEIAAgATYCAEGI8wgoAgBBseoDIAAQHRoQJgALIAAgAjYCEEGI8wgoAgBBgOoDIABBEGoQHRoQJgALQQAhAANAIAAgAygCIE8NASADKAIoKAIEIABBGGxqKAIEIQEgCSAAEFsgAUEBajYCLCAAQQFqIQAMAAsACyADKAIAIQMMAQsLIAgoAgAhCAwBCwsgB0EgaiQAC7MFAQ5/IwBBEGsiByQAIAAQswEhCgJAA0AgCkUNASAKKAIQELMBIQYCQANAIAYEQCAGQRhqIQIgBigCICEEIAYoAighDUEAIQMDQCADQQFqIg4hACAEIA5NBEAgBigCACEGDAMLA0AgACAETwRAIA4hAwwCCwJAIA0gAyAAEKUDDQAgDSAAIAMQpQMNACACIAMQWyACIAAQWxCFCEUNACACIAMQWygCMCEFIAIgABBbKAIwIQQCfyAEQQBHIAVFDQAaQQEgBEUNABogAiADEFsoAjArAwggAiAAEFsoAjArAwhiCyEEIAdBCGoiBSACIAMQWyACIAAQW0EAIAQQpg4NBSAHKAIMIQ8gBygCCCEIIAUgAiADEFsgAiAAEFtBASAEQQFzIgUQpg4NBSAHKAIMIQsgBygCCCEJAkACQAJAIA9BAWoOAwABAgMLIAIgABBbIAIgAxBbIARBACAIIAEQsQIgAiAAEFsgAiADEFsgBUEBIAkgARCxAiALQQFHDQIgAiADEFsgAiAAEFsgBSABEKUODAILAkACQAJAIAtBAWoOAwABAgQLIAIgABBbIAIgAxBbIARBACAIIAEQsQIgAiAAEFsgAiADEFsgBUEBIAkgARCxAgwDCyACIAMQWyACIAAQW0EAIAQgCCABELECIAIgAxBbIAIgABBbQQEgBSAJIAEQsQIMAgsgAiADEFsgAiAAEFtBACAEIAggARCxAiACIAMQWyACIAAQW0EBIAUgCSABELECDAELIAIgAxBbIAIgABBbQQAgBCAIIAEQsQIgAiADEFsgAiAAEFtBASAFIAkgARCxAiALQX9HDQAgAiADEFsgAiAAEFsgBSABEKUOCyAAQQFqIQAgBigCICEEDAALAAsACwsgCigCACEKDAELC0F/IQwLIAdBEGokACAMC9kBAQl/IAAQswEhAwNAIANFBEBBAA8LIAMoAhAQswEhAQNAIAEEQAJAIAEoAiAiBEUNACABQRhqIQUgBEEBayEJIAEoAighBkEAIQIDQAJAIAJBAWoiByEAIAIgCUYNAANAIAAgBEYEQCAHIQIMAwsgBSACEFsgBSAAEFsQpw4iCEF+Rg0BAkAgCEEASgRAIAYgAiAAEN0FDAELIAhBf0cNACAGIAAgAhDdBQsgAEEBaiEADAALAAsLIAQgB00NAEF/DwsgASgCACEBDAELCyADKAIAIQMMAAsAC4UBAQV/IAAQswEhAQNAIAEEQCABKAIQELMBIQADQCAABEAgACgCICEDQQAhAkEBQQgQGCIEIAM2AgAgBCADQRgQGCIFNgIEIAADfyACIANGBH8gBAUgBSACQRhsakEANgIAIAJBAWohAgwBCws2AiggACgCACEADAELCyABKAIAIQEMAQsLC3cBAn8jAEEQayIDJAAgAyACOQMIIAAgA0EIakGABCAAKAIAEQQAIgRFBEBBGBBVIgQgAysDCDkDCCAEQaDSCkHA1QooAgAQlAE2AhAgACAEQQEgACgCABEEABoLIAQoAhAiACABQQEgACgCABEEABogA0EQaiQACz0BAn8gABC1DkEBIQEDQCABIAAoAhAiAigCtAFKRQRAIAIoArgBIAFBAnRqKAIAEK4OIAFBAWohAQwBCwsLqAECAX8BfCABLQAkIQMCQCABKAIYIAJGBEAgAisDKCEEIANBAXEEQCAAIAQ5AwAMAgsgACAEIAIrAzigRAAAAAAAAOA/ojkDACAAIAIrAzA5AwgPCyADQQFxBEAgACACKwM4OQMADAELIAAgAisDKCACKwM4oEQAAAAAAADgP6I5AwAgACACKwNAOQMIDwsgACACKwMwIAIrA0CgRAAAAAAAAOA/ojkDCAtWAQF/A0AgAyABKAIgTkUEQCAAIAIgASgCJCADQQJ0aigCAEQAAAAAAAAAABD7AhogA0EBaiEDDAELCyAAIAAoAgBBAWo2AgAgAiABNgIUIAIgATYCGAvSAwMFfwF8AX4jAEEwayIEJABB4tcDIAAQgwEaQfTJBCAAEIMBGkHliQQgABCDARoCQANAAkAgASgCACADTARAQQAhAwNAIAMgASgCBE4NAiABKAIUIANBGGxqIgIpAgwhCCAEIAIrAwA5AyggBCAINwMgIABBzcwEIARBIGoQLSADQQFqIQMMAAsACyAEAnwgASgCECADQShsaiIFKAIUIgIgBSgCGCIGRgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDMCACKwNAoEQAAAAAAADgP6IMAQsgBSAGIAIgAi0AAEEBcRsiAigCJCIGKAIERgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDQAwBCyAFIAYoAgxGBEAgAisDKCACKwM4oEQAAAAAAADgP6IhByACKwMwDAELIAUgBigCCEYEQCACKwMoIQcgAisDMCACKwNAoEQAAAAAAADgP6IMAQsgBigCACAFRw0DIAIrAzghByACKwMwIAIrA0CgRAAAAAAAAOA/ogs5AxAgBCAHOQMIIAQgAzYCACAAQeXMBCAEEC0gA0EBaiEDDAELC0GQ1wMgABCDARogBEEwaiQADwtBvpUEQQAQMhAmAAvpUgMZfwp8AX4jAEHwAWsiCiQAIAAQrgJBCBAYIRhBnIMLLQAAQQFGBEAQ7QMhGQsgAEGiwgEQIyECQZiIC0EANgIAAkAgAkUNACACLQAAIghFDQADQAJAQZiICwJ/AkACQAJAAkAgCEH/AXEiA0HtAGsOBwEFBQUFAgMAC0EIIANB4wBGDQMaIANB6QBHBEAgAw0FDAcLQRIMAwtBAQwCC0EEDAELQQILIAVyIgU2AgALIAJBAWoiAi0AACEIDAALAAsgAQRAQa3fBEEAECcLAn8jAEHQAmsiByQAQQFBHBAYIg4gABA1Igs2AgQgDiALQcgAEBgiAjYCDET////////vfyEkRP///////+//ISAgABAaIRFE////////7/8hIkT////////vfyEjIAIhAwNAIBEEQCARKAIQIgErAxAhHyABKwNgISEgASsDWCEdIAErAxghHCABKwNQIRsgAyADKAIAQQFyNgIAIAMgHCAbRAAAAAAAAOA/okQAAAAAAADwPxAlIhugIh45A0AgAyAcIBuhIhw5AzAgAyAfIB0gIaBEAAAAAAAA4D+iRAAAAAAAAPA/ECUiG6AiHTkDOCADIB8gG6EiGzkDKCABIAM2AoABIANByABqIQMgICAeECUhICAkIBwQMyEkICIgHRAlISIgIyAbEDMhIyAAIBEQGyERDAELCyAHICREAAAAAAAAQsCgOQOoAiAHICJEAAAAAAAAQkCgOQOwAiAHICBEAAAAAAAAQkCgOQO4AiAHIAcpA6gCNwOAAiAHIAcpA7ACNwOIAiAHIAcpA7gCNwOQAiAHICNEAAAAAAAAQsCgOQOgAiAHIAcpA6ACNwP4AUEAIQMCfyMAQaACayIGJAAgC0ECdCIFQQVqIgFBOBAYIQwgAUEEEBghCCAGIAcpA5ACNwNYIAYgBykDiAI3A1AgBiAHKQOAAjcDSCAGIAcpA/gBNwNAIAIgCyAGQUBrIAxBABCgDkGtARC7ByAFQQRqIgUgCBCfDiAGQdgBaiIBIAUgDCAIEJUOIAZCADcD0AEgBkIANwPIASAFIAwgAUEAIAZByAFqEJ4OIAYoAtwBEBcgBiAHKQOQAjcDOCAGIAcpA4gCNwMwIAYgBykDgAI3AyggBiAHKQP4ATcDICACIAsgBkEgaiAMQQEQoA4gBSAIEJ8OIAZBwAFqIgEgBSAMIAgQlQ4gBkIANwO4ASAGQgA3A7ABIAUgDCABQQEgBkGwAWoQng4gBigCxAEQFyAGQgA3A6gBIAZCADcDoAECQANAAkBBACEJIAYoArgBIARNBEAgDBAXIAgQFyAGQcgBahCdDiAGQbABahCdDiAHIAYoAqgBIgU2ApwCIAYoAqABIQggBigCrAEhASAGKAKkASEJA0AgCQRAIAFFDQMgBiAIKQMYNwOYAiAGIAgpAxA3A5ACIAYgCCkDCDcDiAIgBiAIKQMANwOAAiABIQQDQCAEBEAgBiAIIARBAWsiBEEFdGoiDCkDGDcD+AEgBiAMKQMQNwPwASAGIAwpAwg3A+gBIAYgDCkDADcD4AEgDCAGKQOYAjcDGCAMIAYpA5ACNwMQIAwgBikDiAI3AwggDCAGKQOAAjcDACAGIAYpA/gBNwOYAiAGIAYpA/ABNwOQAiAGIAYpA+gBNwOIAiAGIAYpA+ABNwOAAgwBBSAJQQFrIQkMAwsACwALCyABIAVJDQMgBkGgAmokACAIDAQLA0AgBigC0AEgCU0EQCAEQQFqIQQMAwsgBkGAAWogBkGwAWogBBD1AyAGQeAAaiAGQcgBaiAJEPUDIAYgBisDkAEgBisDcBAzIh45A5ACIAYgBisDmAEgBisDeBAzIhw5A5gCIAYgBisDgAEgBisDYBAlIh05A4ACIAYgBisDiAEgBisDaBAlIhs5A4gCIB0gHmYgGyAcZnJFBEAgBiAGKQOYAjcDGCAGIAYpA5ACNwMQIAYgBikDiAI3AwggBiAGKQOAAjcDACAGQaABaiAGEIEECyAJQQFqIQkMAAsACwtBp5IDQaX/AEEIQZO2ARAAAAtB6J8DQaX/AEEIQZO2ARAAAAshCEGYiAstAABBAXEEQCAHKAKcAiEEIAcrA6ACISAgBysDsAIhISAHKwOoAiEfIAcrA7gCIR5B0NEKKAIAQYjzCCgCACIMEIMBGiAHIB5EAAAAAAAAJECgIB+hOQPoASAHICFEAAAAAAAAJECgICChOQPgASAHQoCAgICAgICSwAA3A9gBIAdCgICAgICAgJLAADcD0AEgDEG7pwQgB0HQAWoQLSAHRAAAAAAAACRAIB+hOQPIASAHRAAAAAAAACRAICChOQPAASAMQfytBCAHQcABahAtQdOFBCAMEIMBGiALQQAgC0EAShshAQNAIAEgA0YEQEH5hQQgDBCDARpBACEDA0AgAyAERwRAIAggA0EFdGoiASsDACEcIAErAwghHSABKwMQIRsgByABKwMYOQOYASAHIBs5A5ABIAcgHTkDiAEgByAcOQOAASAMQYCOBCAHQYABahAtIANBAWohAwwBCwtB5oUEIAwQgwEaIAcgHjkDeCAHICE5A3AgByAfOQNoIAcgIDkDYCAMQYCOBCAHQeAAahAtQdTRCigCACAMEIMBGgUgAiADQcgAbGoiBSsDKCEcIAUrAzAhHSAFKwM4IRsgByAFKwNAOQO4ASAHIBs5A7ABIAcgHTkDqAEgByAcOQOgASAMQbm0BCAHQaABahAtIANBAWohAwwBCwsLIA4gBygCnAJByAAQGCIGNgIIIA4gBygCnAIiBTYCAEEAIQMDQCADIAVGBEAgCBAXIAVBACAFQQBKGyEMIAcrA7gCIR8gBysDsAIhISAHKwOoAiEeIAcrA6ACIRxBAUEYEBgiD0EANgIAIA8gBUECdCIBQQJyQSgQGDYCEEHY0QpBwNUKKAIAEJQBIQ1B8NEKQcDVCigCABCUASESIAFBIBAYIRMgAUEEEBghA0EAIQQDQCAEIAxHBEAgBiAEQcgAbGoiBSADIARBBHRqNgIkIAVBBDYCICAhIAUrAzgiG2QEQCAHIBs5A8ACIAcgBSsDMDkDyAIgByAHKQPIAjcDWCAHIAcpA8ACNwNQIA8gDSAHQdAAaiATQQEQ3wUiASAFNgIUIAUoAiQgATYCAAsgHyAFKwNAIh1kBEAgBSsDKCEbIAcgHTkDyAIgByAHKQPIAjcDSCAHIBs5A8ACIAcgBykDwAI3A0AgDyASIAdBQGsgE0EAEN8FIgEgBTYCFCAFKAIkIAE2AgQLIBwgBSsDKGMEQCAHIAUpAzA3AzggByAFKQMoNwMwIA8gDSAHQTBqIBNBARDfBSIBIAU2AhggBSgCJCABNgIICyAeIAUrAzBjBEAgByAFKQMwNwMoIAcgBSkDKDcDICAPIBIgB0EgaiATQQAQ3wUiASAFNgIYIAUoAiQgATYCDAsgBEEBaiEEDAELCyALQQAgC0EAShshCCAPKAIAQQQQGCEDQQAhEUEAIQkDQCAIIBFHBEAgAiARQcgAbGoiCyADIAlBAnRqNgIkIAcgCykDMDcDyAIgByALKQMoNwPAAiASIAdBwAJqQYAEIBIoAgARBAAhBANAAkAgBEUNACAEKwMIIAsrAzhjRQ0AIAQoAgAhBSALIAsoAiAiAUEBajYCICALKAIkIAFBAnRqIAU2AgAgBSALNgIYIBIgBEEIIBIoAgARBAAhBAwBCwsgDSAHQcACakGABCANKAIAEQQAIQQDQAJAIAsrA0AhGyAERQ0AIAQrAxAgG2NFDQAgBCgCACEFIAsgCygCICIBQQFqNgIgIAsoAiQgAUECdGogBTYCACAFIAs2AhggDSAEQQggDSgCABEEACEEDAELCyAHIBs5A8gCIBIgB0HAAmpBgAQgEigCABEEACEEA0ACQCALKwM4IRsgBEUNACAEKwMIIBtjRQ0AIAQoAgAhBSALIAsoAiAiAUEBajYCICALKAIkIAFBAnRqIAU2AgAgBSALNgIUIBIgBEEIIBIoAgARBAAhBAwBCwsgByAbOQPAAiAHIAsrAzA5A8gCIA0gB0HAAmpBgAQgDSgCABEEACEEA0ACQCAERQ0AIAQrAxAgCysDQGNFDQAgBCgCACEFIAsgCygCICIBQQFqNgIgIAsoAiQgAUECdGogBTYCACAFIAs2AhQgDSAEQQggDSgCABEEACEEDAELCyALKAIgIgEgFiABIBZKGyEWIBFBAWohESABIAlqIQkMAQsLA0ACQCAIIBVHBEACQCACIBVByABsaiIJKwNAIAkrAzChRAAAAAAAAAjAoEQAAAAAAADgP6JEAAAAAAAAAEBjRQ0AQQAhESAJKAIgIgFBACABQQBKGyEFA0AgBSARRg0BAkAgCSgCJCARQQJ0aigCACIBLQAkQQFHDQAgCSABKAIUIgNGBEAgASgCGCIDKAIAIQQDQCADIARBCHI2AgAgAygCJCgCACIBRQ0CIAEoAhgiAygCACIEQQFxRQ0ACwwBCyADKAIAIQQDQCADIARBCHI2AgAgAygCJCgCCCIBRQ0BIAEoAhQiAygCACIEQQFxRQ0ACwsgEUEBaiERDAALAAsgCSsDOCAJKwMooUQAAAAAAAAIwKBEAAAAAAAA4D+iRAAAAAAAAABAY0UNAUEAIREgCSgCICIBQQAgAUEAShshBQNAIAUgEUYNAgJAIAkoAiQgEUECdGooAgAiAS0AJA0AIAkgASgCFCIDRgRAIAEoAhgiAygCACEEA0AgAyAEQRByNgIAIAMoAiQoAgQiAUUNAiABKAIYIgMoAgAiBEEBcUUNAAsMAQsgAygCACEEA0AgAyAEQRByNgIAIAMoAiQoAgwiAUUNASABKAIUIgMoAgAiBEEBcUUNAAsLIBFBAWohEQwACwALIA8oAhAgDygCACICQShsaiIBIAI2AiAgASACQQFqNgJIQQAhAiAPKAIAQQZsIBZBAXRqQQQQGCEEIA8gDygCAEEDbCAWakEYEBg2AhQgDygCACIBQQAgAUEAShshAwNAIAIgA0YEQCABQQJqIQEDQCABIANKBEAgDygCECADQShsaiAENgIcIANBAWohAyAEIBZBAnRqIQQMAQsLBSAPKAIQIAJBKGxqIAQ2AhwgAkEBaiECIARBGGohBAwBCwtBACERA0AgDCARRwRAIAYgEUHIAGxqIgMrAzggAysDKKEiHSADKwNAIAMrAzChIiOgRAAAAAAAAOA/okQAAAAAAEB/QKAhIiAjRAAAAAAAAAjAoEQAAAAAAADgP6JEAAAAAAAAAEBjBHwgIkQAAAAAAADQQCADLQAAQQhxIgEbISIgHUQAAAAAAADQQCABGwUgHQshGyAdRAAAAAAAAAjAoEQAAAAAAADgP6JEAAAAAAAAAEBjBEAgIkQAAAAAAADQQCADLQAAQRBxIgEbISIgI0QAAAAAAADQQCABGyEjCwJAIAMoAiQiBCgCCCICRQ0AIAQoAgQiAUUNACAPIAIgASAiEPsCIQIgAyADKAIEIgFBAWo2AgQgAyABQQJ0aiACNgIIIAMoAiQhBAsCQCAEKAIEIgJFDQAgBCgCACIBRQ0AIA8gAiABICIQ+wIhAiADIAMoAgQiAUEBajYCBCADIAFBAnRqIAI2AgggAygCJCEECwJAIAQoAggiAkUNACAEKAIMIgFFDQAgDyACIAEgIhD7AiECIAMgAygCBCIBQQFqNgIEIAMgAUECdGogAjYCCCADKAIkIQQLAkAgBCgCDCICRQ0AIAQoAgAiAUUNACAPIAIgASAiEPsCIQIgAyADKAIEIgFBAWo2AgQgAyABQQJ0aiACNgIIIAMoAiQhBAsCQCAEKAIEIgJFDQAgBCgCDCIBRQ0AIA8gAiABICMQ+wIhAiADIAMoAgQiAUEBajYCBCADIAFBAnRqIAI2AgggAygCJCEECwJAIAQoAggiAkUNACAEKAIAIgFFDQAgDyACIAEgGxD7AiECIAMgAygCBCIBQQFqNgIEIAMgAUECdGogAjYCCAsgEUEBaiERDAELCyANEJwBGiASEJwBGiATEBdBACEDQYjzCCgCACEBAkACQANAIA8oAgAgA0oEQCAPKAIQIANBKGxqIgIoAhRFBEAgByADNgIQIAFBt8wEIAdBEGoQHRogAigCFEUNAwsgAigCGEUEQCAHIAM2AgAgAUGhzAQgBxAdGiACKAIYRQ0ECyADQQFqIQMMAQsLQQAhBCAPIA8oAgAiATYCCCAPIA8oAgQ2AgwgAUEAIAFBAEobIQIDQCACIARHBEAgDygCECAEQShsaiIBIAEvARA7ARIgBEEBaiEEDAELCyAOIA82AhAgB0HQAmokACAODAYLQYzIAUGPvwFBugJB/fwAEAAAC0H/xwFBj78BQbwCQf38ABAAAAsgFUEBaiEVDAALAAUgBiADQcgAbGoiBCAIIANBBXRqIgEpAwA3AyggBEFAayABKQMYNwMAIAQgASkDEDcDOCAEIAEpAwg3AzAgA0EBaiEDDAELAAsACyIQKAIQIRRBmIgLLQAAQQJxBEBBiPMIKAIAIBQQsQ4LIAAQGiEEA0ACQCAEBEAgACAEECkhAgNAIAJFDQICQEH8ggsoAgBBAkYEQCACKAIQKAIIDQELAkBBnIMLLQAAQQFHDQAgAkEwQQAgAigCAEEDcSIBQQNHG2ooAigoAgBBBHYiAyACQVBBACABQQJHG2ooAigoAgBBBHYiAU0EQCAZIAO4Ih0gAbgiGxClCA0CIBkgHSAbEMsCDAELIBkgAbgiHSADuCIbEKUIDQEgGSAdIBsQywILIBggF0EDdGoiASACNgIEIAECfyACQTBBACACKAIAQQNxIgFBA0cbaigCKCgCECIDKwMQIAJBUEEAIAFBAkcbaigCKCgCECIBKwMQoSIbIBuiIAMrAxggASsDGKEiGyAboqAiG5lEAAAAAAAA4EFjBEAgG6oMAQtBgICAgHgLNgIAIBdBAWohFwsgACACECwhAgwACwALIBdBCBAYIREgGCAXQQhBxAIQkwEgFCgCACIAQQJqIQIjAEEgayIEJAACQAJAAkBB5IcLKAIARQRAIAJBAWoiA0GAgICABE8NAUEAIAMgA0EEEEUiARsNAkHkhwsgATYCACABQeiHCzYCAEGQiAsgAjYCAAtBlIgLQQA2AgAgBEEgaiQADAILIARBBDYCBCAEIAM2AgBBiPMIKAIAQbHqAyAEEB0aECYACyAEIANBAnQ2AhBBiPMIKAIAQYDqAyAEQRBqEB0aECYACyAUKAIQIABBKGxqIgxBKGohD0GI8wgoAgAhBwJAAkACQANAIBcgGkYNAQJAIBpFDQBBmIgLLQAAQRBxRQ0AIAcgFBCxDgsCQCAYIBpBA3QiFWooAgQiAUEwQQAgASgCAEEDcSIAQQNHG2ooAigoAhAoAoABIgMgAUFQQQAgAEECRxtqKAIoKAIQKAKAASIARgRAQQAhAgNAIAMoAiAgAkoEQCADKAIkIAJBAnRqKAIAIgAtACRFBEAgFCAMIA8gACgCFCADRhsgAEQAAAAAAAAAABD7AhoLIAJBAWohAgwBCwsgFCAUKAIAQQJqNgIADAELIBQgACAPELAOIBQgAyAMELAOC0EAIQACfyAMIQJBACENIBQoAgAiAUEAIAFBAEobIQEDQCABIA1HBEAgFCgCECANQShsakGAgICAeDYCACANQQFqIQ0MAQsLQZSIC0EANgIAAn8CQCAPELMODQAgD0EANgIAIA9BADYCCANAQQAhFkGUiAsoAgAiAwRAQeSHCygCACIBKAIEIRYgASABIANBAnRqKAIANgIEQZSICyADQQFrIgE2AgAgAQRAQQEhA0GUiAsoAgAiBkECbSEJQeSHCygCACINKAIEIg4oAgAhCANAAkAgAyAJSg0AIA0gA0EDdGooAgAiEigCACELIAYgA0EBdCIBSgR/IAFBAXIiBCABIAsgDSAEQQJ0aigCACIFKAIAIhNIIgQbIQEgBSASIAQbIRIgCyATIAsgE0obBSALCyAITA0AIA0gA0ECdGogEjYCACASIAM2AgQgASEDDAELCyANIANBAnRqIA42AgAgDiADNgIECxCGCAtBACAWIglFDQMaIAlBACAJKAIAazYCAEEAIAIgCUYNAhpBACENA0AgDSAJLgEQTg0BAkAgFCgCECAUKAIUIAkoAhwgDUECdGooAgBBGGxqIgUoAgwiASAJKAIgRgR/IAUoAhAFIAELQShsaiIIKAIAIgNBAE4NACADQYCAgIB4RyEBAn8gBSsDACAJKAIAt6CaIhuZRAAAAAAAAOBBYwRAIBuqDAELQYCAgIB4CyEEAkAgAUUEQCAIIAQ2AgAgCBCzDg0FDAELIAMgBE4NASAIIAQ2AgAgCCgCBBC0DhCGCAsgCCAFNgIMIAggCTYCCAsgDUEBaiENDAALAAsAC0EBCwsNAgNAIAIEQCAAQQFqIQAgAigCCCECDAELCyAAQQFLBEAgAEECayIWQTgQGCELIAwoAggiCCgCFCICLQAAQQFxBEAgCCgCGCECCyARIBVqIQ4gCCgCCCEBIApB4AFqIAggAhCvDiAKKwPoASEgIAorA+ABIR9EAAAAAAAAAAAhHUEAIQVEAAAAAAAAAAAhGwNAIB8hISAgIR4gBSEJIAghBQJAAkACQAJAAkACQANAIAEiAygCCEUNAQJAIAUoAhQiACABKAIURg0AIAAgASgCGEYNACAFKAIYIQALIABBCGohEyAUKAIQIgEgCCgCDCIVKAIQQShsai0AJCEFIAEgFSgCDEEobGotACQhBEEAIRIgACsDQCAAKwMwoUQAAAAAAAAIwKBEAAAAAAAA4D+iIiAgACsDOCAAKwMooUQAAAAAAAAIwKBEAAAAAAAA4D+iIh8QMyEcA0ACQCASIAAoAgQiDU4NACAUKAIQIgEgEyASQQJ0aigCACIGKAIMQShsai0AJCABIAYoAhBBKGxqLQAkRg0AIAYgHBC2DiASQQFqIRIMAQsLA0AgDSASSgRAIAQgBUYgEyASQQJ0aigCACIBIBVHcUUEQCABICAgHyAUKAIQIAEoAgxBKGxqLQAkGxC2DiAAKAIEIQ0LIBJBAWohEgwBCwsgCC0AJCIFIAMtACQiAUcNAiADIgUoAggiASAPRw0ACyAKQeABaiADIAAQrw4gCEEkaiENIAorA+gBISAgCisD4AEhHyADLQAkIQEgCC0AJCEFDAULIBZBpJLJJE8NASAJQaWSySRPDQICQCAJRQRAIAsQF0EAIQAMAQsgCyAJQThsIgIQNiIARQ0EIAkgFk0NACAAIBZBOGwiAWpBACACIAFrEDAaCyAJQQFrIQUgAEE4aiEEIABBOGshA0EAIQIDQCACIAlHBEAgAgRAIAAgAkE4bCIBaiABIANqNgIwCyACIAVJBEAgACACQThsIgFqIAEgBGo2AjQLIAJBAWohAgwBCwsgDiAANgIEIA4gCTYCAEEAIQIgFCAUKAIIIgE2AgAgFCAUKAIMNgIEIAFBACABQQBKGyEDA0AgAiADRgRAIAFBAmohAANAIAAgA0oEQCAUKAIQIANBKGxqQQA7ARAgA0EBaiEDDAELCwUgFCgCECACQShsaiIAIAAvARI7ARAgAkEBaiECDAELCyAaQQFqIRoMBwsgCEEkaiENIAArAzAgACsDQKBEAAAAAAAA4D+iISAgACsDKCAAKwM4oEQAAAAAAADgP6IhHwwDC0HIvwNByoEBQc0AQYm1ARAAAAsgCkE4NgLEASAKIAk2AsABIAdBseoDIApBwAFqEB0aECYACyAKIAI2AtABIAdBgOoDIApB0AFqEB0aECYACyAMKAIIIQYCfyAFQQFxBEBBACEEIAVB/wFxIAFB/wFxRwRAQQFBAyADKAIUIABGGyEEC0EBQQMgGyAeZBtBACAGIAhHGyEBIAJBMGohBkEoDAELQQAhBCAFQf8BcSABQf8BcUcEQEEEQQIgAygCFCAARhshBAtBBEECIB0gIWQbQQAgBiAIRxshASACQShqIQZBMAshCCAFQX9zQQFxIQUgBisDACEkAkAgAiAIaisDACIdIAAgCGorAwAiHGMEQCAdIRsgHCEdIAEhAiAEIQEMAQsgHCEbIAQhAgsgCyAJQThsaiIEQgA3AzAgBCABNgIkIAQgAjYCICAEIB05AxggBCAbOQMQIAQgJDkDCCAEIAU6AAAgCUEBaiEFIAAhAiAhIR0gHiEbIAMiCC0AJCIAIA0tAABGIA8gAygCCCIBR3INACACQTBBKCAAG2orAwAhHCACQShBMCAAG2orAwAhHiALIAVBOGxqIgFCADcDMCABQQFBAyAbICBkG0EEQQIgHSAfZBsgABs2AiQgAUEANgIgIAEgHjkDGCABIB45AxAgASAcOQMIIAEgAEEBczoAACAJQQJqIQUgAygCCCEBDAALAAsLQbrrAkGPvQFBowFB+pIBEAAAC0HkhwsoAgAQF0GUiAtBADYCAEHkhwtBADYCAEEAIQFBiNIKQcDVCigCABCUASEEA0AgECgCACABSgRAIBAoAgggAUHIAGxqIgItAABBBHFFBEADQAJAIAIiACgCJCgCCCICRQ0AIAIoAhQiAkUNACACLQAAQQFxRQ0BCwtBMBBVIgUgADYCLCAFIAArAyg5AwggACgCACEIIAAhAgNAAkAgAiIDIAhBBHI2AgAgAygCJCgCACICRQ0AIAIoAhgiAkUNACACKAIAIghBAXFFDQELCyAFIAMrAzg5AxAgBCAFIAArAzAQrQ4LIAFBAWohAQwBCwsgECAENgIUIBBBFGohE0EAIQFBiNIKQcDVCigCABCUASEEA0AgECgCACABSgRAIBAoAgggAUHIAGxqIgItAABBAnFFBEADQAJAIAIiACgCJCgCDCICRQ0AIAIoAhQiAkUNACACLQAAQQFxRQ0BCwtBMBBVIgUgADYCLCAFIAArAzA5AwggACgCACEIIAAhAgNAAkAgAiIDIAhBAnI2AgAgAygCJCgCBCICRQ0AIAIoAhgiAkUNACACKAIAIghBAXFFDQELCyAFIAMrA0A5AxAgBCAFIAArAygQrQ4LIAFBAWohAQwBCwsgECAENgIYIBBBGGohFUEAIQ0DQCANIBdHBEAgESANQQN0aiIAKAIEIQkgACgCACEMQQAhAQNAIAEgDEYEQCANQQFqIQ0MAwsgCSABQThsaiIGIBUgEyAGLQAAGygCACAGEKcDIg4oAiAiADYCKAJAIA4oAiQiBSAARwRAIA4oAhwhCCAOKAIYIQQMAQsgAEEBdEEBIAAbIgVB/////wNLBEBBxAAhAgwGCyAOKAIYIAVBAnQQNiIERQRAQTAhAgwGCyAEIA4oAiQiAkECdGpBACAFIAJrQQJ0EDAaIAIgDigCICIAIA4oAhwiCGpJBEAgCEECdCEDIAQgBSACIAhrIgJrIghBAnRqIAMgBGogAkECdBBUGiAOIAg2AhwLIA4gBTYCJCAOIAQ2AhgLIAQgACAIaiAFcEECdGogBjYCACAOIABBAWo2AiAgAUEBaiEBDAALAAsLIBMoAgAQrA4gFSgCABCsDiATKAIAEKsODQAgFSgCABCrDg0AIBAoAhQgEBCqDg0AIBAoAhggEBCqDg0AIBMoAgAQqQ4gFSgCABCpDkEAIQJBmIgLLQAAQQRxBEBBjP4EIAcQgwEaIApCioCAgKABNwOgASAHQY2uBCAKQaABahAdGkHThQQgBxCDARoDQCAQKAIEIAJMBEBBACEBRP///////+9/IR1E////////7/8hIET////////v/yEfRP///////+9/IRsDQCABIBdGBEACQEG6hQQgBxCDARpBACECIApBQGshAANAIAIgECgCAE4NASAQKAIIIAJByABsaiIBKwMoISQgASsDMCEhIAErAzghHiAKIAErA0AiHDkDSCAAIB45AwAgCiAhOQM4IAogJDkDMCAHQYCOBCAKQTBqEC0gAkEBaiECICAgHBAlISAgHyAeECUhHyAdICEQMyEdIBsgJBAzIRsMAAsACwUgGCABQQN0IgBqKAIEIgRBMEEAIAQoAgBBA3FBA0cbaigCKCgCECgCgAEhAiAAIBFqIgAoAAAhAwJAIAAoAAQiBS0AAEEBRgRAIAIrA0AgAisDMKBEAAAAAAAA4D+iIR4gBSAQEOgDIRwMAQsgAisDOCACKwMooEQAAAAAAADgP6IhHCAFIBAQ5wMhHgsgCiAeOQOYASAKIBw5A5ABIAdBuYkEIApBkAFqEC1BASECQQEgAyADQQFNGyEDICAgHhAlISAgHyAcECUhHyAdIB4QMyEdIBsgHBAzIRsCQANAIAIgA0YEQAJAIARBUEEAIAQoAgBBA3FBAkcbaigCKCgCECgCgAEhAiAFIANBOGxqQThrIgAtAABFDQAgAisDQCACKwMwoEQAAAAAAADgP6IhHiAAIBAQ6AMhHAwDCwUCQCAFIAJBOGxqIgAtAABBAUYEQCAAIBAQ6AMhHAwBCyAAIBAQ5wMhHgsgCiAeOQOIASAKIBw5A4ABIAdB04kEIApBgAFqEC0gAkEBaiECICAgHhAlISAgHyAcECUhHyAdIB4QMyEdIBsgHBAzIRsMAQsLIAIrAzggAisDKKBEAAAAAAAA4D+iIRwgACAQEOcDIR4LIAogHjkDeCAKIBw5A3AgB0HnsAQgCkHwAGoQLSABQQFqIQEgICAeECUhICAfIBwQJSEfIB0gHhAzIR0gGyAcEDMhGwwBCwsgCiAgRAAAAAAAACRAoDkDaCAKIB9EAAAAAAAAJECgOQNgIAogHUQAAAAAAAAkQKA5A1ggCiAbRAAAAAAAACRAoDkDUCAHQeGoBCAKQdAAahAtBSAQKAIMIAJByABsaiIAKwMoIRwgACsDMCEdIAArAzghGyAKIAArA0A5AyggCiAbOQMgIAogHTkDGCAKIBw5AxAgB0G5tAQgCkEQahAtIAJBAWohAgwBCwsLQQAhBEEAIQFBACECA0AgAiAXRwRAIBggAkEDdCIFaigCBCIOIA5BMGsiFSAOKAIAQQNxIgBBAkYbKAIoKAIQIgMrABghHyAOKAIQIggrAEAgDiAOQTBqIgkgAEEDRhsoAigoAhAiACsAGCEeIAgrABghHCAAKwAQIR0gCCsAECEbIAUgEWoiACgCBCETIB+gISAgCCsAOCADKwAQoCEfIAQgACgCACIFQQNsQQFqIgNJBEAgARAXIAMiBEEQEBghAQsgAQJ8IBMtAABBAUYEQCAcIB6gIR4gEyAQEOgDDAELIBMgEBDnAyEeIBsgHaALIhw5AxAgASAeOQMYIAEgASkDEDcDACABIAEpAxg3AwhBASEAQQEgBSAFQQFNGyIMQThsIQVBAiEIAkADQCAAIAxGBEAgBSATakE4ayIALQAABEAgACAQEOgDIR8MAwsFAkAgEyAAQThsaiIGLQAAQQFGBEAgBiAQEOgDIRwMAQsgBiAQEOcDIR4LIAEgCEEEdGoiBiAcOQMAIAYgHjkDCCAGIAYpAwAiJTcDECAGICU3AyAgBiAGKQMIIiU3AxggBiAlNwMoIABBAWohACAIQQNqIQgMAQsLIAAgEBDnAyEgCyABIAhBBHRqIgAgIDkDGCAAIB85AxAgACAAKQMYNwMIIAAgACkDEDcDAEHwggstAABBAk8EQCAOIAkgDigCAEEDcUEDRhsoAigQHyEAIAogDiAVIA4oAgBBA3FBAkYbKAIoEB82AgQgCiAANgIAIAdBpfIDIAoQHRoLIA4gDiAVIA4oAgBBA3FBAkYbKAIoIAEgA0G40goQnQEgAkEBaiECDAELCyABEBcLQQAhAkGcgwstAABBAUYEQCAZEN4CCwNAIAIgF0cEQCARIAJBA3RqKAIEEBcgAkEBaiECDAELCyAREBcgECgCCCgCJBAXIBAoAgwoAiQQFyAQKAIIEBcgECgCDBAXIBAoAhAiACgCECgCHBAXIAAoAhAQFyAAKAIUEBcgABAXIBAoAhQQnAEaIBAoAhgQnAEaIBAQFyAYEBcgCkHwAWokAA8LIAogAhB6NgKwASAHQZKBBCAKQbABahAdGhAmAAsgACAEEBshBAwACwALTQEBf0GUiAsoAgAiAUGQiAsoAgBGBEBB1dsDQQAQMkEBDwtBlIgLIAFBAWoiATYCAEHkhwsoAgAgAUECdGogADYCACABELQOEIYIQQALaAEGf0HkhwsoAgAiASAAQQJ0aigCACICKAIAIQUDQCABIABBAnRqIQMgASAAQQJtIgZBAnRqKAIAIgQoAgAgBU5FBEAgAyAENgIAIAQgADYCBCAGIQAMAQsLIAMgAjYCACACIAA2AgQLXQECfwJAIAAoAhAiASgCjAJFDQAgASgC6AEhAgNAIAIgASgC7AFKDQEgASgCjAIgAkECdGogASgCxAEgAkEGdGooAgQoAgA2AgAgAkEBaiECIAAoAhAhAQwACwALCzcBAX8gACAAKAIIQQFqIgI2AgggArcgAWQEQCAAQQA2AgggACAAKwMARAAAAAAAANBAoDkDAAsL5gECBHwDfyAAKAIgIgcgASgCICIIRwRAQX8hBgJAIActACRFDQAgCC0AJEUNACAAKwMAIgJEAAAAAAAAAABhBEAgACsDCEQAAAAAAAAAAGENAQsgASsDACIDRAAAAAAAAAAAYSABKwMIIgREAAAAAAAAAABhcQ0AIAArAwgiBSAEZARAIAIgA2QEQEEADwtBAkEBIAIgA2MbDwsgBCAFZARAIAIgA2QEQEEGDwtBCEEHIAIgA2MbDwsgAiADZARAQQMPC0EFQX8gAiADYxshBgsgBg8LQc3cAEH9uwFB4QFB8PgAEAAAC+oDAgd/BH4jAEEwayIGJAAgBkEANgIUAkAgAwRAIAUgAygCBCIHSg0BAn8CQCAFIAdJBEAjAEEQayIKJAACQCABRSADRXJFBEAgA0EIaiEMQQAhBwNAIAdBwABGDQIgDCAHQRRsaiILKAIQBEAgCxD9AiEOIAogASALEPwCAn8gChD9AiAOfSIQIA9aIAhxRQRAIA4hDSAQIQ8gBwwBCyAOIA0gDyAQUSANIA5WcSIIGyENIAcgCSAIGwshCUEBIQgLIAdBAWohBwwACwALQbbuAEHVwAFB7wBBi/4AEAAACyAKQRBqJAAgAyAJQRRsaiIJQQhqIQcgACABIAIgCSgCGCAGQRRqIAUQuA4NASAGQRhqIAEgBxD8AiAHIAYpAiA3AgggByAGKQIYNwIAQQAMAgsgBSAHRgRAIAYgASkCCDcDICAGIAEpAgA3AxggBiACNgIoIAAgBkEYaiADIAQQtwQMAgtBx5cBQd65AUH7AUHizwIQAAALIAZBBGogBygCEBDhBSAHIAYpAgw3AgggByAGKQIENwIAIAYgBigCFCIBNgIoIAZBGGoiAiABEOEFIAAgAiADIAQQtwQLIAZBMGokAA8LQe0WQd65AUHmAUHizwIQAAALQenxAEHeuQFB5wFB4s8CEAAAC6sCAQV/AkACQAJAAkAgAQRAIAEoAgQiA0EASA0BIAJFDQIgAUEIaiEFIAMNA0EAIQEDQCABQcAARgRAIAQhAwwGBQJAIAUgAUEUbGoiAygCEEUNACACIAMQighFDQBBAUEIEEUiAARAIAAgAzYCBAsgACAENgIAIAAhBAsgAUEBaiEBDAELAAsAC0G77gBB3rkBQZABQez9ABAAAAtB8pQDQd65AUGRAUHs/QAQAAALQdI+Qd65AUGSAUHs/QAQAAALQQAhAwNAIARBwABGDQECQCAFIARBFGxqIgEoAhBFDQAgAiABEIoIRQ0AIAAgASgCECACELkOIQYgAyIBRQRAIAYhAwwBCwNAIAEiBygCACIBDQALIAcgBjYCAAsgBEEBaiEEDAALAAsgAwt9AQR/IABBGGohAgJAIAAoAgRBAEoEQANAIAFBwABGDQIgAiABQRRsaiIDKAIAIgQEQCAEELoOIAMoAgAQFyAAIAEQuw4LIAFBAWohAQwACwALA0AgAUHAAEYNASACIAFBFGxqKAIABEAgACABELsOCyABQQFqIQEMAAsACwtdAAJAIABFIAFBwABPckUEQCAAIAFBFGxqIgEoAhhFDQEgAUEIahC8DiAAIAAoAgBBAWs2AgAPC0GX2gFB1cABQa4BQf79ABAAAAtBoaoBQdXAAUGvAUH+/QAQAAALDgAgABC+DiAAQQA2AhALOgEBfyAAQoCAgIBwNwIAIABBCGohAUEAIQADQCAAQcAARwRAIAEgAEEUbGoQvA4gAEEBaiEADAELCwslAQF/A0AgAUEERwRAIAAgAUECdGpBADYCACABQQFqIQEMAQsLC8gCAgJ/AXwjAEGAAmsiAyQAIAIrAxAhBSADIAApAwg3A3ggAyAAKQMANwNwIAMgASkDCDcDaCADIAEpAwA3A2AgA0HgAWogA0HwAGogA0HgAGoQtAMCQCAFIAMrA+ABZkUNACADIAApAwg3A1ggAyAAKQMANwNQIAMgASkDCDcDSCADIAEpAwA3A0AgA0HAAWogA0HQAGogA0FAaxC0AyADKwPQASACKwMAZkUNACACKwMYIAMgACkDCDcDOCADIAApAwA3AzAgAyABKQMINwMoIAMgASkDADcDICADQaABaiADQTBqIANBIGoQtAMgAysDqAFmRQ0AIAMgACkDCDcDGCADIAApAwA3AxAgAyABKQMINwMIIAMgASkDADcDACADQYABaiADQRBqIAMQtAMgAysDmAEgAisDCGYhBAsgA0GAAmokACAEC2oCAnwBfwJAIAErAxAgACsAOCICIAArAxhEAAAAAAAA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RAAAAAAAACRAIRMDQCALQQFxRSAJQQ5Lcg0EIAggDCAFIAYoArwBIBMQ8w5BACEDA0ACQAJAIAMgDEYEQCAMIQMMAQsgCCADQQV0aiIAKQMAQv/////////3/wBSBEAgACkDEEL/////////d1INAgsgEyAToCETCyAJQQFqIQkgAyAMRyELDAILIANBAWohAwwACwALAAUgBSADQQR0IgdqIgQgAiAHaiIHKQMANwMAIAQgBykDCDcDCCADQQFqIQMMAQsACwALIAoQF0EAIQVB2OYDQQAQMgwFCyALQQFxBEAgDiAQIA4oAgBBA3FBA0YbKAIoEB8hACAGIA4gDyAOKAIAQQNxQQJGGygCKBAfNgIUIAYgADYCEEHD4QQgBkEQahAnIAYgBikCwAE3AwggBkEIaiAGQegAahCyBCAIIAwgBigCaCAGKAJsRAAAAAAAACRAEPMOCyABIAYoArwBNgIAIAoQFwwECyAJQQJqCyEJIAchAwwACwALIAoQFyAGIA4gDyAOKAIAQQNxQQJGGygCKBAfNgIAQaPxAyAGEDJBACEFCyAGQdABaiQAIAUL1wMBA39BASEEA0AgBCAAKAIQIgUoArQBSkUEQCAFKAK4ASAEQQJ0aigCACABIAIgAxD2DiEDIARBAWohBAwBCwsCQCAAEF4gAEYNACABQQAgAkECdBAwIQUgABAaIQIDQCACBEAgBSACKAIQKAL0AUECdGpBATYCACAAIAIQKSEBA0AgAQRAIAFBKGohBiACKAIQKAL0ASEEA0AgBCAGQVBBACABKAIAQQNxQQJHG2ooAgAoAhAoAvQBTkUEQCAFIARBAWoiBEECdGpBATYCAAwBCwsgACABECwhAQwBCwsgACACEBshAgwBCwsgACgCECIBKALoASEEA0AgBCABKALsAUoNASAFIARBAnRqKAIARQRAIANFBEAgABBeQYr3AEEBEI8BIQMLIANBAEEBEIgBIgJB2ChBwAJBARAxGiACKAIQIgFCgICAgICAgPA/NwNgIAEgBDYC9AEgAUKAgICAgICA8D83A1ggAUEBNgLsASABQoCAgICAgID4PzcDUCABQQA2AsQBQQVBBBAYIQEgAigCECIGQQA2AswBIAYgATYCwAFBBUEEEBghASACKAIQIAE2AsgBIAAgAkEBEHsaIAAoAhAhAQsgBEEBaiEE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KQMINwOIASADIAEpAwA3A4ABIAAgBUEDEDcMCAsgAyACKQMANwMwIAMgAikDCDcDOCAAIANBMGpBAxA3DAcLIAAgAUEEEDcMBgsgAyABKQMINwOIASADIAEpAwA3A4ABIAAgBEEEEDcMBQsgAyABKQMINwOIASADIAEpAwA3A4ABIAMgBCkDCDcDmAEgAyAEKQMANwOQASAAIAVBBBA3DAQLIAMgAikDADcDMCADIAIpAwg3AzggACADQTBqQQQQNwwDCyAAIAFBAhA3IAAgBUECEDcMAgsgAyACKQMANwMwIAMgAikDCDcDOCAAIANBMGpBAhA3IAAgBEECEDcMAQsgAS0AISIBQQJPBEAgAiABuEQAAAAAAADgP6IiCCACKwMAoDkDACACIAggAisDCKA5AwggAiACKwMQIAihOQMQIAIgAisDGCAIoTkDGAsgAyACKQMYNwMYIAMgAikDEDcDECADIAIpAwg3AwggAyACKQMANwMAIAAgA0EAEIACCyADQaABaiQAC2cBAX8jAEEQayIFJAACfyABIAQgBUEIahDLBARAIAAgBCgCABBcIAAgBCgCBCIBQY/4ACABGyACIAUrAwgQiANBA0ECIAMtAABBAXEbDAELIAAgARBcQQELIABBvh8QQiAFQRBqJAALrAECAX8BfAJAIAAoAhAiA0UNACABKAIABEAgAiADNgIAIAAgASgCADYCEAwBCyACQQA2AgALAkAgACgCFCIDRQ0AIAEoAgQEQCACIAM2AgQgACABKAIENgIUDAELIAJBADYCBAsgACsDICIERAAAAAAAAAAAZgRAIAErAxBEAAAAAAAAAABmBEAgAiAEOQMQIAAgASsDEDkDIA8LIAJCgICAgICAgPi/fzcDEAsLsAUCDH8HfCMAQYABayIDJAAgASgCBCIMBEAgAisAICEUIAIoABQhByACKAAQIQogAS0ACCENIAEoAgAhDiACKwMAIRAgASsDECEVIAErAyAhESACKwMIIRIgASsDGCETIAErAyghDyADQgA3AxggAyASIA8gE6BEAAAAAAAA4D+ioCAPIBOhRAAAAAAAAOA/oqA5AyAgAEEBEPMIIBEgFaFEAAAAAAAA4D+iIhIgECARIBWgRAAAAAAAAOA/oqAiEaAhEyARIBKhIRIDQCAFIAxHBEACfCASIA4gBUEFdGoiBC0A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EEEQakEoEB4aIAVDAAAAABCJAyEFIAMgAjYClAEgA0HomgE2ApABIABBnukEIANBkAFqEBwDQCACIARGBEAgAEHd2wQQGRogACsD6AMhByAAKwPwAyEIIANCgICAgICAgPg/NwNgIAMgCDkDWCADIAc5A1AgAEHq0gQgA0HQAGoQHCADQUBrIAAoAugCsrs5AwAgA0IANwM4IANCADcDMCAAQcbSBCADQTBqEBwgA0HY/wooAgA2AiAgA0IANwMQIANCADcDGCAAQeXTBCADQRBqEBwgAyAFNgIAIABBus0DIAMQHCAFEBcgA0HAAWokAAUgASAEQQR0aiIGKwMAIQcgBisDCCEIIAArA/gDIQkgACsDgAQhCiADIAAoAhArA6ABOQOIASADQgA3A4ABIAMgCCAKoDkDeCADIAcgCaA5A3AgAEHBpQQgA0HwAGoQHCAEQQFqIQQMAQsLC70EAgR/BHwjAEGAAmsiBCQAIABB4IgEEBkaQQAhA0HY/wpB1P8KKAIAQQRrNgIAIARByAFqIgUgACgCEEE4akEoEB4aIAVDAAAAABCJAyEHIARCADcD+AEgBEH2mgE2AsABIAQgAkECajYCxAEgBEIANwPwASAEQfABakGe6QQgBEHAAWoQVgNAIAIgA0cEQCABIANBBHRqIgYrAwAhCCAGKwMIIQkgACsD+AMhCiAAKwOABCELIAQgACgCECsDoAE5A7gBIARCADcDsAEgBCAJIAugOQOoASAEIAggCqA5A6ABIARB8AFqQcGlBCAEQaABahBWIANBAWohBSADBEAgBSIDIAJHDQILIAArA/gDIQggBisDACEJIAArA4AEIQogBisDCCELIAQgACgCECsDoAE5A5gBIARCADcDkAEgBCALIAqgOQOIASAEIAkgCKA5A4ABIARB8AFqQcGlBCAEQYABahBWIAUhAwwBCwsgBCAEQfABaiIBEOMENgJwIABB19sEIARB8ABqEBwgACsD6AMhCCAAKwPwAyEJIARCgICAgICAgPg/NwNgIAQgCTkDWCAEIAg5A1AgAEHq0gQgBEHQAGoQHCAEQUBrIAAoAugCsrs5AwAgBEIANwM4IARCADcDMCAAQcbSBCAEQTBqEBwgBEHY/wooAgBBAms2AiAgBEIANwMQIARCADcDGCAAQeXTBCAEQRBqEBwgBCAHNgIAIABBus0DIAQQHCAHEBcgARBnIARBgAJqJAAL1gYCBH8EfCMAQaADayIEJAAgAEHBjAQQGRpB2P8KQdT/CigCAEECazYCACAEQfgCaiIGIAAoAhBBEGpBKBAeGiAGQwAAAAAQiQMhBiAEIAJBAWo2AvQCIARB6JoBNgLwAiAAQZ7pBCAEQfACahAcA0AgAiAFRgRAAkAgACsD+AMhCCABKwMAIQkgACsDgAQhCiABKwMIIQsgBCAAKAIQKwOgATkDyAIgBEIANwPAAiAEIAsgCqA5A7gCIAQgCSAIoDkDsAIgAEHBpQQgBEGwAmoQHCAAQfHbBBAZGiAAKwPoAyEIIAArA/ADIQkgBEKAgICAgICA+D83A6ACIAQgCTkDmAIgBCAIOQOQAiAAQerSBCAEQZACahAcIAQgACgC6AKyuzkDgAIgBEIANwP4ASAEQgA3A/ABIABBxtIEIARB8AFqEBxBACEFIARB2P8KKAIAQQJrNgLgASAEQgA3A9ABIARCADcD2AEgAEHl0wQgBEHQAWoQHCAEIAY2AsABIABBus0DIARBwAFqEBwgBhAXIANFDQAgBEGYAWoiAyAAKAIQQThqQSgQHhogA0MAAIA+EIkDIQMgBCACNgKQASAAQY7pBCAEQZABahAcA0AgAiAFRgRAIABBsM0DEBkaIAArA+gDIQggACsD8AMhCSAEQoCAgICAgID4PzcDYCAEIAk5A1ggBCAIOQNQIABB6tIEIARB0ABqEBwgBEFAayAAKALoArK7OQMAIARCADcDOCAEQgA3AzAgAEHG0gQgBEEwahAcIARB2P8KKAIAQQJrNgIgIARCADcDECAEQgA3AxggAEHl0wQgBEEQahAcIAQgAzYCACAAQbrNAyAEEBwgAxAXBSABIAVBBHRqIgYrAwAhCCAGKwMIIQkgACsD+AMhCiAAKwOABCELIARCADcDgAEgBCAJIAugOQN4IAQgCCAKoDkDcCAAQdHcASAEQfAAahAcIAVBAWohBQwBCwsLBSABIAVBBHRqIgcrAwAhCCAHKwMIIQkgACsD+AMhCiAAKwOABCELIAQgACgCECsDoAE5A+gCIARCADcD4AIgBCAJIAugOQPYAiAEIAggCqA5A9ACIABBwaUEIARB0AJqEBwgBUEBaiEFDAELCyAEQaADaiQAC6kFAgJ/CXwjAEHwAmsiAyQAIABBnq4EEBkaQdj/CkHU/wooAgBBBms2AgAgACsDgAQhDCAAKwP4AyENIAAoAhAiBCsDoAEhBSAAKwPoAyEGIAErAwAhByABKwMQIQggACsD8AMhCiABKwMIIQsgASsDGCEJIANBuAJqIgEgBEEQakEoEB4aIAFDAAAAABCJAyEBIANCADcD6AIgA0KAgICAgICA+D83A6ACIANCADcD4AIgAyAFIAYgCCAHoaIiBSAKIAkgC6GiIgigIgmjRAAAAAAAAOA/okQAAAAAAAAUQKI5A6gCIANB4AJqIgRBraUEIANBoAJqEFYgAyAIOQOQAiADIAlEAAAAAAAA0D+iOQOIAiADIAU5A4ACIARB6tIEIANBgAJqEFYgAyAAKALoArK7OQPwASADQgA3A+gBIANCgICAgICAoKvAADcD4AEgBEHG0gQgA0HgAWoQViADQdj/CigCADYC0AEgAyAGIAcgDaCiIgY5A8ABIAMgCiALIAygoiIHOQPIASAEQeXTBCADQcABahBWIAMgATYCsAEgBEG6zQMgA0GwAWoQViAAIAQQ4wQQGRogARAXIAIEQCADQYgBaiIBIAAoAhBBOGpBKBAeGiABQwAAAAAQiQMhASADQgA3A4ABIANCADcDeCADQgA3A3AgAEHy3AQgA0HwAGoQHCADQoCAgICAgID4PzcDYCADIAg5A1ggAyAFOQNQIABB6tIEIANB0ABqEBwgA0FAayAAKALoArK7OQMAIANCADcDOCADQgA3AzAgAEHG0gQgA0EwahAcIANB2P8KKAIANgIgIAMgBjkDECADIAc5AxggAEHl0wQgA0EQahAcIAMgATYCACAAQbrNAyADEBwgARAXCyADQeACahBnIANB8AJqJAAL6AMCA38GfCMAQdABayIDJAAgAigCACEEIAIoAgQiBSsDECEGIAMgBSgCADYCsAEgAyAGOQOoASADIAQ2AqABIABBpf4DIANBoAFqEBxB2P8KQdT/CigCAEEJazYCAAJ8IAErAwAiBiACLQAwIgRB7ABGDQAaIARB8gBGBEAgBiACKwMgoQwBCyAGIAIrAyBEAAAAAAAA4L+ioAshBiAAKwPwAyEHIAArA4AEIQggASsDCCEJIAArA+gDIQogACsD+AMhCyADQfgAaiIBIAAoAhBBEGpBKBAeGiABQwAAAAAQiQMhASADQgA3A8gB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RQ0BIAQrAxgiAiABKwMYIgNkDQFBASEAIAIgA2MNAUF/IQAgBCsDICICIAErAyAiA2QNASACIANjDwsgAUEARyEACyAACwkAIAAgARCpAQt5AQF/IwBBEGsiAyQAIAAoAhAoAgxBAnRB0IQFaigCACIEQZ7KAxDpASADIAIpAwg3AwggAyACKQMANwMAIAQgAxDSAiAEIAIrAxAgAisDAKEQlQIgBCACKwMYIAIrAwihEJUCIABBo4EFIAEoAggQuAMgA0EQaiQACwkAIAAQlQkQFwsJACAAELAGEBcLjQoCCX8CfCMAQaABayIFJAAgABCXCSAFQQA2ApwBIABBBGohCSAAQSRqIQQCQAJAAkADQCAEKAIAIQJE////////738hCiAEKAIEIgYhAQN8IAIgBkYEfCAKREivvJry13q+Y0UgASAGRnJFBEAgASAEKAIEQQRrKAIANgIAAkAgBCgCBCAEKAIAa0ECdUEBayIGIAQoAgQgBCgCACICa0ECdSIBSwRAIwBBIGsiByQAAkAgBiABayIIIAQoAgggBCgCBCICa0ECdU0EQCAEKAIEIgEgCEECdGohAgNAIAEgAkYEQCAEIAI2AgQFIAFBADYCACABQQRqIQEMAQsLDAELIAdBDGogBCACIAQoAgBrQQJ1IAhqEPEEIAQoAgQgBCgCAGtBAnUgBEEIahDABiIGKAIIIgEgCEECdGohAgNAIAEgAkcEQCABQQA2AgAgAUEEaiEBDAELCyAGIAI2AgggBCAGELkJIAYQvwYLIAdBIGokAAwBCyABIAZLBEAgBCACIAZBAnRqNgIECwsLIAoFIAogAigCACIHEJYCIgtkBEAgBSAHNgKcASACIQEgCyEKCyACQQRqIQIMAQsLREivvJry13q+YwRAIAUoApwBIgYtABxBAUYNAiAFIAYoAgAoAiAiCDYCBCAFIAYoAgQiASgCICICNgKYASACIAhHBEAgCCACIAYQnwkMAgsgA0GRzgBODQMgBigCACECIwBBEGsiByQAIAggCCgCACgCAEEAEOsEIAcgCCABIAJBAEEAQQAQswYgBygCCCECIAdBEGokACAIIAVBBGoiASAFQZgBaiACELIGIAhBAToAKCAFIAI2AhAgBCAFQRBqIgIQtwEgBSgCBCAFKAKYASAGEJ8JIAIgCSABELoDIANBAWohAwwB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IAEoAiQgACgCLEwFQQALC0gBAnwCf0F/IAAoAgAiACsDCCICIAEoAgAiASsDCCIDYw0AGkEBIAIgA2QNABpBfyAAKwMAIgIgASsDACIDYw0AGiACIANkCwtOAQJ/IAAQGiIBBEADQCABBEAgACABECkhAgNAIAIEQCACEMkCIAAgAhAsIQIMAQsLIAEQ/gIgACABEBshAQwBCwsgACgCECgCmAEQFwsL2AYCCX8BfCMAQdAAayICJAAgABA1BEAgACIBQQIQigIgABA0KAIQQQI7AbABQayDC0ECOwEAIAAQNSIAQTgQGCEFIABBAWpBBBAYIQAgASgCECAANgKYASABEBohAANAIAAEQCAAEI0EIAAoAhAgBSADQThsajYCgAEgASgCECgCmAEgA0ECdGogADYCACADQQFqIQMgASAAEBshAAwBCwsgARAaIQMDQCADBEAgASADECkhAANAIAAEQCAAQcsoQbgBQQEQMRogABCoAyAAQdSECygCAEQAAAAAAADwP0QAAAAAAAAAABBQIQogACgCECAKOQOAASABIAAQLCEADAELCyABIAMQGyEDDAELCwJ/QQEgAUGkHBAjIgBFDQAaIAAtAAAEQEEBIAEgAEEAEIgBIgQNARogAiAANgIQQeeaAyACQRBqECdB47MEQQAQfAtBACEEQQALIQggAUEBQaQcQQAQICEDAkAgAUG3nwEQIyIARQ0AIAAtAABFDQAgAiACQcgAajYCBCACIAJBQGs2AgAgAEG2iAEgAhBJQQFHDQAgAiACKwNAOQNICyABEDUEQCABIAJBPGoQjQYhBwJAIAIoAjxBAUYEQAJAIAQiAA0AIAMEQCABIAMQxAoiAA0BC0EAIQALIAQgASAAEMkKIgUgBBshBiADRSAAckUEQCAFIANBsowDEGkLIAQgBiAIGyEEIAEQGiIAKAIQKAKAARAXIAAoAhBBADYCgAEgARCTBBoMAQsgAUECQQggAkEcahC2AxogAkEAOgAoA0AgAigCPCAGTQRAIAEQGiIAKAIQKAKAARAXIAAoAhBBADYCgAEgAigCPCAHIAEgAkEcahDUBAUgByAGQQJ0aigCACEFAkAgBARAIAUgBCIAEKoBDQELIAMEQCAFIAMQxAoiAA0BC0EAIQALIAVBABCgAxogA0UgAEEAIAAgBCAEIAUgABDJCiIJIAQb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AWoQIkUNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEPkLOAIAIABBzAFqIABBEGogACgCDCAEEK4BIABB7AJqIABB6AJqEFkEQCAEIAQoAgBBAnI2AgALIAAoAuwCIAEQLxogAEHMAWoQLxogAEHwAmokAAuZAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQoQIhBiADIABB0AFqEJsEIQcgAEHEAWogAyAAQcQCahCaBCAAQbgBahBNIgEgARBREDogACABQQAQPSICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBZDQAgACgCtAEgARAiIAJqRgRAIAEQIiEDIAEgARAiQQF0EDogASABEFEQOiAAIAMgAUEAED0iAmo2ArQBCyAAQcwCaiIDEH4gBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQzQMNACADEJEBGgwBCwsCQCAAQcQBahAiRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEPoLNwMAIABBxAFqIABBEGogACgCDCAEEK4BIABBzAJqIABByAJqEFkEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQLxogAEHEAWoQLxogAEHQAmokAAuZAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQoQIhBiADIABB0AFqEJsEIQcgAEHEAWogAyAAQcQCahCaBCAAQbgBahBNIgEgARBREDogACABQQAQPSICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBZDQAgACgCtAEgARAiIAJqRgRAIAEQIiEDIAEgARAiQQF0EDogASABEFEQOiAAIAMgAUEAED0iAmo2ArQBCyAAQcwCaiIDEH4gBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQzQMNACADEJEBGgwBCwsCQCAAQcQBahAiRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEP0LOwEAIABBxAFqIABBEGogACgCDCAEEK4BIABBzAJqIABByAJqEFkEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQLxogAEHEAWoQLxogAEHQAmokAAuZAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQoQIhBiADIABB0AFqEJsEIQcgAEHEAWogAyAAQcQCahCaBCAAQbgBahBNIgEgARBREDogACABQQAQPSICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBZDQAgACgCtAEgARAiIAJqRgRAIAEQIiEDIAEgARAiQQF0EDogASABEFEQOiAAIAMgAUEAED0iAmo2ArQBCyAAQcwCaiIDEH4gBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQzQMNACADEJEBGgwBCwsCQCAAQcQBahAiRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEP4LNwMAIABBxAFqIABBEGogACgCDCAEEK4BIABBzAJqIABByAJqEFkEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQLxogAEHEAWoQLxogAEHQAmokAAuZAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQoQIhBiADIABB0AFqEJsEIQcgAEHEAWogAyAAQcQCahCaBCAAQbgBahBNIgEgARBREDogACABQQAQPSICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBZDQAgACgCtAEgARAiIAJqRgRAIAEQIiEDIAEgARAiQQF0EDogASABEFEQOiAAIAMgAUEAED0iAmo2ArQBCyAAQcwCaiIDEH4gBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQzQMNACADEJEBGgwBCwsCQCAAQcQBahAiRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEP8LNgIAIABBxAFqIABBEGogACgCDCAEEK4BIABBzAJqIABByAJqEFkEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQLxogAEHEAWoQLxogAEHQAmokAAvtAQEBfyMAQSBrIgYkACAGIAE2AhwCQCADKAIEQQFxRQRAIAZBfzYCACAAIAEgAiADIAQgBiAAKAIAKAIQEQkAIQECQAJAAkAgBigCAA4CAAECCyAFQQA6AAAMAwsgBUEBOgAADAILIAVBAToAACAEQQQ2AgAMAQsgBiADEEwgBhDDASEBIAYQSCAGIAMQTCAGEM4DIQAgBhBIIAYgABDxASAGQQxyIAAQ8AEgBSAGQRxqIAIgBiAGQRhqIgMgASAEQQEQoAUgBkY6AAAgBigCHCEBA0AgA0EMaxByIgMgBkcNAAsLIAZBIGokACABC+YCAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHEAWoQTSEGIABBEGoiAiADEEwgAhDEAUHArglB2q4JIABB0AFqEOcCIAIQSCAAQbgBahBNIgMgAxBREDogACADQQAQPSIBNgK0ASAAIAI2AgwgAEEANgIIA0ACQCAAQfwBaiAAQfgBahBaDQAgACgCtAEgAxAiIAFqRgRAIAMQIiECIAMgAxAiQQF0EDogAyADEFEQOiAAIAIgA0EAED0iAWo2ArQBCyAAQfwBaiICEH9BECABIABBtAFqIABBCGpBACAGIABBEGogAEEMaiAAQdABahDPAw0AIAIQkgEaDAELCyADIAAoArQBIAFrEDogAxA/EGYgACAFNgIAIAAQ9gtBAUcEQCAEQQQ2AgALIABB/AFqIABB+AFqEFoEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAMQLxogBhAvGiAAQYACaiQAC88DAQF+IwBBkAJrIgAkACAAIAI2AogCIAAgATYCjAIgAEHQAWogAyAAQeABaiAAQd8BaiAAQd4BahCjByAAQcQBahBNIgEgARBREDogACABQQAQPSICNgLAASAAIABBIGo2AhwgAEEANgIYIABBAToAFyAAQcUAOgAWA0ACQCAAQYwCaiAAQYgCahBaDQAgACgCwAEgARAiIAJqRgRAIAEQIiEDIAEgARAiQQF0EDogASABEFEQOiAAIAMgAUEAED0iAmo2AsABCyAAQYwCaiIDEH8gAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQogcNACADEJIBGgwBCwsCQCAAQdABahAiRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQ9wsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQrgEgAEGMAmogAEGIAmoQWgRAIAQgBCgCAEECcjYCAAsgACgCjAIgARAvGiAAQdABahAvGiAAQZACaiQAC7gDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQowcgAEG0AWoQTSIBIAEQURA6IAAgAUEAED0iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQWg0AIAAoArABIAEQIiACakYEQCABECIhAyABIAEQIkEBdBA6IAEgARBREDogACADIAFBABA9IgJqNgKwAQsgAEH8AWoiAxB/IABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEKIHDQAgAxCSARoMAQsLAkAgAEHAAWoQIkUNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEPgLOQMAIABBwAFqIABBEGogACgCDCAEEK4BIABB/AFqIABB+AFqEFoEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQLxogAEHAAWoQLxogAEGAAmokAAu4AwAjAEGAAmsiACQAIAAgAjYC+AEgACABNgL8ASAAQcABaiADIABB0AFqIABBzwFqIABBzgFqEKMHIABBtAFqEE0iASABEFEQOiAAIAFBABA9IgI2ArABIAAgAEEQajYCDCAAQQA2AgggAEEBOgAHIABBxQA6AAYDQAJAIABB/AFqIABB+AFqEFoNACAAKAKwASABECIgAmpGBEAgARAiIQMgASABECJBAXQQOiABIAEQURA6IAAgAyABQQAQPSICajYCsAELIABB/AFqIgMQfyAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahCiBw0AIAMQkgEaDAELCwJAIABBwAFqECJFDQAg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Z3JhcGh2aXoAZ3Z3cml0ZV9ub196AHBvcnRob3h5AHNjYWxleHkAL3N2Zy9uYXZ5AGludmVtcHR5AG5vZGVfc2V0X2lzX2VtcHR5AG5vZGVzX2lzX2VtcHR5AHJlZmVyZW5jZSB0byBiaW5hcnkgZW50aXR5AGFzeW5jaHJvbm91cyBlbnRpdHkAaW5jb21wbGV0ZSBtYXJrdXAgaW4gcGFyYW1ldGVyIGVudGl0eQBlbnRpdHkgZGVjbGFyZWQgaW4gcGFyYW1ldGVyIGVudGl0eQBjYW5ub3Qgc3VzcGVuZCBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXR5AFhNTCBvciB0ZXh0IGRlY2xhcmF0aW9uIG5vdCBhdCBzdGFydCBvZiBlbnRpdHkAdW5kZWZpbmVkIGVudGl0eQBwYXJzZXItPm1fb3BlbkludGVybmFsRW50aXRpZXMgPT0gb3BlbkVudGl0eQBwYXJzZXItPm1fb3BlblZhbHVlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBwYXJzZXItPm1fb3BlbkF0dHJpYnV0ZUVudGl0aWVzID09IG9wZW5FbnRpdHkAaW5maW5pdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAciAmJiBuICYmIG5ldwBza2V3AHN0cnZpZXcAL3N2Zy9ob25leWRldwAgLWFuY2hvciB3AHNvcnR2AHBvdjpwb3YATm92AGludgBlcXVpdgBwaXYAbm9uYW1lLmd2AGNjJXNfJXp1AGNjJXMrJXp1AC9zdmcvcGVydQBudQBtdQAlYyVsbHUAVGh1AHRhdQBUYXUATnUATXUAX3BvcnRfJXNfKCVkKV8oJWQpXyV1AHBsYWludGV4dAA8dGV4dABzdHJlc3N3dABpbnB1dAB0ZXh0bGF5b3V0AGRvdF9sYXlvdXQAbmVhdG9fbGF5b3V0AGluaXRMYXlvdXQAY2x1c3QAbWFwQ2x1c3QAbGFiZWxqdXN0AHNjQWRqdXN0AEF1Z3VzdABlZGdlc2ZpcnN0AG5vZGVzZmlyc3QAbWF4aW1hbF9pbmRlcGVuZGVudF9lZGdlX3NldF9oZWF2ZXN0X2VkZ2VfcGVybm9kZV9zdXBlcm5vZGVzX2ZpcnN0AGV4aXN0AHJlYWxpZ25Ob2RlbGlzdABhcHBlbmROb2RlbGlzdABkZWZhdWx0ZGlzdABtaW5kaXN0AHBvd2VyX2Rpc3QAZ3JhcGhfZGlzdABhdmdfZGlzdABnZXRFZGdlTGlzdABpcXVlc3QAbG93YXN0AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19mYXN0AGd2X3NvcnQAdmlld3BvcnQAdGFpbHBvcnQAdW5leHBlY3RlZCBwYXJzZXIgc3RhdGUgLSBwbGVhc2Ugc2VuZCBhIGJ1ZyByZXBvcnQAaGVhZHBvcnQAaHRtbF9wb3J0AGluc2VydABSVHJlZUluc2VydABmaW5kU1ZlcnQAc3RhcnQAcGFydABlc3RpbWF0ZV90ZXh0X3dpZHRoXzFwdABxdW90AH9yb290AG5vdABlbWl0X3hkb3QAeGRvdDp4ZG90AGVwczp4ZG90AHN2Zzp4ZG90AGpwZzp4ZG90AHBuZzp4ZG90AGpwZWc6eGRvdABnaWY6eGRvdABqcGU6eGRvdAB4ZG90MS40Onhkb3QAeGRvdDEuMjp4ZG90AHNkb3QAbWlkZG90AGd2OmRvdABwbGFpbi1leHQ6ZG90AGRvdDpkb3QAZXBzOmRvdABjYW5vbjpkb3QAcGxhaW46ZG90AHN2Zzpkb3QAanBnOmRvdABwbmc6ZG90AGpwZWc6ZG90AGdpZjpkb3QAanBlOmRvdAB/Ym90AGRvRG90AG9iamxpc3RfZnJvbnQAcG9pbnRzX2Zyb250AGNvbG9yc2Vnc19mcm9udABub2RlbGlzdF9wb3BfZnJvbnQAcGJzX3NpemVfZnJvbnQAc3Bhbi0+Zm9udAB2YWd4YnByaW50AGxvY2F0ZV9lbmRwb2ludAB4ZG90X3BvaW50AGRlY2lkZV9wb2ludABVbnNhdGlzZmllZCBjb25zdHJhaW50AHRyYW5zcGFyZW50AGNvbXBvbmVudABpbnZhbGlkIGFyZ3VtZW50AGNvbW1lbnQAanVuayBhZnRlciBkb2N1bWVudCBlbGVtZW50AGNlbnQAaSA9PSBlY250AGFyaWFsbXQAbHQAY2lyY3VpdABwb2x5X2luaXQATXVsdGlsZXZlbF9pbml0AG5zbGltaXQAbWNsaW1pdABQb3J0cmFpdABsaWdodAB2aXJ0dWFsX3dlaWdodABsaGVpZ2h0AEtQX1JpZ2h0AEJvb2ttYW4tTGlnaHQAZ3QAS1BfTGVmdABhZ3hzZXQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG5vZGVsaXN0X3NldABpbnRzX3NldABub2Rlc19zZXQAc2NhcmxldAAvc3ZnL2Rhcmt2aW9sZXQAL3N2Zy9ibHVldmlvbGV0AC9zdmcvdmlvbGV0AFRyZWJ1Y2hldABhZ3hnZXQAdGFpbHRhcmdldABsYWJlbHRhcmdldABlZGdldGFyZ2V0AGhlYWR0YXJnZXQAYml0YXJyYXlfZ2V0AGRlZ2xpc3RfZ2V0AG5vZGVsaXN0X2dldABhZGpfbGlzdF9nZXQAc2VnX2xpc3RfZ2V0AHNhbWVfbGlzdF9nZXQAZWRnZV9saXN0X2dldABzZm9udF9nZXQAcm93c19nZXQAcG9pbnRzX2dldABwYWlyc19nZXQAY2VsbHNfZ2V0AEFncmFwaHNfZ2V0AGNvbG9yc2Vnc19nZXQAYm94ZXNfZ2V0AHRyaWFuZ2xlc19nZXQAY3ljbGVzX2dldABub2Rlc19nZXQAZXN0YWNrX2dldABpbnRfc3RhY2tfZ2V0AG5vZGVfc3RhY2tfZ2V0AGJlemllcl9wYXRoX2dldABub2RlX3F1ZXVlX2dldABzdHlsZXNoZWV0AHN0cmljdABhZ2NvcHlkaWN0AGFnbWFrZWRhdGFkaWN0AHJlYy0+ZGljdCA9PSBkYXRhZGljdAB3cml0ZV9kaWN0AHNlY3QAZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNvcnJlY3QAYXNwZWN0AGxheWVyc2VsZWN0AENvbWJpbmVSZWN0AEtQX1N1YnRyYWN0AFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABjb21wYWN0AE9jdAByZXF1ZXN0ZWQgZmVhdHVyZSByZXF1aXJlcyBYTUxfRFREIHN1cHBvcnQgaW4gRXhwYXQAbGFiZWxmbG9hdABsYWJlbF9mbG9hdABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2Zvcm1hdAAvc3ZnL3doZWF0AGRlZ2xpc3RfYXQAbm9kZWxpc3RfYXQAYWRqX2xpc3RfYXQAc2FtZV9saXN0X2F0AHBvaW50c19hdABBZ3JhcGhzX2F0AGNvbG9yc2Vnc19hdAB0cmlhbmdsZXNfYXQAU2F0AEFncmFwaGluZm9fdABBZ2VkZ2VpbmZvX3QAQWdub2RlaW5mb190AFx0AGZsYXRpbmRleChhZ2hlYWQoZSkpIDwgTS0+bnJvd3MAaXNfYW5vbnltb3VzAG1pbnVzAG9wbHVzAGhlYXJ0cwBzYW1wbGVwb2ludHMAZGlyZWRnZWNvbnN0cmFpbnRzAGxldmVsIGFzc2lnbm1lbnQgY29uc3RyYWludHMAeHkgcHNldWRvLW9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggcHNldWRvLW9ydGhvZ29uYWwgY29uc3RyYWludHMAeHkgb3J0aG9nb25hbCBjb25zdHJhaW50cwB5eCBvcnRob2dvbmFsIGNvbnN0cmFpbnRzAGxpbmUgc2VnbWVudHMAc2V0X2NlbGxfaGVpZ2h0cwByZWN0cwBhY2NvdW50aW5nUmVwb3J0U3RhdHMAZW50aXR5VHJhY2tpbmdSZXBvcnRTdGF0cwBaYXBmRGluZ2JhdHMAcmVtaW5jcm9zcwBjb21wcmVzcwBndnVzZXJzaGFwZV9maWxlX2FjY2VzcwBicmFzcwBjbGFzcwBhcHBseWF0dHJzAGFnbWFrZWF0dHJzAGJpbmRhdHRycwBwYXJzZV9sYXllcnMAbWtDbHVzdGVycwByb3VuZF9jb3JuZXJzAG1ha2VfYmFycmllcnMAY2RhdGEubnRvcGxldmVsID09IGFnbm5vZGVzKGcpIC0gY2RhdGEubnZhcnMAY2Fubm90IHJlYWxsb2Mgb3BzAGNhbm5vdCByZWFsbG9jIHBubHBzAGVwcwBjb3JlX2xvYWRpbWFnZV9wcwBlcHM6cHMAcHMyOnBzAChsaWIpOnBzAGd2X3RyaW1femVyb3MAYWd4YnVmX3RyaW1femVyb3MAdGV4Z3lyZWhlcm9zAGltYWdlcG9zAHRpbm9zAHNldEVkZ2VMYWJlbFBvcwBTZXR0aW5nIGluaXRpYWwgcG9zaXRpb25zAHhsaW50ZXJzZWN0aW9ucwBjb2x1bW5zAG5vZGVzX2NvbnRhaW5zAGRlamF2dXNhbnMAbmltYnVzc2FucwBsaWJlcmF0aW9uc2FucwBmcmVlc2FucwBPcGVuU2FucwBvZmZzZXQgPT0gbl90ZXJtcwBkaXRlbXMAZGlhbXMAZmxhdGluZGV4KGFndGFpbChlKSkgPCBNLT5uY29scwBjYW5ub3QgcmVhbGxvYyBkcS5wbmxzAGNhbm5vdCByZWFsbG9jIHBubHMAbGV2ZWxzAGZvcmNlbGFiZWxzAGRpYWdvbmFscwBtZXJnZV9yYW5rcwBvYmpwbHBta3MAc3BsaXRCbG9ja3MAaW52aXMAY2Fubm90IHJlYWxsb2MgdHJpcwBzZXRfY2VsbF93aWR0aHMAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHMAeWVzAHNob3dib3hlcwBiZWF1dGlmeV9sZWF2ZXMAYXR0YWNoX2VkZ2VfbGFiZWxfY29vcmRpbmF0ZXMAcG9seWxpbmVzAHNwbGluZXMAb3J0aG9nb25hbCBsaW5lcwB0ZXhneXJldGVybWVzAG90aW1lcwBUaW1lcwBmb250bmFtZXMAcHJlZml4IG11c3Qgbm90IGJlIGJvdW5kIHRvIG9uZSBvZiB0aGUgcmVzZXJ2ZWQgbmFtZXNwYWNlIG5hbWVzAFNwYXJzZU1hdHJpeF9zdW1fcmVwZWF0X2VudHJpZXMAcGVyaXBoZXJpZXMAR2V0QnJhbmNoZXMAZiA8IGdyYXBoW2pdLm5lZGdlcwBtaW5tYXhfZWRnZXMAbWFrZVN0cmFpZ2h0RWRnZXMAdW5kb0NsdXN0ZXJFZGdlcwBjb21wb3VuZEVkZ2VzAG1lcmdlX3RyZWVzAF9fY2x1c3Rlcm5vZGVzAGFnbm5vZGVzAE5EX2lkKG5wKSA9PSBuX25vZGVzAExvYWROb2RlcwBzaWRlcwBzcGFkZXMAdmVydGljZXMAY29vcmRzAHNldGJvdW5kcwBtZHMAY2RzAG1ha2VTZWxmQXJjcwBlbWl0X2VkZ2VfZ3JhcGhpY3MAY2x1YnMAY29uc29sYXMAJWxmJTJzAApTdHJpbmcgc3RhcnRpbmc6PCUuODBzAApTdHJpbmcgc3RhcnRpbmc6IiUuODBzACAlLipzACUuKnMlcyVzAGV4cGF0OiBBY2NvdW50aW5nKCVwKTogRGlyZWN0ICUxMGxsdSwgaW5kaXJlY3QgJTEwbGx1LCBhbXBsaWZpY2F0aW9uICU4LjJmJXMAICVzOiVzAF9fJWQ6JXMALyVzLyVzACVzLSVzACwlcwAgZm9udC1mYW1pbHk9IiVzACIgc3Ryb2tlLWRhc2hhcnJheT0iJXMAIiBjbGFzcz0iJXMAcG9seSAlcwAoKCVmLCVmKSwoJWYsJWYpKSAlcyAlcwBjb2xvciAlcwAgVGl0bGU6ICVzACJzdHJpY3QiOiAlcwByICYmIHMAY291cgB1dHIAYXBwZW5kYXR0cgBhZGRhdHRyAGJlZ2luc3RyAHN0cnZpZXdfc3RyAHBvdl9jb2xvcl9hc19zdHIAdnBzYyE9bnVsbHB0cgBiZW5kVG9TdHIAdWFycgBjcmFycgBsYXJyAGhhcnIAZGFycgB1QXJyAHJBcnIAbEFycgBoQXJyAGRBcnIAciAmJiBycgBBcHIAU3BhcnNlTWF0cml4X211bHRpcGx5X3ZlY3RvcgB0ZXJtaW5hdG9yAGluc3VsYXRvcgBpbnRlcm5hbEVudGl0eVByb2Nlc3NvcgB0ZXhneXJlY3Vyc29yAHN5bnRheCBlcnJvcgBtb25leV9nZXQgZXJyb3IARXJyb3IAcmZsb29yAGxmbG9vcgBsYWJlbGZvbnRjb2xvcgBwZW5jb2xvcgBmaWxsY29sb3IAYmdjb2xvcgByb3cgbWFqb3IAY29sdW1uIG1ham9yAG5laWdoYm9yAHN0eWxlX29yAG1yAHJhbmtkaXIAcGFnZWRpcgBsYXllcgBOb2RlQ292ZXIAL3N2Zy9zaWx2ZXIAY2x1c3RlcgBleHBhbmRDbHVzdGVyAHJwcm9tb3RlcgBscHJvbW90ZXIAY2VudGVyAG1heGl0ZXIAcGFydGlhbCBjaGFyYWN0ZXIAISByb290UGFyc2VyLT5tX3BhcmVudFBhcnNlcgBka2dyZWVuY29wcGVyAGNvb2xjb3BwZXIAZ3Zfc29ydF9jb21wYXJfd3JhcHBlcgB0YXBlcgBvdmVybGFwX2JlemllcgBmaWdfYmV6aWVyAGNvdXJpZXIAQ291cmllcgBoaWVyAGRhZ2dlcgBEYWdnZXIAb3V0cHV0b3JkZXIAcG9zdG9yZGVyAGZsYXRfcmVvcmRlcgBjZWxsYm9yZGVyAGZpeExhYmVsT3JkZXIAY3lsaW5kZXIAL3N2Zy9sYXZlbmRlcgByZW5kZXIAZm9sZGVyAGNsdXN0ZXJfbGVhZGVyAE5EX1VGX3NpemUobikgPD0gMSB8fCBuID09IGxlYWRlcgBPY3RvYmVyAHJlZmVyZW5jZSB0byBpbnZhbGlkIGNoYXJhY3RlciBudW1iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAG1hY3IAYnIAc3RhcgBmZWxkc3BhcgByZWd1bGFyAGh0ZXh0c3BhbnNfY2xlYXIAaW9zX2Jhc2U6OmNsZWFyAGJydmJhcgBNYXIAXHIATkRfcmFuayh2KSA9PSByAHN0cmVxAHN0cnZpZXdfZXEAc3Rydmlld19zdHJfZXEAc3Rydmlld19jYXNlX3N0cl9lcQBzdHJ2aWV3X2Nhc2VfZXEAdnAAJSVCZWdpblByb2xvZwovRG90RGljdCAyMDAgZGljdCBkZWYKRG90RGljdCBiZWdpbgoKL3NldHVwTGF0aW4xIHsKbWFyawovRW5jb2RpbmdWZWN0b3IgMjU2IGFycmF5IGRlZgogRW5jb2RpbmdWZWN0b3IgMAoKSVNPTGF0aW4xRW5jb2RpbmcgMCAyNTUgZ2V0aW50ZXJ2YWwgcHV0aW50ZXJ2YWwKRW5jb2RpbmdWZWN0b3IgNDUgL2h5cGhlbiBwdXQKCiUgU2V0IHVwIElTTyBMYXRpbiAxIGNoYXJhY3RlciBlbmNvZGluZwovc3Rhcm5ldElTTyB7CiAgICAgICAgZHVwIGR1cCBmaW5kZm9udCBkdXAgbGVuZ3RoIGRpY3QgYmVnaW4KICAgICAgICB7IDEgaW5kZXggL0ZJRCBuZSB7IGRlZiB9eyBwb3AgcG9wIH0gaWZlbHNlCiAgICAgICAgfSBmb3JhbGwKICAgICAgICAvRW5jb2RpbmcgRW5jb2RpbmdWZWN0b3IgZGVmCiAgICAgICAgY3VycmVudGRpY3QgZW5kIGRlZmluZWZvbnQKfSBkZWYKL1RpbWVzLVJvbWFuIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1JdGFsaWMgc3Rhcm5ldElTTyBkZWYKL1RpbWVzLUJvbGQgc3Rhcm5ldElTTyBkZWYKL1RpbWVzLUJvbGRJdGFsaWMgc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYSBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1Cb2xkIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZE9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXIgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCmNsZWFydG9tYXJrCn0gYmluZCBkZWYKCiUlQmVnaW5SZXNvdXJjZTogcHJvY3NldCBncmFwaHZpeiAwIDAKL2Nvb3JkLWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2RlZmF1bHQtZm9udC1mYW1pbHkgL1RpbWVzLVJvbWFuIGRlZgovY29vcmRmb250IGNvb3JkLWZvbnQtZmFtaWx5IGZpbmRmb250IDggc2NhbGVmb250IGRlZgoKL0ludlNjYWxlRmFjdG9yIDEuMCBkZWYKL3NldF9zY2FsZSB7CiAgICAgICBkdXAgMSBleGNoIGRpdiAvSW52U2NhbGVGYWN0b3IgZXhjaCBkZWYKICAgICAgIHNjYWxlCn0gYmluZCBkZWYKCiUgc3R5bGVzCi9zb2xpZCB7IFtdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kYXNoZWQgeyBbOSBJbnZTY2FsZUZhY3RvciBtdWwgZHVwIF0gMCBzZXRkYXNoIH0gYmluZCBkZWYKL2RvdHRlZCB7IFsxIEludlNjYWxlRmFjdG9yIG11bCA2IEludlNjYWxlRmFjdG9yIG11bF0gMCBzZXRkYXNoIH0gYmluZCBkZWYKL2ludmlzIHsvZmlsbCB7bmV3cGF0aH0gZGVmIC9zdHJva2Uge25ld3BhdGh9IGRlZiAvc2hvdyB7cG9wIG5ld3BhdGh9IGRlZn0gYmluZCBkZWYKL2JvbGQgeyAyIHNldGxpbmV3aWR0aCB9IGJpbmQgZGVmCi9maWxsZWQgeyB9IGJpbmQgZGVmCi91bmZpbGxlZCB7IH0gYmluZCBkZWYKL3JvdW5kZWQgeyB9IGJpbmQgZGVmCi9kaWFnb25hbHMgeyB9IGJpbmQgZGVmCi90YXBlcmVkIHsgfSBiaW5kIGRlZgoKJSBob29rcyBmb3Igc2V0dGluZyBjb2xvciAKL25vZGVjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYKL2VkZ2Vjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYKL2dyYXBoY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ub3Bjb2xvciB7cG9wIHBvcCBwb3B9IGJpbmQgZGVmCgovYmVnaW5wYWdlIHsJJSBpIGogbnBhZ2VzCgkvbnBhZ2VzIGV4Y2ggZGVmCgkvaiBleGNoIGRlZgoJL2kgZXhjaCBkZWYKCS9zdHIgMTAgc3RyaW5nIGRlZgoJbnBhZ2VzIDEgZ3QgewoJCWdzYXZlCgkJCWNvb3JkZm9udCBzZXRmb250CgkJCTAgMCBtb3ZldG8KCQkJKFwoKSBzaG93IGkgc3RyIGN2cyBzaG93ICgsKSBzaG93IGogc3RyIGN2cyBzaG93IChcKSkgc2hvdwoJCWdyZXN0b3JlCgl9IGlmCn0gYmluZCBkZWYKCi9zZXRfZm9udCB7CglmaW5kZm9udCBleGNoCglzY2FsZWZvbnQgc2V0Zm9udAp9IGRlZgoKJSBkcmF3IHRleHQgZml0dGVkIHRvIGl0cyBleHBlY3RlZCB3aWR0aAovYWxpZ25lZHRleHQgewkJCSUgd2lkdGggdGV4dAoJL3RleHQgZXhjaCBkZWYKCS93aWR0aCBleGNoIGRlZgoJZ3NhdmUKCQl3aWR0aCAwIGd0IHsKCQkJW10gMCBzZXRkYXNoCgkJCXRleHQgc3RyaW5nd2lkdGggcG9wIHdpZHRoIGV4Y2ggc3ViIHRleHQgbGVuZ3RoIGRpdiAwIHRleHQgYXNob3cKCQl9IGlmCglncmVzdG9yZQp9IGRlZgoKL2JveHByaW0gewkJCQklIHhjb3JuZXIgeWNvcm5lciB4c2l6ZSB5c2l6ZQoJCTQgMiByb2xsCgkJbW92ZXRvCgkJMiBjb3B5CgkJZXhjaCAwIHJsaW5ldG8KCQkwIGV4Y2ggcmxpbmV0bwoJCXBvcCBuZWcgMCBybGluZXRvCgkJY2xvc2VwYXRoCn0gYmluZCBkZWYKCi9lbGxpcHNlX3BhdGggewoJL3J5IGV4Y2ggZGVmCgkvcnggZXhjaCBkZWYKCS95IGV4Y2ggZGVmCgkveCBleGNoIGRlZgoJbWF0cml4IGN1cnJlbnRtYXRyaXgKCW5ld3BhdGgKCXggeSB0cmFuc2xhdGUKCXJ4IHJ5IHNjYWxlCgkwIDAgMSAwIDM2MCBhcmMKCXNldG1hdHJpeAp9IGJpbmQgZGVmCgovZW5kcGFnZSB7IHNob3dwYWdlIH0gYmluZCBkZWYKL3Nob3dwYWdlIHsgfSBkZWYKCi9sYXllcmNvbG9yc2VxCglbCSUgbGF5ZXIgY29sb3Igc2VxdWVuY2UgLSBkYXJrZXN0IHRvIGxpZ2h0ZXN0CgkJWzAgMCAwXQoJCVsuMiAuOCAuOF0KCQlbLjQgLjggLjhdCgkJWy42IC44IC44XQoJCVsuOCAuOCAuOF0KCV0KZGVmCgovbGF5ZXJsZW4gbGF5ZXJjb2xvcnNlcSBsZW5ndGggZGVmCgovc2V0bGF5ZXIgey9tYXhsYXllciBleGNoIGRlZiAvY3VybGF5ZXIgZXhjaCBkZWYKCWxheWVyY29sb3JzZXEgY3VybGF5ZXIgMSBzdWIgbGF5ZXJsZW4gbW9kIGdldAoJYWxvYWQgcG9wIHNldGhzYmNvbG9yCgkvbm9kZWNvbG9yIHtub3Bjb2xvcn0gZGVmCgkvZWRnZWNvbG9yIHtub3Bjb2xvcn0gZGVmCgkvZ3JhcGhjb2xvciB7bm9wY29sb3J9IGRlZgp9IGJpbmQgZGVmCgovb25sYXllciB7IGN1cmxheWVyIG5lIHtpbnZpc30gaWYgfSBkZWYKCi9vbmxheWVycyB7CgkvbXl1cHBlciBleGNoIGRlZgoJL215bG93ZXIgZXhjaCBkZWYKCWN1cmxheWVyIG15bG93ZXIgbHQKCWN1cmxheWVyIG15dXBwZXIgZ3QKCW9yCgl7aW52aXN9IGlmCn0gZGVmCgovY3VybGF5ZXIgMCBkZWYKCiUlRW5kUmVzb3VyY2UKJSVFbmRQcm9sb2cKJSVCZWdpblNldHVwCjE0IGRlZmF1bHQtZm9udC1mYW1pbHkgc2V0X2ZvbnQKJSAvYXJyb3dsZW5ndGggMTAgZGVmCiUgL2Fycm93d2lkdGggNSBkZWYKCiUgbWFrZSBzdXJlIHBkZm1hcmsgaXMgaGFybWxlc3MgZm9yIFBTLWludGVycHJldGVycyBvdGhlciB0aGFuIERpc3RpbGxlcgovcGRmbWFyayB3aGVyZSB7cG9wfSB7dXNlcmRpY3QgL3BkZm1hcmsgL2NsZWFydG9tYXJrIGxvYWQgcHV0fSBpZmVsc2UKJSBtYWtlICc8PCcgYW5kICc+Picgc2FmZSBvbiBQUyBMZXZlbCAxIGRldmljZXMKL2xhbmd1YWdlbGV2ZWwgd2hlcmUge3BvcCBsYW5ndWFnZWxldmVsfXsxfSBpZmVsc2UKMiBsdCB7CiAgICB1c2VyZGljdCAoPDwpIGN2biAoWykgY3ZuIGxvYWQgcHV0CiAgICB1c2VyZGljdCAoPj4pIGN2biAoWykgY3ZuIGxvYWQgcHV0Cn0gaWYKCiUlRW5kU2V0dXAAc3VwAGdyb3VwAGN1cAB0aGluc3AAZW5zcABlbXNwAG5ic3AAcGVycAB3ZWllcnAAZ2VuZXJhdGUtY29uc3RyYWludHMuY3BwAGJsb2NrLmNwcABjc29sdmVfVlBTQy5jcHAAf3RvcABwcm9wAGFneGJwb3AAbm9wAGFzeW1wAGNvbXAAZmluZENDb21wAGJtcABzY2FsZV9jbGFtcAB4bHAAbHAgIT0gY2xwAHRhaWxfbHAAaGVhZF9scAB0YWlsdG9vbHRpcABsYWJlbHRvb2x0aXAAZWRnZXRvb2x0aXAAaGVhZHRvb2x0aXAAaGVsbGlwAHRhaWxjbGlwAGhlYWRjbGlwAC9zdmcvcGFwYXlhd2hpcABocAB0cmFuc3Bvc2Vfc3RlcABjb21wdXRlU3RlcABsYXllcmxpc3RzZXAAbGF5ZXJzZXAAaXBzZXAAcmFua3NlcABub2Rlc2VwAHN1YmdyYXBocyBuZXN0ZWQgbW9yZSB0aGFuICVkIGRlZXAAU2VwAHNmZHAAY3AAd2VicABpZG1hcABjbHVzdGVyX21hcABjbWFweDptYXAAZXBzOm1hcABjbWFweF9ucDptYXAAaW1hcF9ucDptYXAAaXNtYXA6bWFwAGltYXA6bWFwAGNtYXA6bWFwAHN2ZzptYXAAanBnOm1hcABwbmc6bWFwAGpwZWc6bWFwAGdpZjptYXAAanBlOm1hcABvdmVybGFwAE92ZXJsYXAAbGV2ZWxzZ2FwAGNhcABLUF9VcAAlSTolTTolUyAlcABzdGFydCA8PSBwAHJzcXVvAGxzcXVvAHJkcXVvAGxkcXVvAGJkcXVvAHNicXVvAHJzYXF1bwBsc2FxdW8AcmFxdW8AbGFxdW8AYXV0bwBOdW5pdG8AL3N2Zy90b21hdG8AbmVhdG8AZXVybwAvc3ZnL2dhaW5zYm9ybwBNZXRob2RaZXJvAG1pY3JvAG5pbWJ1c21vbm8AbGliZXJhdGlvbm1vbm8AZnJlZW1vbm8AYXJpbW8AcmF0aW8AcG9ydGhvAHJobwBSaG8AL3N2Zy9pbmRpZ28AcGluZm8AY2NncmFwaGluZm8AY2Nnbm9kZWluZm8AY2xfZWRnZV9pbmZvAGdldFBhY2tJbmZvAG1ha2VJbmZvAHBhcnNlUGFja01vZGVJbmZvAGNpcmNvAGljbwBcJTAzbwAvc3ZnL3Jvc3licm93bgAvc3ZnL3NhbmR5YnJvd24AdmVyeWRhcmticm93bgAvc3ZnL3NhZGRsZWJyb3duAC9zdmcvYnJvd24AS1BfRG93bgBjYW5ub3QgY2hhbmdlIHNldHRpbmcgb25jZSBwYXJzaW5nIGhhcyBiZWd1bgBTdW4ASnVuAHRob3JuAC9zdmcvY3JpbXNvbgB4ZG90X2pzb24AeGRvdF9qc29uOmpzb24AanNvbjA6anNvbgBvbWljcm9uAE9taWNyb24Ac2Nhcm9uAFNjYXJvbgB3ZWJtYXJvb24AeDExbWFyb29uAC9zdmcvbWFyb29uAC9zdmcvbGlnaHRzYWxtb24AL3N2Zy9kYXJrc2FsbW9uAC9zdmcvc2FsbW9uAHVwc2lsb24AZXBzaWxvbgBVcHNpbG9uAEVwc2lsb24AcmVzb2x1dGlvbgBkaXN0b3J0aW9uAHN0ZDo6ZXhjZXB0aW9uAGRvdF9wb3NpdGlvbgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAHBvc3RhY3Rpb24Acm90YXRpb24Ab3JpZW50YXRpb24AYWJvbWluYXRpb24AYWNjb3VudGluZ0dldEN1cnJlbnRBbXBsaWZpY2F0aW9uAHhkb3R2ZXJzaW9uAFNUc2V0VW5pb24APHBvbHlnb24AaGV4YWdvbgBzZXB0YWdvbgBwZW50YWdvbgB0cmlwbGVvY3RhZ29uAGRvdWJsZW9jdGFnb24AL3N2Zy9sZW1vbmNoaWZmb24ATW9uAHBsdXNtbgBub3RpbgBpc2luAC9zdmcvbW9jY2FzaW4AcGluAG1pbgB2b3JvX21hcmdpbgBpbmZpbgBvbmVkX29wdGltaXplcl90cmFpbgBwbGFpbgBtYWtlX2NoYWluAG1lcmdlX2NoYWluAGRlbGV0ZU1pbgBmaW5kTWluAHZhbGlnbgBiYWxpZ24AeWVuAE11bHRpbGV2ZWxfY29hcnNlbgBjdXJyZW4AUG9ic29wZW4AZ3ZfZm9wZW4AZ3Z1c2Vyc2hhcGVfb3BlbgBlbnRpdHlUcmFja2luZ09uT3BlbgAvc3ZnL2xpbmVuAGRpbWVuAG1pbmxlbgBzdHlsZV90b2tlbgB1bmNsb3NlZCB0b2tlbgAvc3ZnL3llbGxvd2dyZWVuAG1lZGl1bWZvcmVzdGdyZWVuAC9zdmcvZm9yZXN0Z3JlZW4AL3N2Zy9saWdodGdyZWVuAGh1bnRlcnNncmVlbgAvc3ZnL2xhd25ncmVlbgAvc3ZnL2RhcmtncmVlbgAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2xpbWVncmVlbgAvc3ZnL3BhbGVncmVlbgB3ZWJncmVlbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL2RhcmtzZWFncmVlbgAvc3ZnL3NlYWdyZWVuAHgxMWdyZWVuAC9zdmcvZ3JlZW4AR3JlZW4AL3N2Zy9saWdodGN5YW4AL3N2Zy9kYXJrY3lhbgAvc3ZnL2N5YW4AbmV3dGFuAGRhcmt0YW4AL3N2Zy90YW4Acm93c3BhbgBjb2xzcGFuAG5hbgB0aW1lc25ld3JvbWFuAG5pbWJ1c3JvbWFuAHRpbWVzcm9tYW4AVGltZXMtUm9tYW4AUGFsYXRpbm8tUm9tYW4ATmV3Q2VudHVyeVNjaGxiay1Sb21hbgBKYW4AR0RfcmFuayhnKVtyXS5uIDw9IEdEX3JhbmsoZylbcl0uYW4AYWd4YnB1dF9uAFxuAG5fbm9kZXMgPT0gZ3JhcGgtPm4AQS0+bSA9PSBBLT5uAGpvYi0+b2JqLT51Lm4AcywlbGYsJWxmJW4AIGUsJWxmLCVsZiVuACVkICUxWyJdJW4AdiA9PSBuAG56YyA9PSBuAGIgPT0gbgBuY2x1c3RlciA8PSBuAHIgJiYgbgBwc3ltAGFsZWZzeW0AdGhldGFzeW0AcXVhbnR1bQBzdW0AL3N2Zy9wbHVtAGludnRyYXBleml1bQBtZWRpdW0AOTpwcmlzbQBscm0AY3VzdG9tAGFwdHItPnRhZyA9PSBUX2F0b20AL2Rldi91cmFuZG9tAHJsbQBzaW0ASU1EU19naXZlbl9kaW0Ab3JkbQBwYXJhbGxlbG9ncmFtAC9zdmcvbWludGNyZWFtAEp1bAB0bABmcmFzbABTeW1ib2wAZmluZENvbAA8P3htbAB5dW1sAHV1bWwAb3VtbABpdW1sAGV1bWwAYXVtbABZdW1sAFV1bWwAT3VtbABJdW1sAEV1bWwAQXVtbABjb3JlX2xvYWRpbWFnZV92cm1sAGpwZzp2cm1sAHBuZzp2cm1sAGpwZWc6dnJtbABnaWY6dnJtbABqcGU6dnJtbABidWxsAGZpbGwAL3N2Zy9zZWFzaGVsbABmb3JhbGwAQXByaWwAcGVybWlsAHJjZWlsAGxjZWlsAGNjZWRpbABDY2VkaWwAYXJyb3d0YWlsAGx0YWlsAHNhbWV0YWlsAGxldmVsID49IDAgJiYgbGV2ZWwgPD0gbi0+bGV2ZWwAbGV2ZWwgPj0gMCAmJiBsZXZlbCA8PSAoKm4pLT5sZXZlbABzdHJlc3NfbWFqb3JpemF0aW9uX2tEX21rZXJuZWwAaXNfcGFyYWxsZWwAQ2FsY3VsYXRpbmcgY2lyY3VpdCBtb2RlbABDYWxjdWxhdGluZyBzdWJzZXQgbW9kZWwAQ2FsY3VsYXRpbmcgTURTIG1vZGVsAHhsYWJlbAB0YWlsbGFiZWwAaGVhZGxhYmVsAG1ha2VfbGFiZWwAZ3JhcGggbGFiZWwAaWV4Y2wAb2JqcC0+bGJsAG92YWwAbWVyZ2V2aXJ0dWFsAC9zdmcvbGlnaHRjb3JhbAAvc3ZnL2NvcmFsAFNwYXJzZU1hdHJpeF9mcm9tX2Nvb3JkaW5hdGVfYXJyYXlzX2ludGVybmFsAE11bHRpbGV2ZWxfY29hcnNlbl9pbnRlcm5hbABRdWFkVHJlZV9hZGRfaW50ZXJuYWwAYXJyb3dfbGVuZ3RoX25vcm1hbABhcmlhbAByYWRpYWwAL3N2Zy90ZWFsAHJlYWwAbG9jYWwAZXN0aW1hdGVfY2hhcmFjdGVyX3dpZHRoX2Nhbm9uaWNhbABnbG9iYWwAcS0+bAAuLi8uLi9saWIvY2dyYXBoL3NjYW4ubAB0azp0awBnaWY6dGsAcGF0Y2h3b3JrAHRvawBib29rAEF2YW50R2FyZGUtQm9vawBzaW5rAG92ZXJsYXBfc2hyaW5rAHNwaWN5cGluawAvc3ZnL2hvdHBpbmsAL3N2Zy9saWdodHBpbmsAL3N2Zy9kZWVwcGluawBuZW9ucGluawAvc3ZnL3BpbmsAbmV3cmFuawBjbHVzdGVycmFuawBfbmV3X3JhbmsAaW5zdGFsbF9pbl9yYW5rAHJlbW92ZV9mcm9tX3JhbmsAL3N2Zy9jb3Juc2lsawBvbmVibG9jawB2LT5sZWZ0LT5ibG9jayA9PSB2LT5yaWdodC0+YmxvY2sAL3N2Zy9maXJlYnJpY2sAUFFjaGVjawBwYWNrAC9zdmcvYmxhY2sAQmxhY2sAc2ZvbnRfYmFjawByb3dzX2JhY2sAY29sb3JzZWdzX2JhY2sAc2ZvbnRfcG9wX2JhY2sAZXN0YWNrX3BvcF9iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAG5kYXNoAG1kYXNoAGRpZ3JhcGgAc3ViZ3JhcGgAY29uc3RydWN0X2dyYXBoAGNoa1NncmFwaABjbG9zZXN0X3BhaXJzMmdyYXBoAGFnZGVsZXRlIG9uIHdyb25nIGdyYXBoAGNvbm5lY3RHcmFwaAB1cHNpaAAlc2xpbmUtdGhyb3VnaABmbGF0X3NlYXJjaABjaGFuU2VhcmNoAFJUcmVlU2VhcmNoAE1hcmNoAERpc2NvbkJyYW5jaABQaWNrQnJhbmNoAEFkZEJyYW5jaAAuLi8uLi9saWIvdXRpbC9iaXRhcnJheS5oAC4uLy4uL2xpYi9jZ3JhcGgvc3Rydmlldy5oAC4uLy4uL2xpYi9jaXJjb2dlbi9ub2RlbGlzdC5oAC4uLy4uL2xpYi91dGlsL3NvcnQuaAAuLi8uLi9saWIvY2dyYXBoL25vZGVfc2V0LmgALi4vLi4vbGliL2NvbW1vbi9ib3hlcy5oAC4uLy4uL2xpYi9vcnRoby9zdHJ1Y3R1cmVzLmgALi4vLi4vbGliL2RvdGdlbi9kb3Rwcm9jcy5oAC4uLy4uL2xpYi9jZ3JhcGgvY2doZHIuaAAuLi8uLi9saWIvdXRpbC9zdHJlcS5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvY2dyYXBoL2d2X21hdGguaAAuLi8uLi9saWIvb3J0aG8vcmF3Z3JhcGguaAAuLi8uLi9saWIvdXRpbC9hZ3hidWYuaAAuLi8uLi9saWIvY2dyYXBoL3Rva2VuaXplLmgALi4vLi4vbGliL2NvbW1vbi9odG1sdGFibGUuaAAuLi8uLi9saWIvdXRpbC9hbGxvYy5oAGF1eGcAY29yZV9sb2FkaW1hZ2Vfc3ZnAHN2ZzpzdmcAanBnOnN2ZwBwbmc6c3ZnAGpwZWc6c3ZnAGdpZjpzdmcAanBlOnN2ZwBzdmdfaW5saW5lOnN2ZwBBdWcAZG9Qcm9sb2cAcG93ZXJfaXRlcmF0aW9uX29ydGhvZwBwbmcAaWRlYWxfZGlzdF9zY2hlbWUgdmFsdWUgd3JvbmcAeGRvdCB2ZXJzaW9uICIlcyIgdG9vIGxvbmcAY29uZwBsYmxlbmNsb3NpbmcAYmFzaWNfc3RyaW5nAGZhaWx1cmUgbWFsbG9jJ2luZyBmb3IgcmVzdWx0IHN0cmluZwBzcHJpbmcAb3JkZXJpbmcAYXJpbmcAQXJpbmcARGFtcGluZwBXYXJuaW5nAG92ZXJsYXBfc2NhbGluZwB4IGFuZCB5IHNjYWxpbmcAb2xkIHNjYWxpbmcAc21vb3RoaW5nAHVua25vd24gZW5jb2RpbmcAbXVsdGlsZXZlbF9zcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmcAc3ByaW5nX2VsZWN0cmljYWxfc3ByaW5nX2VtYmVkZGluZwBjZWxscGFkZGluZwBjZWxsc3BhY2luZwByYW5nAGxhbmcAZml2ZXBvdmVyaGFuZwB0aHJlZXBvdmVyaGFuZwBub3ZlcmhhbmcAZW1pdF9odG1sX2ltZwBsZwBvcmlnAHN6bGlnAG9lbGlnAGFlbGlnAE9FbGlnAEFFbGlnAGNvcmVfbG9hZGltYWdlX2ZpZwBqcGc6ZmlnAHBuZzpmaWcAZmlnOmZpZwBqcGVnOmZpZwBnaWY6ZmlnAGpwZTpmaWcAZWdnAG5leHRfc2VnAHJlZwBqcGVnAGkgPT0gZGVnAGRnAGNnAGNsb3Nlc3ViZwBtaXNtYXRjaGVkIHRhZwBiZXotPnNmbGFnAGJlei0+ZWZsYWcAIWZsYWcAPGcAJS41ZywlLjVnLCUuNWcsJS41ZwAlLjVnICUuNWcAJWcgJWcAYm94SW50ZXJzZWN0ZgBlcHNmAGFnZWRnZXNlcWNtcGYAY2N3cm90YXRlcGYAZm5vZgBpbmYAc2VsZgBoYWxmACVsZiVsZiVsZiVsZgAlbGYsJWxmLCVsZiwlbGYsJWxmACVsZiAlbGYgJWxmICVsZgBsaWJlcmF0aW9uc2VyaWYAZnJlZXNlcmlmAHNhbnMtU2VyaWYAZ2lmAC9zdmcvcGVhY2hwdWZmAHJpZmYAYWNjb3VudGluZ1JlcG9ydERpZmYAdGFpbGhyZWYAbGFiZWxocmVmAGVkZ2VocmVmAGhlYWRocmVmAG9yZGYAcGRmAHNpZ21hZgBcZgAlLjBMZgAlTGYAdXMtPmYAJS4wM2YAJXMgdHJhbnNtaXQgJS4zZgByZ2I8JTkuM2YsICU5LjNmLCAlOS4zZj4gdHJhbnNtaXQgJS4zZgAlLjAyZgAlLjJmACUuMGYsJS4wZiwlLjBmLCUuMGYAICUuMGYsJS4wZgAlLjBmICUuMGYgJS4wZiAlLjBmACIgZmlsbC1vcGFjaXR5PSIlZgAiIHN0cm9rZS1vcGFjaXR5PSIlZgAKZmluYWwgZSA9ICVmAGJyb256ZQBhcnJvd3NpemUAbGFiZWxmb250c2l6ZQBzZWFyY2hzaXplAGZpeGVkc2l6ZQBub2RlbGlzdF9zaXplAG5vZGVfc2V0X3NpemUAY2VsbHNfc2l6ZQBub2Rlc19zaXplAHRleHRzcGFuX3NpemUAc3ZnX3NpemUAY2FwYWNpdHkgPiBzZWxmLT5zaXplAGJ6LnNpemUAcG9pbnQtc2l6ZQBub3JtYWxpemUAaWN1cnZlAG5vZGVsaXN0X3JlbW92ZQBhZGpfbGlzdF9yZW1vdmUAbm9kZV9zZXRfcmVtb3ZlAHNvbHZlACF2LT5hY3RpdmUALWFjdGl2ZQBmb250X2luX2xpc3RfcGVybWlzc2l2ZQAvc3ZnL29saXZlAHVncmF2ZQBvZ3JhdmUAaWdyYXZlAGVncmF2ZQBhZ3JhdmUAVWdyYXZlAE9ncmF2ZQBJZ3JhdmUARWdyYXZlAEFncmF2ZQB0cnVlAC9zdmcvYmlzcXVlAG9ibGlxdWUAQXZhbnRHYXJkZS1Cb29rT2JsaXF1ZQBBdmFudEdhcmRlLURlbWlPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctQm9sZE9ibGlxdWUAQ291cmllci1Cb2xkT2JsaXF1ZQBIZWx2ZXRpY2EtQm9sZE9ibGlxdWUASGVsdmV0aWNhLU5hcnJvdy1PYmxpcXVlAENvdXJpZXItT2JsaXF1ZQBIZWx2ZXRpY2EtT2JsaXF1ZQBuYXZ5Ymx1ZQAvc3ZnL2xpZ2h0c2t5Ymx1ZQAvc3ZnL2RlZXBza3libHVlAC9zdmcvc2t5Ymx1ZQBuZXdtaWRuaWdodGJsdWUAL3N2Zy9taWRuaWdodGJsdWUAL3N2Zy9saWdodGJsdWUAL3N2Zy9jYWRldGJsdWUAL3N2Zy9jb3JuZmxvd2VyYmx1ZQAvc3ZnL2RvZGdlcmJsdWUAL3N2Zy9wb3dkZXJibHVlAG5lb25ibHVlAC9zdmcvbWVkaXVtYmx1ZQAvc3ZnL2xpZ2h0c3RlZWxibHVlAC9zdmcvc3RlZWxibHVlAC9zdmcvcm95YWxibHVlAC9zdmcvZGFya2JsdWUAcmljaGJsdWUAbGlnaHRzbGF0ZWJsdWUAL3N2Zy9tZWRpdW1zbGF0ZWJsdWUAL3N2Zy9kYXJrc2xhdGVibHVlAC9zdmcvc2xhdGVibHVlAC9zdmcvYWxpY2VibHVlAC9zdmcvYmx1ZQBjYWxsU3RvcmVFbnRpdHlWYWx1ZQBzdG9yZUF0dHJpYnV0ZVZhbHVlAEJsdWUAbmVhdG9fZW5xdWV1ZQBUdWUAY29udmVydFNQdG9Sb3V0ZQB5YWN1dGUAdWFjdXRlAG9hY3V0ZQBpYWN1dGUAZWFjdXRlAGFhY3V0ZQBZYWN1dGUAVWFjdXRlAE9hY3V0ZQBJYWN1dGUARWFjdXRlAEFhY3V0ZQByZWZlcmVuY2UgdG8gZXh0ZXJuYWwgZW50aXR5IGluIGF0dHJpYnV0ZQBkdXBsaWNhdGUgYXR0cmlidXRlAG5vdGUAcHJpbWVyc2l0ZQByaWJvc2l0ZQByZXN0cmljdGlvbnNpdGUAcHJvdGVhc2VzaXRlAC9zdmcvZ2hvc3R3aGl0ZQAvc3ZnL25hdmFqb3doaXRlAC9zdmcvZmxvcmFsd2hpdGUAL3N2Zy9hbnRpcXVld2hpdGUAL3N2Zy93aGl0ZQBXaGl0ZQBwb3Bfb2JqX3N0YXRlAHBjcF9yb3RhdGUAY29uY2VudHJhdGUAZGVjb3JhdGUAUXVhZFRyZWVfcmVwdWxzaXZlX2ZvcmNlX2FjY3VtdWxhdGUAbm90cmFuc2xhdGUAL3N2Zy9jaG9jb2xhdGUAZ2VvbVVwZGF0ZQBpbnZob3VzZQAvc3ZnL2NoYXJ0cmV1c2UAbm9kZWxpc3RfcmV2ZXJzZQBYTUxfUGFyc2UAPGVsbGlwc2UAZHVzdHlyb3NlAC9zdmcvbWlzdHlyb3NlAFNwYXJzZU1hdHJpeF90cmFuc3Bvc2UAYWdjbG9zZQBlbnRpdHlUcmFja2luZ09uQ2xvc2UAU3BhcnNlTWF0cml4X211bHRpcGx5X2RlbnNlAGZhbHNlAC9zdmcvbWVkaXVtdHVycXVvaXNlAC9zdmcvZGFya3R1cnF1b2lzZQAvc3ZnL3BhbGV0dXJxdW9pc2UAL3N2Zy90dXJxdW9pc2UAcGhhc2UAL3N2Zy9henVyZQBzaWduYXR1cmUAbWVtb3J5IHJlLWFsbG9jYXRpb24gZmFpbHVyZQBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABndnVzZXJzaGFwZV9maW5kAG5vZGVsaXN0X3RyeV9hcHBlbmQAZWRnZV9saXN0X3RyeV9hcHBlbmQAc2ZvbnRfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAGlyYW5kAGV4cGFuZABjdW1iZXJsYW5kAGJyaWdodGdvbGQAb2xkZ29sZAAvc3ZnL2dvbGQAYm9sZABIZWx2ZXRpY2EtTmFycm93LUJvbGQAVGltZXMtQm9sZABDb3VyaWVyLUJvbGQAUGFsYXRpbm8tQm9sZABOZXdDZW50dXJ5U2NobGJrLUJvbGQASGVsdmV0aWNhLUJvbGQAJTAqbGxkACUqbGxkACslbGxkAG4tPmJyYW5jaFtpXS5jaGlsZAAlKy40bGQAJXMlbGQAc29saWQAL3N2Zy9tZWRpdW1vcmNoaWQAL3N2Zy9kYXJrb3JjaGlkAC9zdmcvb3JjaGlkAGlsbGVnYWwgY2hhcmFjdGVyKHMpIGluIHB1YmxpYyBpZABkaWprc3RyYV9zZ2QAZml4ZWQAY3VydmVkAGRlcml2ZWQAZG90dGVkAG1lbW9yeSBleGhhdXN0ZWQAbG9jYWxlIG5vdCBzdXBwb3J0ZWQAcGFyc2luZyBhYm9ydGVkAHBhcnNlciBub3Qgc3RhcnRlZABhdHRyaWJ1dGUgbWFjcm9zIG5vdCBpbXBsZW1lbnRlZABhY2NvdW50aW5nRGlmZlRvbGVyYXRlZABmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJuYWwgZXJyb3ItLWVuZCBvZiBidWZmZXIgbWlzc2VkAGNvbmRlbnNlZAAvc3ZnL21lZGl1bXZpb2xldHJlZAAvc3ZnL3BhbGV2aW9sZXRyZWQASW1wcm9wZXIgJXMgdmFsdWUgJXMgLSBpZ25vcmVkACVzIHZhbHVlICVzIDwgJWQgLSB0b28gc21hbGwgLSBpZ25vcmVkACVzIHZhbHVlICVzID4gJWQgLSB0b28gbGFyZ2UgLSBpZ25vcmVkAC9zdmcvaW5kaWFucmVkAC9zdmcvZGFya3JlZABhIHN1Y2Nlc3NmdWwgcHJpb3IgY2FsbCB0byBmdW5jdGlvbiBYTUxfR2V0QnVmZmVyIGlzIHJlcXVpcmVkAHRhcGVyZWQAL3N2Zy9vcmFuZ2VyZWQAcmVzZXJ2ZWQgcHJlZml4ICh4bWxucykgbXVzdCBub3QgYmUgZGVjbGFyZWQgb3IgdW5kZWNsYXJlZAAvc3ZnL3JlZABzdHJpcGVkAGlsbC1jb25kaXRpb25lZAB1bmRlZmluZWQAbm90IGNvbnN0cmFpbmVkAGxhYmVsYWxpZ25lZAB0ZXh0IGRlY2xhcmF0aW9uIG5vdCB3ZWxsLWZvcm1lZABYTUwgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAHVuZmlsbGVkAGlucHV0IGluIGZsZXggc2Nhbm5lciBmYWlsZWQAdHJpYW5ndWxhdGlvbiBmYWlsZWQAcGFyc2luZyBmaW5pc2hlZABkYXNoZWQAbGltaXQgb24gaW5wdXQgYW1wbGlmaWNhdGlvbiBmYWN0b3IgKGZyb20gRFREIGFuZCBlbnRpdGllcykgYnJlYWNoZWQAd2VkZ2VkAHNpemU9PWZyZWVkAHJvdW5kZWQAcGFyc2VyIG5vdCBzdXNwZW5kZWQAcGFyc2VyIHN1c3BlbmRlZABXZWQAUmVkAFNwYXJzZU1hdHJpeF9hZGQAbm9kZV9zZXRfYWRkAGRkICE9IHBhcmVudF9kZABLUF9BZGQAcGFkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAcG9pbnRzX3N5bmMAc3Ryc19zeW5jAEFncmFwaHNfc3luYwBib3hlc19zeW5jAGxheWVyX25hbWVzX3N5bmMAdmFyYXJyX3N5bmMAYmV6aWVyX3BhdGhfc3luYwBwYnNfc2l6ZV9zeW5jAG1jAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMAQS0+aXNfcGF0dGVybl9zeW1tZXRyaWMAcGljOnBpYwBpdGFsaWMAQm9va21hbi1MaWdodEl0YWxpYwBaYXBmQ2hhbmNlcnktTWVkaXVtSXRhbGljAEJvb2ttYW4tRGVtaUl0YWxpYwBUaW1lcy1Cb2xkSXRhbGljAFBhbGF0aW5vLUJvbGRJdGFsaWMATmV3Q2VudHVyeVNjaGxiay1Cb2xkSXRhbGljAFRpbWVzLUl0YWxpYwBQYWxhdGluby1JdGFsaWMATmV3Q2VudHVyeVNjaGxiay1JdGFsaWMAcmFkaWMAI2ZjZmNmYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAYXR0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBnZW5lcmFsLmMAc3ByaW5nX2VsZWN0cmljYWwuYwBndnJlbmRlcl9jb3JlX3RrLmMAcmFuay5jAHBhY2suYwBibG9ja3BhdGguYwBkdHN0cmhhc2guYwByYXdncmFwaC5jAGd2cmVuZGVyX2NvcmVfc3ZnLmMAZ3ZyZW5kZXJfY29yZV9maWcuYwBzdHVmZi5jAG1hemUuYwBxdWFkX3Byb2dfc29sdmUuYwBzcGFyc2Vfc29sdmUuYwByb3V0ZS5jAHdyaXRlLmMAY29seGxhdGUuYwB4bWxwYXJzZS5jAGVsbGlwc2UuYwBndmxvYWRpbWFnZV9jb3JlLmMAZ3Z1c2Vyc2hhcGUuYwByZWN0YW5nbGUuYwBjaXJjbGUuYwBodG1sdGFibGUuYwBlZGdlLmMAZ3Zsb2FkaW1hZ2UuYwBibG9ja3RyZWUuYwBRdWFkVHJlZS5jAG5vZGUuYwBub2RlX2luZHVjZS5jAGd2ZGV2aWNlLmMAY29tcG91bmQuYwB0cmFwZXpvaWQuYwBzZ2QuYwBjb25jLmMAcmVjLmMAZGlqa3N0cmEuYwBmUFEuYwBjbGFzczIuYwAlbGYsJWxmLCVsZiwlbGYlYwAlbGYsJWxmLCVsZiwlW14sXSVjAFwlYwAkYwB3YgBuc3ViAHNldGhzYgByYgBwcm90ZWN0X3JzcWIAam9iAGNvcmVfbG9hZGltYWdlX3BzbGliAEZlYgBvZGIAaW5pdF9zcGxpbmVzX2JiAGJlemllcl9iYgBwcm90ZWluc3RhYgBybmFzdGFiAC9zdmcvb2xpdmVkcmFiAFxiAHJ3YQAvc3ZnL2FxdWEAaW90YQBJb3RhAC9zdmcvZGFya21hZ2VudGEAL3N2Zy9tYWdlbnRhAGRlbHRhAERlbHRhAHpldGEAdGhldGEAVGhldGEAYmV0YQBaZXRhAEJldGEAX0FHX3N0cmRhdGEAcHJldiAhPSBvYmotPmRhdGEAbWFrZUdyYXBoRGF0YQBFdGEAbmltYnVzc2Fuc2EAcGFyYQBrYXBwYQBLYXBwYQAvc3ZnL3NpZW5uYQBWZXJkYW5hAGdhbW1hAEdhbW1hAHNpZ21hAFNpZ21hAGNvbnNvbGEAbmFibGEAL3N2Zy9mdWNoc2lhAEdlb3JnaWEAYWxwaGEAQWxwaGEAb21lZ2EAT21lZ2EAYXJlYQBSZWN0QXJlYQBsYW1iZGEATGFtYmRhAGhlbHZldGljYQBIZWx2ZXRpY2EAbWljYQA+PGEAYABfdGRyYXdfAF90bGRyYXdfAF9obGRyYXdfAF9sZHJhd18AX2hkcmF3XwBfZHJhd18AZG90X3NwbGluZXNfACVzXwBwYWdlJWQsJWRfAF9jY18AIGlkPSJhXwBeAG5fZWRnZXMgPT0gZ3JhcGgtPnNvdXJjZXNbZ3JhcGgtPm5dAGpkW21hc2tbamNba11dXSA9PSBqY1trXQBqY1ttYXNrW2piW2tdXV0gPT0gamJba10AamFbbWFza1tqYVtqXV1dID09IGphW2pdAHEtPnF0c1tpaV0AIXJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS50YWtlbltpXQByLT5ib3VuZGFyeVtpXSA8PSByLT5ib3VuZGFyeVtOVU1ESU1TICsgaV0AWyUuMDNmLCUuMDNmXQBbaW50ZXJuYWwgaGFyZC1jb2RlZF0AbnAtPmNlbGxzWzFdAG5wLT5jZWxsc1swXQB1cy0+bmFtZVswXQBjcC0+c3JjWzBdAFsuLl0AXFwAInBvaW50cyI6IFsAInN0b3BzIjogWwAJWwBaAGNvbXB1dGVTY2FsZVhZAHk8PVkAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAdGFyZ2V0IDw9IChzaXplX3QpSU5UX01BWAB3ID49IDAgJiYgdyA8PSBJTlRfTUFYAGVfY250IDw9IElOVF9NQVgAcGFpci5yaWdodCA8PSBJTlRfTUFYAHBhaXIubGVmdCA8PSBJTlRfTUFYAG5fZWRnZXMgPD0gSU5UX01BWABzdHAubnZlcnRpY2VzIDw9IElOVF9NQVgAb2JzW3BvbHlfaV0tPnBuIDw9IElOVF9NQVgAaW5wdXRfcm91dGUucG4gPD0gSU5UX01BWABncmFwaC0+biA8PSBJTlRfTUFYAGggPj0gMCAmJiBoIDw9IElOVF9NQVgAVHJlZV9lZGdlLnNpemUgPD0gSU5UX01BWABlX2NudCAtIDEgPD0gSU5UX01BWABjbGlzdF9zaXplKCZsaXN0KSAtIDEgPD0gSU5UX01BWABsYXllcl9uYW1lc19zaXplKCZsYXllcklEcykgLSAxIDw9IElOVF9NQVgAc3RybGVuKGFyZ3MpIDw9IElOVF9NQVgAb2JqbGlzdF9zaXplKCZvYmpsKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWAByZWN0LmJvdW5kYXJ5WzNdIDwgSU5UX01BWAByZWN0LmJvdW5kYXJ5WzJdIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAcyAhPSBOVUxMAGF0dHIgIT0gTlVMTABsZWFkZXIgIT0gTlVMTABpdGVtICE9IE5VTEwAaGF5c3RhY2sgIT0gTlVMTABzY3JhdGNoICE9IE5VTEwAb3J0aG9nICE9IE5VTEwAc2VsZiAhPSBOVUxMAHZhbHVlICE9IE5VTEwAZmlsZW5hbWUgIT0gTlVMTABqb2ItPm91dHB1dF9maWxlICE9IE5VTEwAbW9kZSAhPSBOVUxMAHNvdXJjZSAhPSBOVUxMAHhkICE9IE5VTEwAam9iICE9IE5VTEwAc291cmNlLmRhdGEgIT0gTlVMTABiLmRhdGEgIT0gTlVMTABhLmRhdGEgIT0gTlVMTABsaXN0ICYmIGxpc3RbMF0gIT0gTlVMTABBRiAhPSBOVUxMAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABMQ19BTEwAQkwAYmVzdGNvc3QgPCBIVUdFX1ZBTABOT1JNQUwAUkFESUFMAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABVUlcgQ2hhbmNlcnkgTABVUlcgQm9va21hbiBMAENlbnR1cnkgU2Nob29sYm9vayBMAFVSVyBHb3RoaWMgTABLSwBKAGkgPCBNQVhfSQBQLT5lbmQudGhldGEgPCAyICogTV9QSQBBU0NJSQBcSABFVEgAV0lEVEgARE9URk9OVFBBVEgAR0RGT05UUEFUSABta05Db25zdHJhaW50RwBcRwBFWFBBVF9FTlRJVFlfREVCVUcARVhQQVRfRU5UUk9QWV9ERUJVRwBFWFBBVF9BQ0NPVU5USU5HX0RFQlVHAFJORwBTUFJJTkcAQ0VMTFBBRERJTkcAQ0VMTFNQQUNJTkcATEFORwBJTUcAXHhGACUlRU9GAElORgBceEZGAFJJRkYAZGVsdGEgPD0gMHhGRkZGAFx4RUYAXHhERgBceENGAFx4QkYAXHhBRgBceDlGAFx4OEYAXHg3RgBceDFGAFx4RQBcRQBQT0lOVC1TSVpFAFRSVUUAQ0xPU0UARkFMU0UAa2luZCA9PSBMVF9OT05FAEdSQURJRU5UQU5HTEUAVFJJQU5HTEUATUlERExFAElOVklTSUJMRQBUQUJMRQBBR1RZUEUob2JqKSA9PSBBR0lORURHRSB8fCBBR1RZUEUob2JqKSA9PSBBR09VVEVER0UAXHhGRQBceEVFAFx4REUAQl9OT0RFAFx4Q0UAXHhCRQBceEFFAFx4OUUAXHg4RQBceDFFAFREAEEtPmZvcm1hdCA9PSBGT1JNQVRfQ09PUkQAbiAmJiBpID49IDAgJiYgaSA8IE5PREVDQVJEACUlRU5EAEhZQlJJRABTT0xJRABceEZEAFx4RUQARE9UVEVEAERBU0hFRABST1VOREVEAFx4REQAXHhDRABceEJEAFx4QUQAXHg5RABceDhEAFx4MUQAXHhDAGRlbGV0ZVZQU0MAXHhGQwBceEVDAFx4REMAXHhDQwBceEJDAFx4QUMAXHg5QwBceDhDAFx4MUMAXHhCAFNVQgBceEZCAFx4RUIAXHhEQgBceENCAFx4QkIAXHhBQgBceDlCAFx4OEIAXHgxQgBBICYmIEIAXHhGQQBceEVBAFx4REEAXHhDQQBceEJBAFx4QUEAXHg5QQBceDhBAFx4MUEAQAA/ADwlcz4APG5pbD4APC90c3Bhbj48L3RleHRQYXRoPgAKICAgIDwlOS4zZiwgJTkuM2YsICU5LjNmPgA+Cjx0aXRsZT4APEZPTlQ+ADxCUj4APEhUTUw+ADwvSFRNTD4APElNRz4AU3ludGF4IGVycm9yOiBub24tc3BhY2Ugc3RyaW5nIHVzZWQgYmVmb3JlIDxUQUJMRT4AU3ludGF4IGVycm9yOiBub24tc3BhY2Ugc3RyaW5nIHVzZWQgYWZ0ZXIgPC9UQUJMRT4APFREPgAtPgAiPgAJW2tleT0APD0APAAmI3gleDsAJnF1b3Q7ACZsdDsAJmd0OwAmYW1wOwAjJWQ7ACYjMzk7ACYjNDU7ACYjOTM7ACYjMTM7ACYjMTYwOwAmIzEwOwA7c3RvcC1vcGFjaXR5OgAlJUJvdW5kaW5nQm94OgBjYWxjdWxhdGluZyBzaG9ydGVzdCBwYXRocyBhbmQgc2V0dGluZyB1cCBzdHJlc3MgdGVybXM6ADxzdG9wIG9mZnNldD0iJS4wM2YiIHN0eWxlPSJzdG9wLWNvbG9yOgA8c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOgA8c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOgBzb2x2aW5nIG1vZGVsOgAvXDoAZ3JleTkAZ3JheTkAXHhGOQBceEU5AFx4RDkAXHhDOQBceEI5AFx4QTkAZ3JleTk5AGdyYXk5OQBceDk5AGdyZXk4OQBncmF5ODkAXHg4OQAwMTIzNDU2Nzg5AGdyZXk3OQBncmF5NzkAZ3JleTY5AGdyYXk2OQBncmV5NTkAZ3JheTU5AGdyZXk0OQBncmF5NDkAZ3JleTM5AGdyYXkzOQBncmV5MjkAZ3JheTI5AGdyZXkxOQBncmF5MTkAXHgxOQAvcmRneTkvOQAvYnVwdTkvOQAvcmRwdTkvOQAvcHVidTkvOQAveWxnbmJ1OS85AC9nbmJ1OS85AC9yZHlsYnU5LzkAL3JkYnU5LzkAL2dyZXlzOS85AC9ncmVlbnM5LzkAL2JsdWVzOS85AC9wdXJwbGVzOS85AC9vcmFuZ2VzOS85AC9yZWRzOS85AC9wdW9yOS85AC95bG9yYnI5LzkAL3B1YnVnbjkvOQAvYnVnbjkvOQAvcHJnbjkvOQAvcmR5bGduOS85AC95bGduOS85AC9zcGVjdHJhbDkvOQAvcGl5ZzkvOQAvYnJiZzkvOQAvcHVyZDkvOQAveWxvcnJkOS85AC9vcnJkOS85AC9wYWlyZWQ5LzkAL3NldDM5LzkAL3NldDE5LzkAL3Bhc3RlbDE5LzkAL3BhaXJlZDEyLzkAL3NldDMxMi85AC9yZGd5MTEvOQAvcmR5bGJ1MTEvOQAvcmRidTExLzkAL3B1b3IxMS85AC9wcmduMTEvOQAvcmR5bGduMTEvOQAvc3BlY3RyYWwxMS85AC9waXlnMTEvOQAvYnJiZzExLzkAL3BhaXJlZDExLzkAL3NldDMxMS85AC9yZGd5MTAvOQAvcmR5bGJ1MTAvOQAvcmRidTEwLzkAL3B1b3IxMC85AC9wcmduMTAvOQAvcmR5bGduMTAvOQAvc3BlY3RyYWwxMC85AC9waXlnMTAvOQAvYnJiZzEwLzkAL3BhaXJlZDEwLzkAL3NldDMxMC85AGdyZXk4AGdyYXk4AFx4OAB1dGY4ACNmOGY4ZjgAI2U4ZThlOABceEY4AEdJRjgAXHhFOABceEQ4AFx4QzgAXHhCOABceEE4AGdyZXk5OABncmF5OTgAXHg5OABncmV5ODgAZ3JheTg4AFx4ODgAZ3JleTc4AGdyYXk3OABncmV5NjgAZ3JheTY4AGdyZXk1OABncmF5NTgAZ3JleTQ4AGdyYXk0OABncmV5MzgAZ3JheTM4AGdyZXkyOABncmF5MjgAZ3JleTE4AGdyYXkxOABceDE4AC9yZGd5OS84AC9idXB1OS84AC9yZHB1OS84AC9wdWJ1OS84AC95bGduYnU5LzgAL2duYnU5LzgAL3JkeWxidTkvOAAvcmRidTkvOAAvZ3JleXM5LzgAL2dyZWVuczkvOAAvYmx1ZXM5LzgAL3B1cnBsZXM5LzgAL29yYW5nZXM5LzgAL3JlZHM5LzgAL3B1b3I5LzgAL3lsb3JicjkvOAAvcHVidWduOS84AC9idWduOS84AC9wcmduOS84AC9yZHlsZ245LzgAL3lsZ245LzgAL3NwZWN0cmFsOS84AC9waXlnOS84AC9icmJnOS84AC9wdXJkOS84AC95bG9ycmQ5LzgAL29ycmQ5LzgAL3BhaXJlZDkvOAAvc2V0MzkvOAAvc2V0MTkvOAAvcGFzdGVsMTkvOAAvcmRneTgvOAAvYnVwdTgvOAAvcmRwdTgvOAAvcHVidTgvOAAveWxnbmJ1OC84AC9nbmJ1OC84AC9yZHlsYnU4LzgAL3JkYnU4LzgAL2FjY2VudDgvOAAvZ3JleXM4LzgAL2dyZWVuczgvOAAvYmx1ZXM4LzgAL3B1cnBsZXM4LzgAL29yYW5nZXM4LzgAL3JlZHM4LzgAL3B1b3I4LzgAL3lsb3JicjgvOAAvcHVidWduOC84AC9idWduOC84AC9wcmduOC84AC9yZHlsZ244LzgAL3lsZ244LzgAL3NwZWN0cmFsOC84AC9waXlnOC84AC9icmJnOC84AC9wdXJkOC84AC95bG9ycmQ4LzgAL29ycmQ4LzgAL3BhaXJlZDgvOAAvc2V0MzgvOAAvc2V0MjgvOAAvcGFzdGVsMjgvOAAvZGFyazI4LzgAL3NldDE4LzgAL3Bhc3RlbDE4LzgAL3BhaXJlZDEyLzgAL3NldDMxMi84AC9yZGd5MTEvOAAvcmR5bGJ1MTEvOAAvcmRidTExLzgAL3B1b3IxMS84AC9wcmduMTEvOAAvcmR5bGduMTEvOAAvc3BlY3RyYWwxMS84AC9waXlnMTEvOAAvYnJiZzExLzgAL3BhaXJlZDExLzgAL3NldDMxMS84AC9yZGd5MTAvOAAvcmR5bGJ1MTAvOAAvcmRidTEwLzgAL3B1b3IxMC84AC9wcmduMTAvOAAvcmR5bGduMTAvOAAvc3BlY3RyYWwxMC84AC9waXlnMTAvOAAvYnJiZzEwLzgAL3BhaXJlZDEwLzgAL3NldDMxMC84AHV0Zi04AEMuVVRGLTgAZ3JleTcAZ3JheTcAXHg3AFx4RjcAXHhFNwBceEQ3AFx4QzcAXHhCNwBceEE3AGdyZXk5NwBncmF5OTcAXHg5NwBncmV5ODcAZ3JheTg3AFx4ODcAZ3JleTc3AGdyYXk3NwBncmV5NjcAZ3JheTY3AGdyZXk1NwBncmF5NTcAZ3JleTQ3AGdyYXk0NwBncmV5MzcAZ3JheTM3AGdyZXkyNwBncmF5MjcAZ3JleTE3AGdyYXkxNwBceDE3AC9yZGd5OS83AC9idXB1OS83AC9yZHB1OS83AC9wdWJ1OS83AC95bGduYnU5LzcAL2duYnU5LzcAL3JkeWxidTkvNwAvcmRidTkvNwAvZ3JleXM5LzcAL2dyZWVuczkvNwAvYmx1ZXM5LzcAL3B1cnBsZXM5LzcAL29yYW5nZXM5LzcAL3JlZHM5LzcAL3B1b3I5LzcAL3lsb3JicjkvNwAvcHVidWduOS83AC9idWduOS83AC9wcmduOS83AC9yZHlsZ245LzcAL3lsZ245LzcAL3NwZWN0cmFsOS83AC9waXlnOS83AC9icmJnOS83AC9wdXJkOS83AC95bG9ycmQ5LzcAL29ycmQ5LzcAL3BhaXJlZDkvNwAvc2V0MzkvNwAvc2V0MTkvNwAvcGFzdGVsMTkvNwAvcmRneTgvNwAvYnVwdTgvNwAvcmRwdTgvNwAvcHVidTgvNwAveWxnbmJ1OC83AC9nbmJ1OC83AC9yZHlsYnU4LzcAL3JkYnU4LzcAL2FjY2VudDgvNwAvZ3JleXM4LzcAL2dyZWVuczgvNwAvYmx1ZXM4LzcAL3B1cnBsZXM4LzcAL29yYW5nZXM4LzcAL3JlZHM4LzcAL3B1b3I4LzcAL3lsb3JicjgvNwAvcHVidWduOC83AC9idWduOC83AC9wcmduOC83AC9yZHlsZ244LzcAL3lsZ244LzcAL3NwZWN0cmFsOC83AC9waXlnOC83AC9icmJnOC83AC9wdXJkOC83AC95bG9ycmQ4LzcAL29ycmQ4LzcAL3BhaXJlZDgvNwAvc2V0MzgvNwAvc2V0MjgvNwAvcGFzdGVsMjgvNwAvZGFyazI4LzcAL3NldDE4LzcAL3Bhc3RlbDE4LzcAL3JkZ3k3LzcAL2J1cHU3LzcAL3JkcHU3LzcAL3B1YnU3LzcAL3lsZ25idTcvNwAvZ25idTcvNwAvcmR5bGJ1Ny83AC9yZGJ1Ny83AC9hY2NlbnQ3LzcAL2dyZXlzNy83AC9ncmVlbnM3LzcAL2JsdWVzNy83AC9wdXJwbGVzNy83AC9vcmFuZ2VzNy83AC9yZWRzNy83AC9wdW9yNy83AC95bG9yYnI3LzcAL3B1YnVnbjcvNwAvYnVnbjcvNwAvcHJnbjcvNwAvcmR5bGduNy83AC95bGduNy83AC9zcGVjdHJhbDcvNwAvcGl5ZzcvNwAvYnJiZzcvNwAvcHVyZDcvNwAveWxvcnJkNy83AC9vcnJkNy83AC9wYWlyZWQ3LzcAL3NldDM3LzcAL3NldDI3LzcAL3Bhc3RlbDI3LzcAL2RhcmsyNy83AC9zZXQxNy83AC9wYXN0ZWwxNy83AC9wYWlyZWQxMi83AC9zZXQzMTIvNwAvcmRneTExLzcAL3JkeWxidTExLzcAL3JkYnUxMS83AC9wdW9yMTEvNwAvcHJnbjExLzcAL3JkeWxnbjExLzcAL3NwZWN0cmFsMTEvNwAvcGl5ZzExLzcAL2JyYmcxMS83AC9wYWlyZWQxMS83AC9zZXQzMTEvNwAvcmRneTEwLzcAL3JkeWxidTEwLzcAL3JkYnUxMC83AC9wdW9yMTAvNwAvcHJnbjEwLzcAL3JkeWxnbjEwLzcAL3NwZWN0cmFsMTAvNwAvcGl5ZzEwLzcAL2JyYmcxMC83AC9wYWlyZWQxMC83AC9zZXQzMTAvNwAxLjcAZ3JleTYAZ3JheTYAXHg2AFx4RjYAXHhFNgBceEQ2AFx4QzYAXHhCNgBceEE2AGdyZXk5NgBncmF5OTYAXHg5NgBncmV5ODYAZ3JheTg2AFx4ODYAZ3JleTc2AGdyYXk3NgBncmV5NjYAZ3JheTY2AGdyZXk1NgBncmF5NTYAZ3JleTQ2AGdyYXk0NgBncmV5MzYAZ3JheTM2AGdyZXkyNgBncmF5MjYAZ3JleTE2AGdyYXkxNgBceDE2AC9yZGd5OS82AC9idXB1OS82AC9yZHB1OS82AC9wdWJ1OS82AC95bGduYnU5LzYAL2duYnU5LzYAL3JkeWxidTkvNgAvcmRidTkvNgAvZ3JleXM5LzYAL2dyZWVuczkvNgAvYmx1ZXM5LzYAL3B1cnBsZXM5LzYAL29yYW5nZXM5LzYAL3JlZHM5LzYAL3B1b3I5LzYAL3lsb3JicjkvNgAvcHVidWduOS82AC9idWduOS82AC9wcmduOS82AC9yZHlsZ245LzYAL3lsZ245LzYAL3NwZWN0cmFsOS82AC9waXlnOS82AC9icmJnOS82AC9wdXJkOS82AC95bG9ycmQ5LzYAL29ycmQ5LzYAL3BhaXJlZDkvNgAvc2V0MzkvNgAvc2V0MTkvNgAvcGFzdGVsMTkvNgAvcmRneTgvNgAvYnVwdTgvNgAvcmRwdTgvNgAvcHVidTgvNgAveWxnbmJ1OC82AC9nbmJ1OC82AC9yZHlsYnU4LzYAL3JkYnU4LzYAL2FjY2VudDgvNgAvZ3JleXM4LzYAL2dyZWVuczgvNgAvYmx1ZXM4LzYAL3B1cnBsZXM4LzYAL29yYW5nZXM4LzYAL3JlZHM4LzYAL3B1b3I4LzYAL3lsb3JicjgvNgAvcHVidWduOC82AC9idWduOC82AC9wcmduOC82AC9yZHlsZ244LzYAL3lsZ244LzYAL3NwZWN0cmFsOC82AC9waXlnOC82AC9icmJnOC82AC9wdXJkOC82AC95bG9ycmQ4LzYAL29ycmQ4LzYAL3BhaXJlZDgvNgAvc2V0MzgvNgAvc2V0MjgvNgAvcGFzdGVsMjgvNgAvZGFyazI4LzYAL3NldDE4LzYAL3Bhc3RlbDE4LzYAL3JkZ3k3LzYAL2J1cHU3LzYAL3JkcHU3LzYAL3B1YnU3LzYAL3lsZ25idTcvNgAvZ25idTcvNgAvcmR5bGJ1Ny82AC9yZGJ1Ny82AC9hY2NlbnQ3LzYAL2dyZXlzNy82AC9ncmVlbnM3LzYAL2JsdWVzNy82AC9wdXJwbGVzNy82AC9vcmFuZ2VzNy82AC9yZWRzNy82AC9wdW9yNy82AC95bG9yYnI3LzYAL3B1YnVnbjcvNgAvYnVnbjcvNgAvcHJnbjcvNgAvcmR5bGduNy82AC95bGduNy82AC9zcGVjdHJhbDcvNgAvcGl5ZzcvNgAvYnJiZzcvNgAvcHVyZDcvNgAveWxvcnJkNy82AC9vcnJkNy82AC9wYWlyZWQ3LzYAL3NldDM3LzYAL3NldDI3LzYAL3Bhc3RlbDI3LzYAL2RhcmsyNy82AC9zZXQxNy82AC9wYXN0ZWwxNy82AC9yZGd5Ni82AC9idXB1Ni82AC9yZHB1Ni82AC9wdWJ1Ni82AC95bGduYnU2LzYAL2duYnU2LzYAL3JkeWxidTYvNgAvcmRidTYvNgAvYWNjZW50Ni82AC9ncmV5czYvNgAvZ3JlZW5zNi82AC9ibHVlczYvNgAvcHVycGxlczYvNgAvb3JhbmdlczYvNgAvcmVkczYvNgAvcHVvcjYvNgAveWxvcmJyNi82AC9wdWJ1Z242LzYAL2J1Z242LzYAL3ByZ242LzYAL3JkeWxnbjYvNgAveWxnbjYvNgAvc3BlY3RyYWw2LzYAL3BpeWc2LzYAL2JyYmc2LzYAL3B1cmQ2LzYAL3lsb3JyZDYvNgAvb3JyZDYvNgAvcGFpcmVkNi82AC9zZXQzNi82AC9zZXQyNi82AC9wYXN0ZWwyNi82AC9kYXJrMjYvNgAvc2V0MTYvNgAvcGFzdGVsMTYvNgAvcGFpcmVkMTIvNgAvc2V0MzEyLzYAL3JkZ3kxMS82AC9yZHlsYnUxMS82AC9yZGJ1MTEvNgAvcHVvcjExLzYAL3ByZ24xMS82AC9yZHlsZ24xMS82AC9zcGVjdHJhbDExLzYAL3BpeWcxMS82AC9icmJnMTEvNgAvcGFpcmVkMTEvNgAvc2V0MzExLzYAL3JkZ3kxMC82AC9yZHlsYnUxMC82AC9yZGJ1MTAvNgAvcHVvcjEwLzYAL3ByZ24xMC82AC9yZHlsZ24xMC82AC9zcGVjdHJhbDEwLzYAL3BpeWcxMC82AC9icmJnMTAvNgAvcGFpcmVkMTAvNgAvc2V0MzEwLzYAZ3JleTUAZ3JheTUAXHg1AGJpZzUAXHhGNQBceEU1AFx4RDUAXHhDNQBceEI1AFx4QTUAZ3JleTk1AGdyYXk5NQBceDk1AGdyZXk4NQBncmF5ODUAXHg4NQBncmV5NzUAZ3JheTc1AGdyZXk2NQBncmF5NjUAZ3JleTU1AGdyYXk1NQBncmV5NDUAZ3JheTQ1AGdyZXkzNQBncmF5MzUAZ3JleTI1AGdyYXkyNQBncmV5MTUAZ3JheTE1AFx4MTUAZ3JheTA1AC9yZGd5OS81AC9idXB1OS81AC9yZHB1OS81AC9wdWJ1OS81AC95bGduYnU5LzUAL2duYnU5LzUAL3JkeWxidTkvNQAvcmRidTkvNQAvZ3JleXM5LzUAL2dyZWVuczkvNQAvYmx1ZXM5LzUAL3B1cnBsZXM5LzUAL29yYW5nZXM5LzUAL3JlZHM5LzUAL3B1b3I5LzUAL3lsb3JicjkvNQAvcHVidWduOS81AC9idWduOS81AC9wcmduOS81AC9yZHlsZ245LzUAL3lsZ245LzUAL3NwZWN0cmFsOS81AC9waXlnOS81AC9icmJnOS81AC9wdXJkOS81AC95bG9ycmQ5LzUAL29ycmQ5LzUAL3BhaXJlZDkvNQAvc2V0MzkvNQAvc2V0MTkvNQAvcGFzdGVsMTkvNQAvcmRneTgvNQAvYnVwdTgvNQAvcmRwdTgvNQAvcHVidTgvNQAveWxnbmJ1OC81AC9nbmJ1OC81AC9yZHlsYnU4LzUAL3JkYnU4LzUAL2FjY2VudDgvNQAvZ3JleXM4LzUAL2dyZWVuczgvNQAvYmx1ZXM4LzUAL3B1cnBsZXM4LzUAL29yYW5nZXM4LzUAL3JlZHM4LzUAL3B1b3I4LzUAL3lsb3JicjgvNQAvcHVidWduOC81AC9idWduOC81AC9wcmduOC81AC9yZHlsZ244LzUAL3lsZ244LzUAL3NwZWN0cmFsOC81AC9waXlnOC81AC9icmJnOC81AC9wdXJkOC81AC95bG9ycmQ4LzUAL29ycmQ4LzUAL3BhaXJlZDgvNQAvc2V0MzgvNQAvc2V0MjgvNQAvcGFzdGVsMjgvNQAvZGFyazI4LzUAL3NldDE4LzUAL3Bhc3RlbDE4LzUAL3JkZ3k3LzUAL2J1cHU3LzUAL3JkcHU3LzUAL3B1YnU3LzUAL3lsZ25idTcvNQAvZ25idTcvNQAvcmR5bGJ1Ny81AC9yZGJ1Ny81AC9hY2NlbnQ3LzUAL2dyZXlzNy81AC9ncmVlbnM3LzUAL2JsdWVzNy81AC9wdXJwbGVzNy81AC9vcmFuZ2VzNy81AC9yZWRzNy81AC9wdW9yNy81AC95bG9yYnI3LzUAL3B1YnVnbjcvNQAvYnVnbjcvNQAvcHJnbjcvNQAvcmR5bGduNy81AC95bGduNy81AC9zcGVjdHJhbDcvNQAvcGl5ZzcvNQAvYnJiZzcvNQAvcHVyZDcvNQAveWxvcnJkNy81AC9vcnJkNy81AC9wYWlyZWQ3LzUAL3NldDM3LzUAL3NldDI3LzUAL3Bhc3RlbDI3LzUAL2RhcmsyNy81AC9zZXQxNy81AC9wYXN0ZWwxNy81AC9yZGd5Ni81AC9idXB1Ni81AC9yZHB1Ni81AC9wdWJ1Ni81AC95bGduYnU2LzUAL2duYnU2LzUAL3JkeWxidTYvNQAvcmRidTYvNQAvYWNjZW50Ni81AC9ncmV5czYvNQAvZ3JlZW5zNi81AC9ibHVlczYvNQAvcHVycGxlczYvNQAvb3JhbmdlczYvNQAvcmVkczYvNQAvcHVvcjYvNQAveWxvcmJyNi81AC9wdWJ1Z242LzUAL2J1Z242LzUAL3ByZ242LzUAL3JkeWxnbjYvNQAveWxnbjYvNQAvc3BlY3RyYWw2LzUAL3BpeWc2LzUAL2JyYmc2LzUAL3B1cmQ2LzUAL3lsb3JyZDYvNQAvb3JyZDYvNQAvcGFpcmVkNi81AC9zZXQzNi81AC9zZXQyNi81AC9wYXN0ZWwyNi81AC9kYXJrMjYvNQAvc2V0MTYvNQAvcGFzdGVsMTYvNQAvcmRneTUvNQAvYnVwdTUvNQAvcmRwdTUvNQAvcHVidTUvNQAveWxnbmJ1NS81AC9nbmJ1NS81AC9yZHlsYnU1LzUAL3JkYnU1LzUAL2FjY2VudDUvNQAvZ3JleXM1LzUAL2dyZWVuczUvNQAvYmx1ZXM1LzUAL3B1cnBsZXM1LzUAL29yYW5nZXM1LzUAL3JlZHM1LzUAL3B1b3I1LzUAL3lsb3JicjUvNQAvcHVidWduNS81AC9idWduNS81AC9wcmduNS81AC9yZHlsZ241LzUAL3lsZ241LzUAL3NwZWN0cmFsNS81AC9waXlnNS81AC9icmJnNS81AC9wdXJkNS81AC95bG9ycmQ1LzUAL29ycmQ1LzUAL3BhaXJlZDUvNQAvc2V0MzUvNQAvc2V0MjUvNQAvcGFzdGVsMjUvNQAvZGFyazI1LzUAL3NldDE1LzUAL3Bhc3RlbDE1LzUAL3BhaXJlZDEyLzUAL3NldDMxMi81AC9yZGd5MTEvNQAvcmR5bGJ1MTEvNQAvcmRidTExLzUAL3B1b3IxMS81AC9wcmduMTEvNQAvcmR5bGduMTEvNQAvc3BlY3RyYWwxMS81AC9waXlnMTEvNQAvYnJiZzExLzUAL3BhaXJlZDExLzUAL3NldDMxMS81AC9yZGd5MTAvNQAvcmR5bGJ1MTAvNQAvcmRidTEwLzUAL3B1b3IxMC81AC9wcmduMTAvNQAvcmR5bGduMTAvNQAvc3BlY3RyYWwxMC81AC9waXlnMTAvNQAvYnJiZzEwLzUAL3BhaXJlZDEwLzUAL3NldDMxMC81AGJpZy01AEJJRy01ACAtZGFzaCA1AGl2b3J5NABncmV5NABkYXJrc2xhdGVncmF5NABceDQAc25vdzQAbGlnaHR5ZWxsb3c0AGhvbmV5ZGV3NAB3aGVhdDQAdG9tYXRvNAByb3N5YnJvd240AG1hcm9vbjQAbGlnaHRzYWxtb240AGxlbW9uY2hpZmZvbjQAc3ByaW5nZ3JlZW40AGRhcmtvbGl2ZWdyZWVuNABwYWxlZ3JlZW40AGRhcmtzZWFncmVlbjQAbGlnaHRjeWFuNAB0YW40AHBsdW00AHNlYXNoZWxsNABjb3JhbDQAaG90cGluazQAbGlnaHRwaW5rNABkZWVwcGluazQAY29ybnNpbGs0AGZpcmVicmljazQAa2hha2k0AGxhdmVuZGVyYmx1c2g0AHBlYWNocHVmZjQAYmlzcXVlNABsaWdodHNreWJsdWU0AGRlZXBza3libHVlNABsaWdodGJsdWU0AGNhZGV0Ymx1ZTQAZG9kZ2VyYmx1ZTQAbGlnaHRzdGVlbGJsdWU0AHJveWFsYmx1ZTQAc2xhdGVibHVlNABuYXZham93aGl0ZTQAYW50aXF1ZXdoaXRlNABjaG9jb2xhdGU0AGNoYXJ0cmV1c2U0AG1pc3R5cm9zZTQAcGFsZXR1cnF1b2lzZTQAYXp1cmU0AHRoZXJlNABhcXVhbWFyaW5lNAB0aGlzdGxlNABtZWRpdW1wdXJwbGU0AGRhcmtvcmFuZ2U0AGxpZ2h0Z29sZGVucm9kNABkYXJrZ29sZGVucm9kNABidXJseXdvb2Q0AGdvbGQ0AG1lZGl1bW9yY2hpZDQAZGFya29yY2hpZDQAcGFsZXZpb2xldHJlZDQAaW5kaWFucmVkNABvcmFuZ2VyZWQ0AG9saXZlZHJhYjQAbWFnZW50YTQAc2llbm5hNABceEY0AFx4RTQAXHhENABceEM0AFx4QjQAXHhBNABncmV5OTQAZ3JheTk0AFx4OTQAZ3JleTg0AGdyYXk4NABceDg0AGdyZXk3NABncmF5NzQAZ3JleTY0AGdyYXk2NABncmV5NTQAZ3JheTU0AGdyZXk0NABncmF5NDQAZ3JleTM0AGdyYXkzNABmcmFjMzQAZ3JleTI0AGdyYXkyNABncmV5MTQAZ3JheTE0AFx4MTQAZnJhYzE0AC9yZGd5OS80AC9idXB1OS80AC9yZHB1OS80AC9wdWJ1OS80AC95bGduYnU5LzQAL2duYnU5LzQAL3JkeWxidTkvNAAvcmRidTkvNAAvZ3JleXM5LzQAL2dyZWVuczkvNAAvYmx1ZXM5LzQAL3B1cnBsZXM5LzQAL29yYW5nZXM5LzQAL3JlZHM5LzQAL3B1b3I5LzQAL3lsb3JicjkvNAAvcHVidWduOS80AC9idWduOS80AC9wcmduOS80AC9yZHlsZ245LzQAL3lsZ245LzQAL3NwZWN0cmFsOS80AC9waXlnOS80AC9icmJnOS80AC9wdXJkOS80AC95bG9ycmQ5LzQAL29ycmQ5LzQAL3BhaXJlZDkvNAAvc2V0MzkvNAAvc2V0MTkvNAAvcGFzdGVsMTkvNAAvcmRneTgvNAAvYnVwdTgvNAAvcmRwdTgvNAAvcHVidTgvNAAveWxnbmJ1OC80AC9nbmJ1OC80AC9yZHlsYnU4LzQAL3JkYnU4LzQAL2FjY2VudDgvNAAvZ3JleXM4LzQAL2dyZWVuczgvNAAvYmx1ZXM4LzQAL3B1cnBsZXM4LzQAL29yYW5nZXM4LzQAL3JlZHM4LzQAL3B1b3I4LzQAL3lsb3JicjgvNAAvcHVidWduOC80AC9idWduOC80AC9wcmduOC80AC9yZHlsZ244LzQAL3lsZ244LzQAL3NwZWN0cmFsOC80AC9waXlnOC80AC9icmJnOC80AC9wdXJkOC80AC95bG9ycmQ4LzQAL29ycmQ4LzQAL3BhaXJlZDgvNAAvc2V0MzgvNAAvc2V0MjgvNAAvcGFzdGVsMjgvNAAvZGFyazI4LzQAL3NldDE4LzQAL3Bhc3RlbDE4LzQAL3JkZ3k3LzQAL2J1cHU3LzQAL3JkcHU3LzQAL3B1YnU3LzQAL3lsZ25idTcvNAAvZ25idTcvNAAvcmR5bGJ1Ny80AC9yZGJ1Ny80AC9hY2NlbnQ3LzQAL2dyZXlzNy80AC9ncmVlbnM3LzQAL2JsdWVzNy80AC9wdXJwbGVzNy80AC9vcmFuZ2VzNy80AC9yZWRzNy80AC9wdW9yNy80AC95bG9yYnI3LzQAL3B1YnVnbjcvNAAvYnVnbjcvNAAvcHJnbjcvNAAvcmR5bGduNy80AC95bGduNy80AC9zcGVjdHJhbDcvNAAvcGl5ZzcvNAAvYnJiZzcvNAAvcHVyZDcvNAAveWxvcnJkNy80AC9vcnJkNy80AC9wYWlyZWQ3LzQAL3NldDM3LzQAL3NldDI3LzQAL3Bhc3RlbDI3LzQAL2RhcmsyNy80AC9zZXQxNy80AC9wYXN0ZWwxNy80AC9yZGd5Ni80AC9idXB1Ni80AC9yZHB1Ni80AC9wdWJ1Ni80AC95bGduYnU2LzQAL2duYnU2LzQAL3JkeWxidTYvNAAvcmRidTYvNAAvYWNjZW50Ni80AC9ncmV5czYvNAAvZ3JlZW5zNi80AC9ibHVlczYvNAAvcHVycGxlczYvNAAvb3JhbmdlczYvNAAvcmVkczYvNAAvcHVvcjYvNAAveWxvcmJyNi80AC9wdWJ1Z242LzQAL2J1Z242LzQAL3ByZ242LzQAL3JkeWxnbjYvNAAveWxnbjYvNAAvc3BlY3RyYWw2LzQAL3BpeWc2LzQAL2JyYmc2LzQAL3B1cmQ2LzQAL3lsb3JyZDYvNAAvb3JyZDYvNAAvcGFpcmVkNi80AC9zZXQzNi80AC9zZXQyNi80AC9wYXN0ZWwyNi80AC9kYXJrMjYvNAAvc2V0MTYvNAAvcGFzdGVsMTYvNAAvcmRneTUvNAAvYnVwdTUvNAAvcmRwdTUvNAAvcHVidTUvNAAveWxnbmJ1NS80AC9nbmJ1NS80AC9yZHlsYnU1LzQAL3JkYnU1LzQAL2FjY2VudDUvNAAvZ3JleXM1LzQAL2dyZWVuczUvNAAvYmx1ZXM1LzQAL3B1cnBsZXM1LzQAL29yYW5nZXM1LzQAL3JlZHM1LzQAL3B1b3I1LzQAL3lsb3JicjUvNAAvcHVidWduNS80AC9idWduNS80AC9wcmduNS80AC9yZHlsZ241LzQAL3lsZ241LzQAL3NwZWN0cmFsNS80AC9waXlnNS80AC9icmJnNS80AC9wdXJkNS80AC95bG9ycmQ1LzQAL29ycmQ1LzQAL3BhaXJlZDUvNAAvc2V0MzUvNAAvc2V0MjUvNAAvcGFzdGVsMjUvNAAvZGFyazI1LzQAL3NldDE1LzQAL3Bhc3RlbDE1LzQAL3JkZ3k0LzQAL2J1cHU0LzQAL3JkcHU0LzQAL3B1YnU0LzQAL3lsZ25idTQvNAAvZ25idTQvNAAvcmR5bGJ1NC80AC9yZGJ1NC80AC9hY2NlbnQ0LzQAL2dyZXlzNC80AC9ncmVlbnM0LzQAL2JsdWVzNC80AC9wdXJwbGVzNC80AC9vcmFuZ2VzNC80AC9yZWRzNC80AC9wdW9yNC80AC95bG9yYnI0LzQAL3B1YnVnbjQvNAAvYnVnbjQvNAAvcHJnbjQvNAAvcmR5bGduNC80AC95bGduNC80AC9zcGVjdHJhbDQvNAAvcGl5ZzQvNAAvYnJiZzQvNAAvcHVyZDQvNAAveWxvcnJkNC80AC9vcnJkNC80AC9wYWlyZWQ0LzQAL3NldDM0LzQAL3NldDI0LzQAL3Bhc3RlbDI0LzQAL2RhcmsyNC80AC9zZXQxNC80AC9wYXN0ZWwxNC80AC9wYWlyZWQxMi80AC9zZXQzMTIvNAAvcmRneTExLzQAL3JkeWxidTExLzQAL3JkYnUxMS80AC9wdW9yMTEvNAAvcHJnbjExLzQAL3JkeWxnbjExLzQAL3NwZWN0cmFsMTEvNAAvcGl5ZzExLzQAL2JyYmcxMS80AC9wYWlyZWQxMS80AC9zZXQzMTEvNAAvcmRneTEwLzQAL3JkeWxidTEwLzQAL3JkYnUxMC80AC9wdW9yMTAvNAAvcHJnbjEwLzQAL3JkeWxnbjEwLzQAL3NwZWN0cmFsMTAvNAAvcGl5ZzEwLzQAL2JyYmcxMC80AC9wYWlyZWQxMC80AC9zZXQzMTAvNAAxLjQAbiA+PSA0AHNpZGVzID09IDQAaXZvcnkzAFNwYXJzZU1hdHJpeF9tdWx0aXBseTMAZ3JleTMAZGFya3NsYXRlZ3JheTMAXHgzAHNub3czAGxpZ2h0eWVsbG93MwBob25leWRldzMAd2hlYXQzAHN1cDMAdG9tYXRvMwByb3N5YnJvd24zAG1hcm9vbjMAbGlnaHRzYWxtb24zAGxlbW9uY2hpZmZvbjMAc3ByaW5nZ3JlZW4zAGRhcmtvbGl2ZWdyZWVuMwBwYWxlZ3JlZW4zAGRhcmtzZWFncmVlbjMAbGlnaHRjeWFuMwB0YW4zAHBsdW0zAHNlYXNoZWxsMwBjb3JhbDMAaG90cGluazMAbGlnaHRwaW5rMwBkZWVwcGluazMAY29ybnNpbGszAGZpcmVicmljazMAa2hha2kzAGxhdmVuZGVyYmx1c2gzAHBlYWNocHVmZjMAYmlzcXVlMwBsaWdodHNreWJsdWUzAGRlZXBza3libHVlMwBsaWdodGJsdWUzAGNhZGV0Ymx1ZTMAZG9kZ2VyYmx1ZTMAbGlnaHRzdGVlbGJsdWUzAHJveWFsYmx1ZTMAc2xhdGVibHVlMwBuYXZham93aGl0ZTMAYW50aXF1ZXdoaXRlMwBjaG9jb2xhdGUzAGNoYXJ0cmV1c2UzAG1pc3R5cm9zZTMAcGFsZXR1cnF1b2lzZTMAYXp1cmUzAGFxdWFtYXJpbmUzAHRoaXN0bGUzAG1lZGl1bXB1cnBsZTMAZGFya29yYW5nZTMAbGlnaHRnb2xkZW5yb2QzAGRhcmtnb2xkZW5yb2QzAGJ1cmx5d29vZDMAZ29sZDMAbWVkaXVtb3JjaGlkMwBkYXJrb3JjaGlkMwBwYWxldmlvbGV0cmVkMwBpbmRpYW5yZWQzAG9yYW5nZXJlZDMAb2xpdmVkcmFiMwBtYWdlbnRhMwBzaWVubmEzAFx4RjMAXHhFMwBceEQzAFx4QzMAXHhCMwBceEEzAGdyZXk5MwBncmF5OTMAXHg5MwBncmV5ODMAZ3JheTgzAFx4ODMAZ3JleTczAGdyYXk3MwBncmV5NjMAZ3JheTYzAGdyZXk1MwBncmF5NTMAMjAyNDEyMDYuMjM1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQAxMi4yLjEAbGF0aW4tMQBJU09fODg1OS0xAElTTzg4NTktMQBJU08tODg1OS0xAG4gPiAxAGkgPj0gMQBxLT5uID09IDEAcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAwIHx8IHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5wYXJ0aXRpb25baV0gPT0gMQBiei5zaXplICUgMyA9PSAxAFRyZWVfZWRnZS5zaXplID09IE5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMABncmV5MTAAZ3JheTEwAFx4MTAAIzEwMTAxMAAvcGFpcmVkMTIvMTAAL3NldDMxMi8xMAAvcmRneTExLzEwAC9yZHlsYnUxMS8xMAAvcmRidTExLzEwAC9wdW9yMTEvMTAAL3ByZ24xMS8xMAAvcmR5bGduMTEvMTAAL3NwZWN0cmFsMTEvMTAAL3BpeWcxMS8xMAAvYnJiZzExLzEwAC9wYWlyZWQxMS8xMAAvc2V0MzExLzEwAC9yZGd5MTAvMTAAL3JkeWxidTEwLzEwAC9yZGJ1MTAvMTAAL3B1b3IxMC8xMAAvcHJnbjEwLzEwAC9yZHlsZ24xMC8xMAAvc3BlY3RyYWwxMC8xMAAvcGl5ZzEwLzEwAC9icmJnMTAvMTAAL3BhaXJlZDEwLzEwAC9zZXQzMTAvMTAAMTIwMABncmV5MTAwAGdyYXkxMDAASVNPLUlSLTEwMAAxMDAwMAAlIVBTLUFkb2JlLTMuMABueiA+IDAAbGlzdC0+Y2FwYWNpdHkgPiAwAGRpc3QgPiAwAHBhdGhjb3VudCA+IDAAd2d0ID4gMABuc2l0ZXMgPiAwAHNpZGVzID4gMAAocnYgPT0gMCkgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABsZW4gPiAwAHF0MS0+biA+IDAgJiYgcXQyLT5uID4gMAB3aWR0aCA+IDAAbGlzdC0+c2l6ZSA+IDAAc3BsLT5zaXplID4gMABzZWxmLT5zaXplID4gMABiei5zaXplID4gMABncmFwaC0+d2VpZ2h0c1t4XSA+IDAAZ3JhcGgtPndlaWdodHNbbl9lZGdlc10gPiAwAG0gPiAwICYmIG4gPiAwICYmIG56ID49IDAAdCA+PSAwAG5ub2RlcyA+PSAwAG5fb2JzID49IDAAbiA+PSAwAG4tPmxldmVsID49IDAAdG90YWwgPj0gMABvcmlnaW5hbCA+PSAwAE1heHJhbmsgPj0gMABQYWNrID49IDAAaWkgPCAxPDxkaW0gJiYgaWkgPj0gMAB3aWR0aCA+PSAwAGpkaWFnID49IDAAaWRpYWcgPj0gMABkID49IDAAcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzBdID49IDAgJiYgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID49IDAAViA+PSAwAGFnbm5vZGVzKGdyYXBoKSA+PSAwAGFnbm5vZGVzKGcpID49IDAARURfY291bnQoZSkgPj0gMABvYmpwMS0+c3oueCA9PSAwICYmIG9ianAxLT5zei55ID09IDAAY19jbnQgPT0gMAByYW5rX3Jlc3VsdCA9PSAwAGdldHRpbWVvZmRheV9yZXMgPT0gMABqID09IDAATkRfaW4ocmlnaHQpLnNpemUgKyBORF9vdXQocmlnaHQpLnNpemUgPT0gMABhLnNoYXBlID09IDAgfHwgYi5zaGFwZSA9PSAwAGR0c2l6ZShkZXN0KSA9PSAwAGR0c2l6ZShnLT5uX3NlcSkgPT0gMABkdHNpemUoZy0+Z19zZXEpID09IDAAZHRzaXplKGctPmVfc2VxKSA9PSAwAEdEX21pbnJhbmsoZykgPT0gMABkdHNpemUoZy0+Z19pZCkgPT0gMABkdHNpemUoZy0+ZV9pZCkgPT0gMABjb3N4ICE9IDAgfHwgc2lueCAhPSAwAG1lbWNtcCgmc3R5bGUsICYoZ3JhcGh2aXpfcG9seWdvbl9zdHlsZV90KXswfSwgc2l6ZW9mKHN0eWxlKSkgIT0gMAByZXN1bHQgPT0gKGludCkoc2l6ZSAtIDEpIHx8IHJlc3VsdCA8IDAAbWFza1tpaV0gPCAwAE5EX2hlYXBpbmRleCh2KSA8IDAAXC8AWDExLwAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFwYnNfc2l6ZV9pc19lbXB0eShsaXN0KQBvYmpsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAZGVnbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAY2xpc3RfaXNfY29udGlndW91cyhsaXN0KQBwb2ludHNfaXNfY29udGlndW91cyhsaXN0KQBzdHJzX2lzX2NvbnRpZ3VvdXMobGlzdCkAQWdyYXBoc19pc19jb250aWd1b3VzKGxpc3QpAGJveGVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAbGF5ZXJfbmFtZXNfaXNfY29udGlndW91cyhsaXN0KQB2YXJhcnJfaXNfY29udGlndW91cyhsaXN0KQBiZXppZXJfcGF0aF9pc19jb250aWd1b3VzKGxpc3QpAHBic19zaXplX2lzX2NvbnRpZ3VvdXMobGlzdCkAb25lIDw9IG5vZGVsaXN0X3NpemUobGlzdCkAbnAgPCBub2RlbGlzdF9zaXplKGxpc3QpAHN0ZDo6aXNfaGVhcChoZWFwLmJlZ2luKCksIGhlYXAuZW5kKCksIGd0KQAhKHEtPnF0cykAIWludHNfaXNfZW1wdHkoJmxlYXZlcykAb25faGVhcChyKQBub2RlX3NldF9zaXplKGctPm5faWQpID09IChzaXplX3QpZHRzaXplKGctPm5fc2VxKQBORF9yYW5rKGZyb20pIDwgTkRfcmFuayh0bykAbm90IHdlbGwtZm9ybWVkIChpbnZhbGlkIHRva2VuKQBhZ3N1YnJlcChnLG4pAG4gIT0gTkRfbmV4dChuKQBmaW5kX2Zhc3Rfbm9kZShnLCBuKQAobnVsbCkAKCFqY24pICYmICghdmFsKQAhKHEtPmwpAHN5bS0+aWQgPj0gMCAmJiBzeW0tPmlkIDwgdG9wZGljdHNpemUob2JqKQAhKCpmbGFnKQBtb3ZlIHRvICglLjBmLCAlLjBmKQA7IHNwbGluZSB0byAoJS4wZiwgJS4wZikAOyBsaW5lIHRvICglLjBmLCAlLjBmKQBTcGFyc2VNYXRyaXhfaXNfc3ltbWV0cmljKEEsIHRydWUpAHZhbHVlICYmIHN0cmxlbih2YWx1ZSkAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCBmYWxzZSkAIXVzZV9zdGFnZSB8fCBzaXplIDw9IHNpemVvZihzdGFnZSkARURfbGFiZWwoZmUpACFUUkVFX0VER0UoZSkAIWNvbnN0cmFpbmluZ19mbGF0X2VkZ2UoZywgZSkAbm9kZV9zZXRfaXNfZW1wdHkoZy0+bl9pZCkAcl8lZCkAbF8lZCkAKGxpYikAIVNwYXJzZU1hdHJpeF9oYXNfZGlhZ29uYWwoQSkAIHNjYW5uaW5nIGEgSFRNTCBzdHJpbmcgKG1pc3NpbmcgJz4nPyBiYWQgbmVzdGluZz8gbG9uZ2VyIHRoYW4gJWQ/KQAgc2Nhbm5pbmcgYSBxdW90ZWQgc3RyaW5nIChtaXNzaW5nIGVuZHF1b3RlPyBsb25nZXIgdGhhbiAlZD8pACBzY2FubmluZyBhIC8qLi4uKi8gY29tbWVudCAobWlzc2luZyAnKi8/IGxvbmdlciB0aGFuICVkPykAZmFsbGJhY2soNCkAb25faGVhcChyMCkgfHwgb25faGVhcChyMSkAQWdyYXBoc19pc19lbXB0eShnX3NlcTIoZykpAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAYWdoZWFkKGUpID09IFVGX2ZpbmQoYWdoZWFkKGUpKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAc3RyZXEobW9kZSwgInIiKSB8fCBzdHJlcShtb2RlLCAicmIiKSB8fCBzdHJlcShtb2RlLCAidyIpIHx8IHN0cmVxKG1vZGUsICJ3YiIpAHBuYW1lICE9IE5VTEwgJiYgIXN0cmVxKHBuYW1lLCAiIikAc2V0bGluZXdpZHRoKAApIHJvdGF0ZSglZCkgdHJhbnNsYXRlKAAgdHJhbnNmb3JtPSJzY2FsZSgATk9UQVRJT04oACAoACBuZWFyICclcycAJWxmLCVsZiwlbGYsJyVbXiddJwBpc2RpZ2l0KChpbnQpZG90cFsxXSkgJiYgaXNkaWdpdCgoaW50KWRvdHBbMl0pICYmIGRvdHBbM10gPT0gJ1wwJwAmACUAJAB1cmwoIwA8dGV4dFBhdGggeGxpbms6aHJlZj0iIwA8YXJlYSBzaGFwZT0icG9seSIAIGZpbGw9IiMlMDJ4JTAyeCUwMngiAChzZXEgJiBTRVFfTUFTSykgPT0gc2VxICYmICJzZXF1ZW5jZSBJRCBvdmVyZmxvdyIAZ3Zfc29ydF9jb21wYXIgPT0gTlVMTCAmJiBndl9zb3J0X2FyZyA9PSBOVUxMICYmICJ1bnN1cHBvcnRlZCByZWN1cnNpdmUgY2FsbCB0byBndl9zb3J0IgBndl9zb3J0X2NvbXBhciAhPSBOVUxMICYmICJubyBjb21wYXJhdG9yIHNldCBpbiBndl9zb3J0IgBvcC0+b3AudS5wb2x5Z29uLmNudCA8PSBJTlRfTUFYICYmICJwb2x5Z29uIGNvdW50IGV4Y2VlZHMgZ3ZyZW5kZXJfcG9seWdvbiBzdXBwb3J0IgAgdGV4dC1hbmNob3I9InN0YXJ0IgBwLnggIT0gYSAmJiAiY2Fubm90IGhhbmRsZSBlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaW4gaG9yaXpvbnRhbCBleHRyZW1lIHBvaW50IgBmdWxsX2xlbmd0aF93aXRob3V0X3NoYWZ0ID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgbGVuZ3RoIHdpdGhvdXQgc2hhZnQiADxhcmVhIHNoYXBlPSJyZWN0IgBzaXplID4gMCAmJiAiYXR0ZW1wdCB0byBhbGxvY2F0ZSBhcnJheSBvZiAwLXNpemVkIGVsZW1lbnRzIgBpbmRleCA8IHNlbGYtPnNpemVfYml0cyAmJiAib3V0IG9mIGJvdW5kcyBhY2Nlc3MiAGluZGV4IDwgc2VsZi5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgAqczEgIT0gKnMyICYmICJkdXBsaWNhdGUgc2VwYXJhdG9yIGNoYXJhY3RlcnMiAEdEX21pbnJhbmsoc3ViZykgPD0gR0RfbWF4cmFuayhzdWJnKSAmJiAiY29ycnVwdGVkIHJhbmsgYm91bmRzIgBpbmRleCA8IGxpc3QtPnNpemUgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZWxpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCBpbnRzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZXNfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAKHVpbnRwdHJfdClzICUgMiA9PSAwICYmICJoZWFwIHBvaW50ZXIgd2l0aCBsb3cgYml0IHNldCB3aWxsIGNvbGxpZGUgd2l0aCBhbm9ueW1vdXMgSURzIgAgKCslNmxkIGJ5dGVzICVzfCV1LCB4bWxwYXJzZS5jOiVkKSAlKnMiACBmb250LWZhbWlseT0iJXMiACBmb250LXdlaWdodD0iJXMiACBmaWxsPSIlcyIAIGZvbnQtc3RyZXRjaD0iJXMiACBmb250LXN0eWxlPSIlcyIAYmFkIGVkZ2UgbGVuICIlcyIAIGJhc2VsaW5lLXNoaWZ0PSJzdXBlciIAYWd4Ymxlbih4YikgPD0gc2l6ZW9mKHhiLT51LnN0b3JlKSAmJiAiYWd4YnVmIGNvcnJ1cHRpb24iAGNlbGwucm93IDwgdGFibGUtPnJvd19jb3VudCAmJiAib3V0IG9mIHJhbmdlIGNlbGwiAGNlbGwuY29sIDwgdGFibGUtPmNvbHVtbl9jb3VudCAmJiAib3V0IG9mIHJhbmdlIGNlbGwiACB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgBmdWxsX2xlbmd0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGxlbmd0aCIAZnVsbF9iYXNlX3dpZHRoID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgYmFzZSB3aWR0aCIAbm9taW5hbF9iYXNlX3dpZHRoID4gMCAmJiAibm9uLXBvc2l0aXZlIG5vbWluYWwgYmFzZSB3aWR0aCIAIiB3aWR0aD0iJWdweCIgaGVpZ2h0PSIlZ3B4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0IiB4PSIlZyIgeT0iJWciACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgeD0iJWciIHk9IiVnIgAgZm9udC1zaXplPSIlLjJmIgAgdmlld0JveD0iJS4yZiAlLjJmICUuMmYgJS4yZiIAIGZpbGwtb3BhY2l0eT0iJWYiAGlzZmluaXRlKG0pICYmICJlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaXMgaW5maW5pdGUiACh4Yi0+dS5zLmxvY2F0ZWQgPT0gQUdYQlVGX09OX0hFQVAgfHwgeGItPnUucy5sb2NhdGVkIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkpICYmICJjb3JydXB0ZWQgYWd4YnVmIHR5cGUiACB0ZXh0LWFuY2hvcj0ibWlkZGxlIgA8YXJlYSBzaGFwZT0iY2lyY2xlIgBjZWxsLT5yb3cgKyBjZWxsLT5yb3dzcGFuIDw9IHRhYmxlLT5yb3dfY291bnQgJiYgImNlbGwgc3BhbnMgaGlnaGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAY2VsbC5yb3cgKyBjZWxsLnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLT5jb2wgKyBjZWxsLT5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLmNvbCArIGNlbGwuY29sc3BhbiA8PSB0YWJsZS0+Y29sdW1uX2NvdW50ICYmICJjZWxsIHNwYW5zIHdpZGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAb2xkX25tZW1iIDwgU0laRV9NQVggLyBzaXplICYmICJjbGFpbWVkIHByZXZpb3VzIGV4dGVudCBpcyB0b28gbGFyZ2UiAHRoZXRhID49IDAgJiYgdGhldGEgPD0gTV9QSSAmJiAidGhldGEgb3V0IG9mIHJhbmdlIgB0YWJsZS0+aGVpZ2h0cyA9PSBOVUxMICYmICJ0YWJsZSBoZWlnaHRzIGNvbXB1dGVkIHR3aWNlIgB0YWJsZS0+d2lkdGhzID09IE5VTEwgJiYgInRhYmxlIHdpZHRocyBjb21wdXRlZCB0d2ljZSIAIHRleHQtYW5jaG9yPSJlbmQiACBmb250LXdlaWdodD0iYm9sZCIAIGZvbnQtc3R5bGU9Iml0YWxpYyIAIGJhc2VsaW5lLXNoaWZ0PSJzdWIiAFwiAGxsZW4gPD0gKHNpemVfdClJTlRfTUFYICYmICJYTUwgdG9rZW4gdG9vIGxvbmcgZm9yIGV4cGF0IEFQSSIAIiByeT0iAF9wIiBzdGFydE9mZnNldD0iNTAlIj48dHNwYW4geD0iMCIgZHk9IgAiIGN5PSIAIiB5PSIAIiByeD0iACBjeD0iACB4PSIAIHRhcmdldD0iACBwb2ludHM9IgAgY29vcmRzPSIAIHRleHQtZGVjb3JhdGlvbj0iACBmaWxsPSIAIiBzdHJva2Utd2lkdGg9IgA8aW1h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ICAgICAgICAgICBbMS4wMCByZ2IgPDAuNTAsIDAuNTAsIDAuNTA+XQogICAgICAgICAgICB9CiAgICAgICAgICAgIHNjYWxlIDwxLjAwLCAxLjAwLCAxLjUwPiAqIDIuNTAKICAgICAgICAgICAgdHJhbnNsYXRlIDwwLjAwLCAwLjAwLCAwLjAwPgogICAgICAgIH0KICAgICAgICBmaW5pc2ggeyBhbWJpZW50IDEgZGlmZnVzZSAwIH0KICAgIH0KICAgIHNjYWxlIDEwMDAwCn0KLy9taXN0CmZvZyB7IGZvZ190eXBlIDIKICAgIGRpc3RhbmNlIDUwCiAgICBjb2xvciByZ2IgPDEuMDAsIDEuMDAsIDEuMDA+ICogMC43NQogICAgZm9nX29mZnNldCAwLjEwCiAgICBmb2dfYWx0IDEuNTAKICAgIHR1cmJ1bGVuY2UgMS43NQp9Ci8vZ25kCnBsYW5lIHsgPDAuMDAsIDEuMDAsIDAuMDA+LCAwCiAgICB0ZXh0dXJlIHsKICAgICAgICBwaWdtZW50eyBjb2xvciByZ2IgPDAuMjUsIDAuNDUsIDAuMDA+IH0KICAgICAgICBub3JtYWwgeyBidW1wcyAwLjc1IHNjYWxlIDAuMDEgfQogICAgICAgIGZpbmlzaCB7IHBob25nIDAuMTAgfQogICAgfQp9CgBjYW1lcmEgeyBsb2NhdGlvbiA8JS4zZiAsICUuM2YgLCAtNTAwLjAwMD4KICAgICAgICAgbG9va19hdCAgPCUuM2YgLCAlLjNmICwgMC4wMDA+CiAgICAgICAgIHJpZ2h0IHggKiBpbWFnZV93aWR0aCAvIGltYWdlX2hlaWdodAogICAgICAgICBhbmdsZSAlLjNmCn0KACAgICBtYXRlcmlhbCBNYXRlcmlhbCB7CgBTaGFwZSB7CgAgIGFwcGVhcmFuY2UgQXBwZWFyYW5jZSB7CgAvdXNlcl9zaGFwZV8lZCB7CgBncmFwaCBHIHsKAGFycm93aGVhZCA9IDcgJXMgbm90IHVzZWQgYnkgZ3JhcGh2aXoKAGJveHJhZCA9IDAgJXMgbm8gcm91bmRlZCBjb3JuZXJzIGluIGdyYXBodml6CgBvdXQgb2YgbWVtb3J5CgAlczogY291bGQgbm90IGFsbG9jYXRlIG1lbW9yeQoAR3JhcGh2aXogYnVpbHQgd2l0aG91dCBhbnkgdHJpYW5ndWxhdGlvbiBsaWJyYXJ5CgByZW1vdmVfb3ZlcmxhcDogR3JhcGh2aXogbm90IGJ1aWx0IHdpdGggdHJpYW5ndWxhdGlvbiBsaWJyYXJ5CgAlcyBmaWxsIGhhcyBubyBtZWFuaW5nIGluIERXQiAyLCBncGljIGNhbiB1c2UgZmlsbCBvciBmaWxsZWQsIDEwdGggRWRpdGlvbiB1c2VzIGZpbGwgb25seQoAYm94cmFkPTIuMCAlcyB3aWxsIGJlIHJlc2V0IHRvIDAuMCBieSBncGljIG9ubHkKAGluIGNoZWNrcGF0aCwgc3RhcnQgcG9ydCBub3QgaW4gZmlyc3QgYm94CgBpbiBjaGVja3BhdGgsIGVuZCBwb3J0IG5vdCBpbiBsYXN0IGJveAoAJWQgJWQgIyUwMnglMDJ4JTAyeAoASGVhcCBvdmVyZmxvdwoAdGV4dCB7CiAgICB0dGYgIiVzIiwKICAgICIlcyIsICUuM2YsICUuM2YKICAgICAgICBub19zaGFkb3cKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlenUKAHRvdGFsIGFkZGVkIHNvIGZhciA9ICV6dQoAcm9vdCA9ICVzIG1heCBzdGVwcyB0byByb290ID0gJWxsdQoALnBzICUuMGYqXG4oU0Z1LyUuMGZ1CgAgIG1hcmdpbiAldQoATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQoATnVtYmVyIG9mIGluY3JlYXNlcyA9ICV1CgBvdmVybGFwIFsldV0gOiAldQoAICVzIGFsaWduZWR0ZXh0CgBsYXllcnMgbm90IHN1cHBvcnRlZCBpbiAlcyBvdXRwdXQKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IG91dGVkZ2UgbGlzdAoAYWRkX3RyZWVfZWRnZTogZW1wdHkgaW5lZGdlIGxpc3QKAE5vIGxpYnogc3VwcG9ydAoAJXMgLlBTIHcvbyBhcmdzIGNhdXNlcyBHTlUgcGljIHRvIHNjYWxlIGRyYXdpbmcgdG8gZml0IDguNXgxMSBwYXBlcjsgRFdCIGRvZXMgbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgbGluZXRoaWNrIHZhcmlhYmxlIHRvIHNldCBsaW5lIHRoaWNrbmVzczsgRFdCIGFuZCAxMHRoIEVkLiBkbyBub3QKACVzIEdOVSBwaWMgc3VwcG9ydHMgYSBib3hyYWQgdmFyaWFibGUgdG8gZHJhdyBib3hlcyB3aXRoIHJvdW5kZWQgY29ybmVyczsgRFdCIGFuZCAxMHRoIEVkLiBkbyBub3QKACAvJXMgc2V0X2ZvbnQKACVzJS4qcyBpcyBub3QgYSB0cm9mZiBmb250CgB1bmV4cGVjdGVkIGNhc2UgaW4gbG9jYXRlX2VuZHBvaW50CgBjZWxsIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgB0YWJsZSBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAJSVFbmREb2N1bWVudAoAVW5jbG9zZWQgY29tbWVudAoATGFiZWwgY2xvc2VkIGJlZm9yZSBlbmQgb2YgSFRNTCBlbGVtZW50CgBQb3J0cmFpdAoAZml4ZWQgY2VsbCBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBmaXhlZCB0YWJsZSBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBwb3MgYXR0cmlidXRlIGZvciBlZGdlICglcywlcykgZG9lc24ndCBoYXZlIDNuKzEgcG9pbnRzCgAgIGdlbmVyYXRlZCAlZCBjb25zdHJhaW50cwoAc3BsaW5lcyBhbmQgY2x1c3RlciBlZGdlcyBub3Qgc3VwcG9ydGVkIC0gdXNpbmcgbGluZSBzZWdtZW50cwoAb2JqZWN0cwoAV2FybmluZzogbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBmbG9hdHMKAGZvbnQgbmFtZSAlcyBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgbWF5IG5vdCBiZSBhY2NlcHRlZCBieSBzb21lIFBTIHZpZXdlcnMKAGZvbnQgbmFtZSAlcyBpcyBsb25nZXIgdGhhbiAyOSBjaGFyYWN0ZXJzIHdoaWNoIG1heSBiZSByZWplY3RlZCBieSBzb21lIFBTIHZpZXdlcnMKAGNhbm5vdCBhbGxvY2F0ZSBwcwoAc2NhbGU9MS4wICVzIHJlcXVpcmVkIGZvciBjb21wYXJpc29ucwoAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwoAJXMgRFdCIDIgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucwoAYXJyYXkgcGFja2luZzogJXMgJXp1IHJvd3MgJXp1IGNvbHVtbnMKAHN5bnRheCBhbWJpZ3VpdHkgLSBiYWRseSBkZWxpbWl0ZWQgbnVtYmVyICclcycgaW4gbGluZSAlZCBvZiAlcyBzcGxpdHMgaW50byB0d28gdG9rZW5zCgBlZGdlIGxhYmVscyB3aXRoIHNwbGluZXM9Y3VydmVkIG5vdCBzdXBwb3J0ZWQgaW4gZG90IC0gdXNlIHhsYWJlbHMKAGZsYXQgZWRnZSBiZXR3ZWVuIGFkamFjZW50IG5vZGVzIG9uZSBvZiB3aGljaCBoYXMgYSByZWNvcmQgc2hhcGUgLSByZXBsYWNlIHJlY29yZHMgd2l0aCBIVE1MLWxpa2UgbGFiZWxzCgBvdXQgb2YgbWVtb3J5IHdoZW4gdHJ5aW5nIHRvIGFsbG9jYXRlICV6dSBieXRlcwoAaW50ZWdlciBvdmVyZmxvdyB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgKiAlenUgYnl0ZXMKAHVwZGF0ZTogbWlzbWF0Y2hlZCBsY2EgaW4gdHJlZXVwZGF0ZXMKAGdyYXBoICVzLCBjb29yZCAlcywgZXhwZWN0ZWQgZm91ciBkb3VibGVzCgBub2RlICVzLCBwb3NpdGlvbiAlcywgZXhwZWN0ZWQgdHdvIGRvdWJsZXMKAEZvdW5kICVkIERpRy1Db0xhIGJvdW5kYXJpZXMKAEluY2hlcwoAKCU0enUpICU3enUgbm9kZXMgJTd6dSBlZGdlcwoAY29tcG91bmRFZGdlczogY291bGQgbm90IGNvbnN0cnVjdCBvYnN0YWNsZXMgLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAdGhlIGJvdW5kaW5nIGJveGVzIG9mIHNvbWUgbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAY29tcG91bmRFZGdlczogbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAc29tZSBub2RlcyB3aXRoIG1hcmdpbiAoJS4wMmYsJS4wMmYpIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAG1lcmdlMjogZ3JhcGggJXMsIHJhbmsgJWQgaGFzIG9ubHkgJWQgPCAlZCBub2RlcwoAU2Nhbm5pbmcgZ3JhcGggJXMsICVkIG5vZGVzCgBXYXJuaW5nOiBubyBoYXJkLWNvZGVkIG1ldHJpY3MgZm9yICclcycuICBGYWxsaW5nIGJhY2sgdG8gJ1RpbWVzJyBtZXRyaWNzCgBpbiBlZGdlICVzJXMlcwoAVXNpbmcgJXM6ICVzOiVzCgBGb3JtYXQ6ICIlcyIgbm90IHJlY29nbml6ZWQuIFVzZSBvbmUgb2Y6JXMKAExheW91dCB0eXBlOiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBsYXlvdXQgJXMKAC5mdCAlcwoAYmFkIGxhYmVsIGZvcm1hdCAlcwoAaW4gcm91dGVzcGxpbmVzLCBlZGdlIGlzIGEgbG9vcCBhdCAlcwoAICAgICAgICU3ZCBub2RlcyAlN2QgZWRnZXMgJTd6dSBjb21wb25lbnRzICVzCgBpbiBsYWJlbCBvZiBlZGdlICVzICVzICVzCgAgIEVkZ2UgJXMgJXMgJXMKAG9ydGhvICVzICVzCgBwb2x5bGluZSAlcyAlcwoAc3BsaW5lICVzICVzCgByZWN0YW5nbGUgKCUuMGYsJS4wZikgKCUuMGYsJS4wZikgJXMgJXMKAGluIGNsdXN0ZXIgJXMKACVzIHdhcyBhbHJlYWR5IGluIGEgcmFua3NldCwgZGVsZXRlZCBmcm9tIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiB0YWlsIG5vdCBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBpcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgBoZWFkIGNsdXN0ZXIgJXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBub2RlICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiBoZWFkIG5vdCBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBpcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgB0YWlsIGNsdXN0ZXIgJXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBub2RlICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAFVuaGFuZGxlZCBhZGp1c3Qgb3B0aW9uICVzCgByZXBvc2l0aW9uICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIHhsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB0YWlsIGxhYmVsICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIGxhYmVsICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIGhlYWQgbGFiZWwgJXMKAC8vKioqIGJlZ2luX2dyYXBoICVzCgBNYXguIGl0ZXJhdGlvbnMgKCVkKSByZWFjaGVkIG9uIGdyYXBoICVzCgBDb3VsZCBub3QgcGFyc2UgIl9iYWNrZ3JvdW5kIiBhdHRyaWJ1dGUgaW4gZ3JhcGggJXMKAGluIGxhYmVsIG9mIGdyYXBoICVzCgBDcmVhdGluZyBlZGdlcyB1c2luZyAlcwoAQWRqdXN0aW5nICVzIHVzaW5nICVzCgAlcyB3aGlsZSBvcGVuaW5nICVzCgBkZXJpdmUgZ3JhcGggX2RnXyVkIG9mICVzCgAgXSAgJXp1IHRydWUgJXMKAF0gICVkIHRydWUgJXMKACBdICAlenUgZmFsc2UgJXMKAF0gICVkIGZhbHNlICVzCgBtYWtlUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgBtYWtlQWRkUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgB1c2luZyAlcyBmb3IgdW5rbm93biBzaGFwZSAlcwoAICBvY3RyZWUgc2NoZW1lICVzCgBjYW4ndCBvcGVuIGxpYnJhcnkgZmlsZSAlcwoAY2FuJ3QgZmluZCBsaWJyYXJ5IGZpbGUgJXMKAEJvdW5kaW5nQm94IG5vdCBmb3VuZCBpbiBlcHNmIGZpbGUgJXMKAGNvdWxkbid0IG9wZW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCByZWFkIGZyb20gZXBzZiBmaWxlICVzCgBpbiBub2RlICVzCgBzaGFwZWZpbGUgbm90IHNldCBvciBub3QgZm91bmQgZm9yIGVwc2Ygbm9kZSAlcwoAaW4gbGFiZWwgb2Ygbm9kZSAlcwoAZW5kICVzCgByYW5raW5nOiBmYWlsdXJlIHRvIGNyZWF0ZSBzdHJvbmcgY29uc3RyYWludCBlZGdlIGJldHdlZW4gbm9kZXMgJXMgYW5kICVzCgBvb3BzLCBpbnRlcm5hbCBlcnJvcjogdW5oYW5kbGVkIGNvbG9yIHR5cGU9JWQgJXMKACVkICVkICVkICVkICVkICVkICVkICVkICVkICUuMWYgJWQgJWQgJWQgJWQgJWQgJWQKICVkICVzCgByb290ID0gJXMKAC8vKioqIHRleHRzcGFuOiAlcywgZm9udHNpemUgPSAlLjNmLCBmb250bmFtZSA9ICVzCgB0cmllcyA9ICVkLCBtb2RlID0gJXMKAC8vKioqIGNvbW1lbnQ6ICVzCgBmb250bmFtZTogIiVzIiByZXNvbHZlZCB0bzogJXMKACUlJSVQYWdlT3JpZW50YXRpb246ICVzCgBkZWxhdW5heV90cmlhbmd1bGF0aW9uOiAlcwoAZGVsYXVuYXlfdHJpOiAlcwoAZ3ZwcmludGY6ICVzCgBuZXN0aW5nIG5vdCBhbGxvd2VkIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcpJyBpbiBzdHlsZTogJXMKAHVubWF0Y2hlZCAnKCcgaW4gc3R5bGU6ICVzCgAlJSUlVGl0bGU6ICVzCgAlcyBUaXRsZTogJXMKACMgVGl0bGU6ICVzCgAvLyoqKiBiZWdpbl9ub2RlOiAlcwoAcmVhbGxvYyBmYWlsZWQ6ICVzCgBsaWIvcGF0aHBsYW4vJXM6JWQ6ICVzCgBncmlkKCVkLCVkKTogJXMKAENvdWxkIG5vdCBvcGVuICIlcyIgZm9yIHdyaXRpbmcgOiAlcwoAc3RhcnQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAZW5kIHBvcnQ6ICglLjVnLCAlLjVnKSwgdGFuZ2VudCBhbmdsZTogJS41ZywgJXMKACBbJXp1XSAlcCBzZXQgJWQgKCUuMDJmLCUuMDJmKSAoJS4wMmYsJS4wMmYpICVzCgAlJSAlcwoAIyAlcwoAICBtb2RlICAgJXMKAGNvbmp1Z2F0ZV9ncmFkaWVudDogdW5leHBlY3RlZCBsZW5ndGggMCB2ZWN0b3IKACVzIHRvIGNoYW5nZSBkcmF3aW5nIHNpemUsIG11bHRpcGx5IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9uIHRoZSAuUFMgbGluZSBhYm92ZSBhbmQgdGhlIG51bWJlciBvbiB0aGUgdHdvIGxpbmVzIGJlbG93IChyb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVnZXIpIGJ5IGEgc2NhbGUgZmFjdG9yCgBhZGRfc2VnbWVudDogZXJyb3IKACUuNWcgJS41ZyAlLjVnICVzY29sb3IKADAgMCAwIGVkZ2Vjb2xvcgoAMC44IDAuOCAwLjggc2V0cmdiY29sb3IKADAgMCAxIHNldHJnYmNvbG9yCgAxIDAgMCBzZXRyZ2Jjb2xvcgoAMCAwIDAgc2V0cmdiY29sb3IKACVkICVkIHNldGxheWVyCgAvLyoqKiBlbmRfbGF5ZXIKAFVURi04IGlucHV0IHVzZXMgbm9uLUxhdGluMSBjaGFyYWN0ZXJzIHdoaWNoIGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgUG9zdFNjcmlwdCBkcml2ZXIKAExldHRlcgoALy8qKiogYmVnaW5fY2x1c3RlcgoALy8qKiogZW5kX2NsdXN0ZXIKAHJlbW92aW5nIGVtcHR5IGNsdXN0ZXIKAENlbnRlcgoAV2FybmluZzogbm8gdmFsdWUgZm9yIHdpZHRoIG9mIG5vbi1BU0NJSSBjaGFyYWN0ZXIgJXUuIEZhbGxpbmcgYmFjayB0byB3aWR0aCBvZiBzcGFjZSBjaGFyYWN0ZXIKAGJhc2UgcmVmZXJlcgoAJSVQYWdlVHJhaWxlcgoAJSVUcmFpbGVyCgAvLyoqKiBiZXppZXIKACIlcyIgd2FzIG5vdCBmb3VuZCBhcyBhIGZpbGUgb3IgYXMgYSBzaGFwZSBsaWJyYXJ5IG1lbWJlcgoAc3RvcAoAIGN1cnZldG8KAG5ld3BhdGggJS4wZiAlLjBmIG1vdmV0bwoAJS4wZiAlLjBmIGxpbmV0bwoAIGxheW91dD1uZWF0bwoAbm9kZSAlcyBpbiBncmFwaCAlcyBoYXMgbm8gcG9zaXRpb24KACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGhhdmUgbm8gbWVhbmluZyBpbiBEV0IgMi4wLCBzZXQgcGFnZSBib3VuZGFyaWVzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgYXJyb3doZWFkIGhhcyBubyBtZWFuaW5nIGluIERXQiAyLCBhcnJvd2hlYWQgPSA3IG1ha2VzIGZpbGxlZCBhcnJvd2hlYWRzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgYXJyb3doZWFkIGlzIHVuZGVmaW5lZCBpbiBEV0IgMiwgaW5pdGlhbGx5IDEgaW4gZ3BpYywgMiBpbiAxMHRoIEVkaXRpb24KAG1ham9yaXphdGlvbgoALy8qKiogcG9seWdvbgoAb3ZlcmZsb3cgd2hlbiBjb21wdXRpbmcgZWRnZSB3ZWlnaHQgc3VtCgBzZmRwIG9ubHkgc3VwcG9ydHMgc3RhcnQ9cmFuZG9tCgBub2RlIHBvc2l0aW9ucyBhcmUgaWdub3JlZCB1bmxlc3Mgc3RhcnQ9cmFuZG9tCgBjbG9zZXBhdGggZmlsbAoAIGVsbGlwc2VfcGF0aCBmaWxsCgAgICUuMGYgJS4wZiBjZWxsCgAlZiAlZiAlZiAlZiBjZWxsCgBncmFwaCAlcyBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZ3JhcGggaXMgZGlzY29ubmVjdGVkLiBIZW5jZSwgdGhlIGNpcmN1aXQgbW9kZWwKAGVkZ2VzIGluIGdyYXBoICVzIGhhdmUgbm8gbGVuIGF0dHJpYnV0ZS4gSGVuY2UsIHRoZSBtZHMgbW9kZWwKAGNpcmN1aXQgbW9kZWwgbm90IHlldCBzdXBwb3J0ZWQgaW4gR21vZGU9c2dkLCByZXZlcnRpbmcgdG8gc2hvcnRwYXRoIG1vZGVsCgBtZHMgbW9kZWwgbm90IHlldCBzdXBwb3J0ZWQgaW4gR21vZGU9c2dkLCByZXZlcnRpbmcgdG8gc2hvcnRwYXRoIG1vZGVsCgBub2RlICclcycsIGdyYXBoICclcycgc2l6ZSB0b28gc21hbGwgZm9yIGxhYmVsCgAlcyBEV0IgMiBkb2Vzbid0IHVzZSBmaWxsIGFuZCBkb2Vzbid0IGRlZmluZSBmaWxsdmFsCgBbIHtDYXRhbG9nfSA8PCAvVVJJIDw8IC9CYXNlICVzID4+ID4+Ci9QVVQgcGRmbWFyawoAWyAvQ3JvcEJveCBbJWQgJWQgJWQgJWRdIC9QQUdFUyBwZGZtYXJrCgAgIC9Cb3JkZXIgWyAwIDAgMCBdCiAgL0FjdGlvbiA8PCAvU3VidHlwZSAvVVJJIC9VUkkgJXMgPj4KICAvU3VidHlwZSAvTGluawovQU5OIHBkZm1hcmsKAHRyb3VibGUgaW4gaW5pdF9yYW5rCgBsaW5ldGhpY2sgPSAwOyBvbGRsaW5ldGhpY2sgPSBsaW5ldGhpY2sKACBzZXRsaW5ld2lkdGgKAGdzYXZlCiVkICVkICVkICVkIGJveHByaW0gY2xpcCBuZXdwYXRoCgBnc2F2ZSAlZyAlZyB0cmFuc2xhdGUgbmV3cGF0aAoALy8qKiogZW5kX2dyYXBoCgBsYXlvdXQgYXR0cmlidXRlIGlzIGludmFsaWQgZXhjZXB0IG9uIHRoZSByb290IGdyYXBoCgBpbiBjaGVja3BhdGgsIGJveGVzICV6dSBhbmQgJXp1IGRvbid0IHRvdWNoCgBtZXJnZV9vbmV3YXkgZ2xpdGNoCgAlcyBkb24ndCBjaGFuZ2UgYW55dGhpbmcgYmVsb3cgdGhpcyBsaW5lIGluIHRoaXMgZHJhd2luZwoATm9kZSBub3QgYWRqYWNlbnQgdG8gY2VsbCAtLSBBYm9ydGluZwoAaW5jb21wYXJhYmxlIHNlZ21lbnRzICEhIC0tIEFib3J0aW5nCgBBbHRlcm5hdGl2ZWx5LCBjb25zaWRlciBydW5uaW5nIG5lYXRvIHVzaW5nIC1HcGFjaz10cnVlIG9yIGRlY29tcG9zaW5nCgBsYWJlbF9zY2hlbWUgPSAlZCA+IDQgOiBpZ25vcmluZwoAZ3ZyZW5kZXJfc2V0X3N0eWxlOiB1bnN1cHBvcnRlZCBzdHlsZSAlcyAtIGlnbm9yaW5nCgBBcnJvdyB0eXBlICIlcyIgdW5rbm93biAtIGlnbm9yaW5nCgBmZHAgZG9lcyBub3Qgc3VwcG9ydCBzdGFydD1zZWxmIC0gaWdub3JpbmcKACVzIGF0dHJpYnV0ZSB2YWx1ZSBtdXN0IGJlIDEgb3IgMiAtIGlnbm9yaW5nCgBNb3JlIHRoYW4gMiBjb2xvcnMgc3BlY2lmaWVkIGZvciBhIGdyYWRpZW50IC0gaWdub3JpbmcgcmVtYWluaW5nCgBhcyByZXF1aXJlZCBieSB0aGUgLW4gZmxhZwoAYmJbJXNdICUuNWcgJS41ZyAlLjVnICUuNWcKAC9wYXRoYm94IHsKICAgIC9ZIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAvWCBleGNoICUuNWcgc3ViIGRlZgogICAgL3kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC94IGV4Y2ggJS41ZyBzdWIgZGVmCiAgICBuZXdwYXRoIHggeSBtb3ZldG8KICAgIFggeSBsaW5ldG8KICAgIFggWSBsaW5ldG8KICAgIHggWSBsaW5ldG8KICAgIGNsb3NlcGF0aCBzdHJva2UKIH0gZGVmCi9kYmdzdGFydCB7IGdzYXZlICUuNWcgJS41ZyB0cmFuc2xhdGUgfSBkZWYKL2Fycm93bGVuZ3RoIDEwIGRlZgovYXJyb3d3aWR0aCBhcnJvd2xlbmd0aCAyIGRpdiBkZWYKL2Fycm93aGVhZCB7CiAgICBnc2F2ZQogICAgcm90YXRlCiAgICBjdXJyZW50cG9pbnQKICAgIG5ld3BhdGgKICAgIG1vdmV0bwogICAgYXJyb3dsZW5ndGggYXJyb3d3aWR0aCAyIGRpdiBybGluZXRvCiAgICAwIGFycm93d2lkdGggbmVnIHJsaW5ldG8KICAgIGNsb3NlcGF0aCBmaWxsCiAgICBncmVzdG9yZQp9IGJpbmQgZGVmCi9tYWtlYXJyb3cgewogICAgY3VycmVudHBvaW50IGV4Y2ggcG9wIHN1YiBleGNoIGN1cnJlbnRwb2ludCBwb3Agc3ViIGF0YW4KICAgIGFycm93aGVhZAp9IGJpbmQgZGVmCi9wb2ludCB7ICAgIG5ld3BhdGggICAgMiAwIDM2MCBhcmMgZmlsbH0gZGVmL21ha2V2ZWMgewogICAgL1kgZXhjaCBkZWYKICAgIC9YIGV4Y2ggZGVmCiAgICAveSBleGNoIGRlZgogICAgL3ggZXhjaCBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCBZIGxpbmV0byBzdHJva2UK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dGggRWRpdGlvbiBkXChlJ3RlbnRlCgByZXNldCAlcyBzZXQgdG8ga25vd24gc3RhdGUKACVnICVnIHNldF9zY2FsZSAlZCByb3RhdGUgJWcgJWcgdHJhbnNsYXRlCgAlZiAlZiB0cmFuc2xhdGUKACVkICVkIHRyYW5zbGF0ZQoALy8qKiogZWxsaXBzZQoAVW5yZWNvZ25pemVkIG92ZXJsYXAgdmFsdWUgIiVzIiAtIHVzaW5nIGZhbHNlCgBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgAlczogdnNucHJpbnRmIGZhaWx1cmUKAGVuZHBhZ2UKc2hvd3BhZ2UKZ3Jlc3RvcmUKAGVuZApyZXN0b3JlCgBsYXlvdXQgd2FzIG5vdCBkb25lCgBMYXlvdXQgd2FzIG5vdCBkb25lCgAvLyoqKiBwb2x5bGluZQoAdHJ5aW5nIHRvIGRlbGV0ZSBhIG5vbi1saW5lCgAjIGVuZCBvZiBGSUcgZmlsZQoAU2luZ2xlCgByZW5kZXJlciBmb3IgJXMgaXMgdW5hdmFpbGFibGUKAGR5bmFtaWMgbG9hZGluZyBub3QgYXZhaWxhYmxlCgAlLjBmICUuMGYgbGluZXRvIHN0cm9rZQoAY2xvc2VwYXRoIHN0cm9rZQoAIGVsbGlwc2VfcGF0aCBzdHJva2UKAC8vKioqIGJlZ2luX2VkZ2UKAC8vKioqIGVuZF9lZGdlCgBsb3N0ICVzICVzIGVkZ2UKAG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdmlydHVhbCB3ZWlnaHQgb2YgZWRnZQoAYWRkX3RyZWVfZWRnZTogbWlzc2luZyB0cmVlIGVkZ2UKAGluIHJvdXRlc3BsaW5lcywgY2Fubm90IGZpbmQgTk9STUFMIGVkZ2UKAHNob3dwYWdlCgAlZCAlZCAlZCBiZWdpbnBhZ2UKAC8vKioqIGJlZ2luX3BhZ2UKAC8vKioqIGVuZF9wYWdlCgBGaWxlbmFtZSAiJXMiIGlzIHVuc2FmZQoAbGFiZWw6IGFyZWEgdG9vIGxhcmdlIGZvciBydHJlZQoALy8qKiogZW5kX25vZGUKAFVzaW5nIGRlZmF1bHQgY2FsY3VsYXRpb24gZm9yIHJvb3Qgbm9kZQoAY29udGFpbl9ub2RlcyBjbHVzdCAlcyByYW5rICVkIG1pc3Npbmcgbm9kZQoAJWYgJWYgJWYgJWYgbm9kZQoAPDwgL1BhZ2VTaXplIFslZCAlZF0gPj4gc2V0cGFnZWRldmljZQoAaW4gY2hlY2twYXRoLCBib3ggJXp1IGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBpbiBjaGVja3BhdGgsIGJveCAwIGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBjbHVzdGVyIG5hbWVkICVzIG5vdCBmb3VuZAoAbm9kZSAlcywgcG9ydCAlcyB1bnJlY29nbml6ZWQKACVzJXMgdW5zdXBwb3J0ZWQKAGNsdXN0ZXIgY3ljbGUgJXMgLS0gJXMgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgBsYXlvdXQgYWJvcnRlZAoAcGFnZWRpcj0lcyBpZ25vcmVkCgBUd28gY2x1c3RlcnMgbmFtZWQgJXMgLSB0aGUgc2Vjb25kIHdpbGwgYmUgaWdub3JlZAoASWxsZWdhbCBhdHRyaWJ1dGUgJXMgaW4gJXMgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZSIgaW4gZ3JhcGggJXMgLSBpZ25vcmVkCgBzdGFydD0wIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIFZBTElHTiAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgRklYRURTSVpFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlLipzIGZvciBTVFlMRSAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEJBTElHTiBpbiBURCAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAUk9XU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBub2RlICVzLCBwb3J0ICVzLCB1bnJlY29nbml6ZWQgY29tcGFzcyBwb2ludCAnJXMnIC0gaWdub3JlZAoAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBpbiByb3V0ZXNwbGluZXMsIFBzaG9ydGVzdHBhdGggZmFpbGVkCgBpbiByb3V0ZXNwbGluZXMsIFByb3V0ZXNwbGluZSBmYWlsZWQKACMgcGx1Z2luIGxvYWRpbmcgb2YgZGVwZW5kZW5jeSAiJS4qcyIgZmFpbGVkCgAlczolZDogY2xhaW1lZCB1bnJlYWNoYWJsZSBjb2RlIHdhcyByZWFjaGVkCgAjIHVuc3VjY2Vzc2Z1bCBwbHVnaW4gbG9hZAoAJS41ZyAlLjVnIHRyYW5zbGF0ZSBuZXdwYXRoIHVzZXJfc2hhcGVfJWQKAG5zaXplc2NhbGU9JWYsaXRlcmF0aW9ucz0lZAoAY3RybC0+b3ZlcmxhcD0lZAoAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgBtaW5jcm9zczogcGFzcyAlZCBpdGVyICVkIHRyeWluZyAlZCBjdXJfY3Jvc3MgJWQgYmVzdF9jcm9zcyAlZAoAICBtYXggbGV2ZWxzICVkCgAJJXMgJWQKACAgQmFybmVzLUh1dHQgY29uc3RhbnQgJS4wM2YgdG9sZXJhbmNlICAlLjAzZiBtYXhpdGVyICVkCgBndndyaXRlX25vX3ogcHJvYmxlbSAlZAoAICBxdWFkdHJlZSBzaXplICVkIG1heF9sZXZlbCAlZAoAcmVidWlsZF92bGlzdHM6IGxlYWQgaXMgbnVsbCBm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eS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgoAbWluY3Jvc3MgJXM6ICVkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAFVuYWJsZSB0byByZWNsYWltIGJveCBzcGFjZSBpbiBzcGxpbmUgcm91dGluZyBmb3IgZWRnZSAiJXMiIC0+ICIlcyIuIFNvbWV0aGluZyBpcyBwcm9iYWJseSBzZXJpb3VzbHkgd3JvbmcuCgBFcnJvciBkdXJpbmcgY29udmVyc2lvbiB0byAiVVRGLTgiLiBRdWl0aW5nLgoAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAGdyYWRpZW50IHBlbiBjb2xvcnMgbm90IHlldCBzdXBwb3J0ZWQuCgAgIGluaXRDTWFqVlBTQyBkb25lOiAlZCBnbG9iYWwgY29uc3RyYWludHMgZ2VuZXJhdGVkLgoAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBoYXMgYmVlbiBkaXNhYmxlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24gZmxhd3MgLSBhdHRyaWJ1dGUgaWdub3JlZC4KAFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2Vz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YXRlbmQpCgAlJVBhZ2VzOiAoYXRlbmQpCgBleHBhdDogRW50aXRpZXMoJXApOiBDb3VudCAlOXUsIGRlcHRoICUydS8lMnUgJSpzJXMlczsgJXMgbGVuZ3RoICVkICh4bWxwYXJzZS5jOiVkKQoAY2FudmFzIHNpemUgKCVkLCVkKSBleGNlZWRzIFBERiBsaW1pdCAoJWQpCgkoc3VnZ2VzdCBzZXR0aW5nIGEgYm91bmRpbmcgYm94IHNpemUsIHNlZSBkb3QoMSkpCgBlcnJvciBpbiBjb2xvcnhsYXRlKCkKAHRydW5jYXRpbmcgc3R5bGUgJyVzJwoASWxsZWdhbCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZTsgZmxvYXQgZXhwZWN0ZWQgYWZ0ZXIgJzsnCgBkZWZpbmUgYXR0cnMwICUlICUlOyBkZWZpbmUgdW5maWxsZWQgJSUgJSU7IGRlZmluZSByb3VuZGVkICUlICUlOyBkZWZpbmUgZGlhZ29uYWxzICUlICUlCgA8c3ZnIHdpZHRoPSIlZHB0IiBoZWlnaHQ9IiVkcHQiCgAjIGRlcGVuZGVuY2llcyAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACMgdHlwZSAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACRjIGNyZWF0ZSBpbWFnZSAlLjJmICUuMmYgLWltYWdlICJwaG90b18lcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAZmlsZSBsb2FkaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGNvbnRhaW5zIFNFUlZFUl9OQU1FPSIlcyIKAENvdWxkIG5vdCBwYXJzZSB4ZG90ICIlcyIKAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKACBbJXp1XSAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXAgIiVzIgoAZm9udG5hbWU6IHVuYWJsZSB0byByZXNvbHZlICIlcyIKAER1cGxpY2F0ZSBjbHVzdGVyIG5hbWUgIiVzIgoAdW5yZWNvZ25pemVkIGFwaSBuYW1lICIlcyIKAGltYWdlIGNyZWF0ZSBwaG90byAicGhvdG9fJXMiIC1maWxl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AP7h4+MaHP8AQnYAAPX/sbEAJv8AQbsAACoy////zP8AKqwAACJf///toP8AIp4AAB6I/v7Zdv8AeJEAABiy/v6yTP8ARIYAABHC/f2NPP8AIX8AAAfU/PxOKv8AZnkAAP7h4+MaHP8AAXUAAPb/vb0AJv8A8HEAAPL/gIAAJv8AJkkAAJMP//D4//8AikoAABgj+vrr1/8A17cAABck///v2/8AZ6kAABck7u7fzP8AcJsAABckzc3AsP8Av44AABgii4uDeP8Ab2EAAH///wD///8AMU0AAHGA/3//1P8AHbgAAHGA/3//1P8ArakAAHGA7nbuxv8AtpsAAHGAzWbNqv8ADI8AAHGAi0WLdP8AIkwAAH8P//D///8AFrgAAH8P//D///8ApqkAAH8P7uDu7v8Ar5sAAH8OzcHNzf8A/o4AAH8Oi4OLi/8A/U8AACoa9fX13P8ADUcAABc6///kxP8AX7cAABc6///kxP8A76gAABc67u7Vt/8A+JoAABY6zc23nv8AR44AABc6i4t9a/8ADzwAAAAAAAAAAP8AtVMAABkx///rzf8ANUkAAKr//wAA//8AxLcAAKr//wAA//8AVKkAAKr/7gAA7v8AXZsAAKr/zQAAzf8ArI4AAKr/iwAAi/8AEhEAAMDO4oor4v8AdDEAAAC+paUqKv8AYLYAAAC///9AQP8ADKgAAAC/7u47O/8AHZoAAAC/zc0zM/8AbI0AAAC+i4sjI/8AL1MAABdj3t64h/8AfLgAABdk///Tm/8A+6kAABdj7u7Fkf8ABJwAABdjzc2qff8AWo8AABdji4tzVf8AO0gAAIBnoF+eoP8AjbcAAINn/5j1//8AHakAAINm7o7l7v8AJpsAAINnzXrFzf8AdY4AAINmi1OGi/8ALksAAD///3//AP8A8LcAAD///3//AP8AgKkAAD//7nbuAP8AiZsAAD//zWbNAP8A2I4AAD//i0WLAP8AC0sAABHa0tJpHv8A5bcAABHb//9/JP8AdakAABHb7u52If8AfpsAABHazc1mHf8AzY4AABHci4tFE/8ACToAAAuv//9/UP8A77YAAAep//9yVv8AjKgAAAap7u5qUP8AnZoAAAapzc1bRf8A7I0AAAaoi4s+L/8ASkgAAJqT7WSV7f8AujsAACEi///43P8AFLcAACEi///43P8AsagA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ABtEzc26lv8AWY0AABtDi4t+Zv8AnEoAAAAA//////8Awk8AAAAA9fX19f8AnwgAAAAAvr6+vv8AxTUAAFX//wD/AP8A1AcAAAAAvr6+vv8AFjIAAO+5sLAwYP8Azk4AAMTd8KAg8P8AqgoAACr/////AP8AKLYAACr/////AP8A0KcAACr/7u7uAP8A85kAACr/zc3NAP8AR40AACr/i4uLAP8AsTQAADjAzZrNMv8ADgAAAGxucnNvbGlkAABzZXRsaW5ld2lkdGgAMQAAAACsdwAA6MQAAA2NAAAIAK7/0QAKAK7/rv8LAK7/rv+u/67/rv+u/67/rv8FANEArv/RANEA0QDRANEA0QDRANEArv/7/67/DgDs/67/rv+u/67/0QDRANEA0QDRAA0AJQAMAEIAEABQABMAbQB7ABQAmAAPAKYAwwCu/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv8XAK7/dwCu/wcALgCu/yYArv8XABEAIwCu/w0Arv+u/67/rv86AK7/rv81AK7/rv+u/ygArv8HAK7/OwBFAK7/SACu/67/rv+u/67/AEGx/AYLwQYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoAAAAAAAAAAACAgICAgIQDFkBAB9QCAMHEhMUVxYXCAtpDB8KBQwOKRErDy0QLzAgMgY0NRscHR4LDCEiIyQlJicoDBgZFwQKGxwaICoKISIjJCUmJygMCg5TCixYMVhYWFhYWAwbHA8uWDMhIiMkJSYnKBsc/1P//yEiIyQlJicoDP//Bf///wkU//////8MGxz/EBUWISIjJCUmJygbHP////8hIiMkJSYnKAz/EhMUERYX////////DBsc////EiEiIyQlJicoGxz/////ISIjJCUmJygM////////E////////wwbHP////8hIiMkJSYnKBsc/////yEiIyQlJicoEhMUFRYXGBn///////////8jJCUmJxsSExQWFyI2aAEfOFYhIAIbGxteGxs3OXA20sJPBDwiRyI/IkQiIlgiZSIiBQZfYDkEBwgJCgsMDQ4EZmddam0FBm9YO3EHCAkKCwwNDgRyPFtzPmFGGxITFBYXBAUGP0FiSQcICQoLDA0OBQYAXAAABwgJCgsMDQ4EAABPAAAAU0IAAAAAAAQFBgBEVFUHCAkKCwwNDgUGAAAAAAcICQoLDA0OBAAqLC5HMTMAAAAAAAAEBQYAAABKBwgJCgsMDQ4FBgAAAAAHCAkKCwwNDgQAAAAAAABMAAAAAAAABAUGAAAAAAcICQoLDA0OBQYAAAAABwgJCgsMDQ4pKy0vMDI0NQBB+4IHCy4pKy0wMgAELwAkIwASFBYaHB4gGAAFBy8vLwAvLwAACQgoAAABIgIGAAAAAAAIAEG2gwcLPiUDJhMKKRULKhcOLRkRGwwrHQ0sHw8hEAAzADAAL0MAMQAvADUuJ0IyQQA6OAA8NEUANgBAAAA/AEQ3Ozk9AEGBhAcLRQIDAwEBAgEBAQMDAwMDAwMDAQEBAQEBAQEBAQEBAQEBAQIBAQIABgEDAwMDAwEAAQIDAAQBAgMABAAEAAQAAwIBAgECAQBB0YQHC0UpKioqKywsLS0tLS0tLS0tLS4vMDEyMzQ1Njc4OTo7PD0+Pj8/QUBCQkJCQkJDQ0REREZFR0dHSUhKSEtITEhNTU5OT08AQaCFBwuNAa7/rv/8/+gA9v///xoAAAAnAAEAMgCu/67/AgAkAAMALwCu/67/rv+u/67//v+UAK7/CQAbAK7/vP+u/67/r/+u/67/rv+u/67/rv+u/wAA/wMPEBEjOiQ9JUAVQyZFJ0gYSxlNGigcTh0eUFFSWVpsa25jZFdpAEgAAAAoAAAAGAAAADgAAAAYAAAACABBxoYHCwnwvwAAAAAAAAEAQdiGBwsNaW52aXMAAGZpbGxlZABB8IYHC7MCmhsAAKBSAAA7NwAAnwsAAAwAAAAEAAAABgAAAAIAAAADAAAAAQAAAAkAAAAIAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAALynAgBBrokHC4UIoED/////////////////////////////////////////////////////////////////////////////////////AAKqAkQDAAQABKoGOQZxAaoCqgIABIMEAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABDkCOQKDBIMEgwSNA14HxwVWBVYFxwXjBHMExwXHBaoCHQPHBeMEHQfHBccFcwTHBVYFcwTjBMcFxwWNB8cFxwXjBKoCOQKqAsEDAASqAo0DAASNAwAEjQOqAgAEAAQ5AjkCAAQ5AjkGAAQABAAEAASqAh0DOQIABAAExwUABAAEjQPXA5oB1wNUBP///////////////////////////////////////////////////////////////////////////////////////wACqgJxBAAEAAQACKoGOQKqAqoCAASPBAACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCjwSPBI8EAARxB8cFVgXHBccFVgXjBDkGOQYdAwAEOQZWBY0HxwU5BuMEOQbHBXMEVgXHBccFAAjHBccFVgWqAjkCqgKmBAAEqgIABHMEjQNzBI0DqgIABHMEOQKqAnMEOQKqBnMEAARzBHMEjQMdA6oCcwQABMcFAAQABI0DJwPDAScDKQT///////////////////////////////////////////////////////////////////////////////////////8AAqoCXAMABAAEqgY5BrYBqgKqAgAEZgUAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAmYFZgVmBQAEXAfjBOMEVgXHBeME4wTHBccFqgKNA1YFcwSqBlYFxwXjBMcF4wQABHMExwXjBKoG4wRzBHMEHQM5Ah0DYAMABKoCAAQABI0DAASNAzkCAAQABDkCOQKNAzkCxwUABAAEAAQABB0DHQM5AgAEjQNWBY0DjQMdAzMDMwIzA1QE////////////////////////////////////////////////////////////////////////////////////////AAIdA3EEAAQABKoGOQY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABKgGVgVWBVYFxwVWBVYFxwU5Bh0DAARWBeMEHQfHBccF4wTHBVYFcwTjBMcFVgUdB1YF4wTjBKoCOQKqAo8EAASqAgAEAASNAwAEjQOqAgAEcwQ5AjkCAAQ5AjkGcwQABAAEAAQdAx0DOQJzBI0DVgUABI0DHQPJAsMByQKPBP//5KcCAEG+kQcLhQigQP////////////////////////////////////////////////////////////////////////////////////85AjkC1wJzBHMEHQdWBYcBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEOQI5AqwErASsBHMEHwhWBVYFxwXHBVYF4wQ5BscFOQIABFYFcwSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEOQI5AjkCwQNzBKoCcwRzBAAEcwRzBDkCcwRzBMcBxwEABMcBqgZzBHMEcwRzBKoCAAQ5AnMEAATHBQAEAAQABKwCFAKsAqwE////////////////////////////////////////////////////////////////////////////////////////OQKqAssDcwRzBB0HxwXnAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBKoCqgKsBKwErATjBM0HxwXHBccFxwVWBeMEOQbHBTkCcwTHBeMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBKoCOQKqAqwEcwSqAnME4wRzBOMEcwSqAuME4wQ5AjkCcwQ5Ah0H4wTjBOME4wQdA3MEqgLjBHMEOQZzBHMEAAQdAz0CHQOsBP///////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE//8YqAIAQc6ZBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT//0CoAgBB3aEHC4YIQI9AAAD///////////////////////////////8CAf///////////////////////////////////////////////wIB5ACIAVgCWAKiA7UC3QA9AT0BwgFYAuQAqAHkABsBWAJYAlgCWAJYAlgCWAJYAlgCWALkAOQAWAJYAlgCuwGyA9kCpAKhAuYCRwIkAtYC+QIBAUQBcQIfAlcD5AL/AnkC/wKdAmcCWgLYArECTQSKAlQCTQI7ARsBOwFYAvQB9AESAkcCzwFHAhQCTQFKAjgC6ADsAPQBKAFYAzgCLAJHAkcCZgHhAV4BMQIDAkkDDQICAs8BYAEJAWABWAL//wAA////////////////////////////////DwH///////////////////////////////////////////////8PAfgAwAFYAlgCsQPWAvMAZgFmAcUBWAL4ALIB+AA5AVgCWAJYAlgCWAJYAlgCWAJYAlgC+AD4AFgCWAJYAssBtgPoArACqAL6AlUCMgLgAgUDGgFiAZkCMgJkA+wCEQOMAhEDrgJ3Am0C4gLJAlkEoAJqAl0CYgE5AWIBWAL0AfQBIwJYAtgBWAIeAmwBXAJJAv8AAwEYAj8BbQNJAkACWAJYAogB6AGAAUMCDwJVAyICDgLaAYcBIAGHAVgC//8AAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CWAPjAv8CeQL/Ap0CZwJaAtgCsAJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmAIyAmUD6wIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//0ioAgBB7qkHC4UIoED/////////////////////////////////////////////////////////////////////////////////////iwI1A64DtAYXBZoHPQYzAh8DHwMABLQGiwLjAosCsgIXBRcFFwUXBRcFFwUXBRcFFwUXBbICsgK0BrQGtAY/BAAIeQV9BZYFKQYOBZoEMwYEBlwCXAI/BXUE5wb8BUwG0wRMBo8FFAXjBNsFeQXpB3sF4wR7BR8DsgIfA7QGAAQABOcEFAVmBBQF7ATRAhQFEgU5AjkCogQ5AssHEgXlBBQFFAVKAysEIwMSBbwEiwa8BLwEMwQXBbICFwW0Bv///////////////////////////////////////////////////////////////////////////////////////8kCpgMrBLQGkQUECPoGcwKoA6gDLwS0BgoDUgMKA+wCkQWRBZEFkQWRBZEFkQWRBZEFkQUzAzMDtAa0BrQGpAQACDEGGQbfBaQGdwV3BZEGsgb6AvoCMwYZBfYHsgbNBt0FzQYpBsMFdQV/BjEG0wgrBssFzQWoA+wCqAO0BgAEAARmBboFvgS6BW0FewO6BbIFvgK+AlIFvgJWCLIFfwW6BboF8gPDBNMDsgU3BWQHKQU3BagEsgXsArIFtAb///////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEkQWRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv//UKgCAEH+sQcLhQigQGYE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP//ZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT///////////////////////////////////////////////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9cqAIAQY66BwuFCKBA/////////////////////////////////////////////////////////////////////////////////////2kC8AKZAjIEMgTNBKYFRwHwAvAC8AIyBPAC8ALwAjIEMgQyBDIEMgQyBDIEMgQyBDIEMgTwAvACMgQyBDIE8AIqBrgEhwTJBOgESQQzBGkFPAU6AtADmwQNBK0FGwVkBXYEaAWoBNkDpQQwBbME0QZ0BJAEZwTwAtgC8AIyBDIEMgQ0BHUE9gN1BF0E9QIEBF8ESALvAgkEXAKkBl8ESwR1BHUEHAM9AywDXwTrA/QFAgTyA8wD8AIyBPACMgT///////////////////////////////////////////////////////////////////////////////////////9pAvAC7wKwBLAEeQWmBdYB8ALwAnUDsATwAvAC8AIfA7AEsASwBLAEsASwBLAEsASwBLAE8ALwArAEsASwBIEDKgYRBcME5QQkBY0EqwRfBXgFOgJDBPAEbAT2BVcFoAWyBKwF4wQXBOUEbAX5BBIHzgToBHsENwPYAjcDsASwBLAEQwSnBBgEpQSZBPUCBAS+BGMC7wJiBFwC4Aa5BIcEqQSsBGsDcgMsA7oEOARFBmsERQQ6BHgDsAR4A7AE////////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgTZA80EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioG4wSHBMkE6ARJBDMEaQU8BToC0AObBA0EFwYbBWQFWQRkBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQSuA3UETAQ2AwQEdQR0Au8CCQSQAqQGXwRLBHUEdQRVAz0DXAN0BOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8AIgA7AEsATcBaYFaQLwAvACdQOwBPAC8ALwAi0DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAELQMqBukEuATnBA8FvwSvBGkFbQU6Av0DMwU6BEoGSAWeBasEKAb9BAMEewVLBXcFaQdBBXgF5ATiA9ID4gOwBLAEsAS+BL8E8QO/BGoESANIBH8EnQIaA1EEjwKkBn8EjwTKBMoEkwOsA4EDdQRrBDAGmwSDBEME4gOwBOIDsAT//2ioAgBBnsIHC4UIoED/////////////////////////////////////////////////////////////////////////////////////0AImA6wDjAYWBZwI0AUmAqIDogMWBYwG6QKiA+kCogMWBRYFFgUWBRYFFgUWBRYFFgUWBaIDogOMBowGjAZdBAAIeAV8BZYFKgYPBZkENAYDBl4DowOLBXQEvgb8BUwG0wRMBpAFeAXuBNsFeAXpB3sF7AR7BaIDogOiA4wGFgUWBc4E/AQrBPwExATQAvwEEAUyAsECvAQyAsgHEAXbBPwE/ARqAysEJwMQBbwEjAa8BLwENAQUBaIDFAWMBv///////////////////////////////////////////////////////////////////////////////////////7wCOAOzBPAGsAUtCuYGqAJZBFkEsAXwBuQC1wPkAoQFsAWwBbAFsAWwBbAFsAWwBbAFsAU4AzgD8AbwBvAG7wS2BzYGGAbKBaQGdwU0BX0GswZeBHEEKwYZBZUHxgbNBt0FzQZCBq8FdAV/BhwGBwkcBuUFiQVZBIQFWQTwBrAFsAVYBZgFtQSYBVAFYQOYBbMFvAI5A14FvAJ3CLMFfgWYBZgF+gO/BKUDswUzBdYHWgU1BcYEsAVZBLAF8Ab////////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh2BXwFlgUgBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV2BewHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC+QQQBTICwQKyBDICyQcQBdsE/AT8BGoDKwQnAxAFugSMBrwEugQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV8BZgFmAX6A78EpQOzBTEF1gdaBTUFxgSwBVkEsAXwBv//cKgCAEGuygcLhQigQP////////////////////////////////////////////////////////////////////////////////////8UAiMCNQMrBZMElgbXBcUBXgJeAmoEkwT2AZMCIQLwApMEkwSTBJMEkwSTBJMEkwSTBJMEIQIhApMEkwSTBG8DMQcQBS8FDAXVBXMEIQTTBecFOwIjAukEJwQ5BwgGOwbRBDsG8gRkBG0E0wXDBGgHngR7BJEEogLwAqICVgSWA54EcwTnBM8D5wR9BLYCYgTpBAYCBgIzBAYCcQfpBNUE5wTnBEQD0QPTAukEAgQ5BjEECAS+AwgDaAQIA5ME////////////////////////////////////////////////////////////////////////////////////////FAJKAscDKwWRBDUHAAYhArYCtgJcBJEEUgKTAkgCTgORBJEEkQSRBJEEkQSRBJEEkQSRBEgCUgKRBJEEkQTRAy0HhQVgBRkF7AV7BGQEywUfBqYCpgJQBYUEiweBBl4GBgVeBkgFaASiBAwGMwW8B1YF/gSiBKYCTgOmAkIESgPbBNUEEAUdBBAFugQZA4UEQgVxAnEC9gRxAtsHQgX0BBAFEAWiA/oDeQNCBY0E2QagBI0E5wMnA2gEJwORBP///////////////////////////////////////////////////////////////////////////////////////xQCEgIXAysFaARYBlwFvAFIAkgCagRoBOwBfwIGAs0CaARoBGgEaARoBGgEaARoBGgEaAQGAgYCaARoBGgEagPHBnEEyQSuBFQFFwTHA2oFbQUvAiMCdQTLA7IGngXDBYcEwwWNBAQE/ANoBWIE0QYnBAYEPwRKAs0CSgIjBCcDbwSFBJ4EmgOeBPIDgQICBJ4ECAIIAucDCAL6Bp4EfQSeBJ4EKwNtA5gCngSyA7wF0wOyA40DywJoBMsCaAT///////////////////////////////////////////////////////////////////////////////////////8UAkoCoAMrBWgE2QaqBQoCtgK2AlwEaAQ5ApMCSAJeA2gEaARoBGgEaARoBGgEaARoBGgESAJIAmgEaARoBKwD2QYGBfYE5QRqBVYEPwSFBZoFkwKmAucEJQQKBwoG1wWkBNcF3wQ9BD8EhwW4BCcH2QSDBEoEpgJeA6YCOQQzA28EwQTDBN0DwQR1BPwCVATVBGACYAKLBGACPQfVBK4EwwTBBF4DyQNIA9UEGQROBj8EJwSkA9cCaATXAmgE//94qAIAQb7SBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////+4BpgJLAyUF4QSKBq8FuQEAAwADxwMlBSgC/gIoAsAD6QRwA3gEagSFBDoEhwQFBMUEhwSAAoACJQUlBSUF1ANuB14FOwUjBf4FOgXLBM0FhQYeAyQEjgXUBGsHIwb0BeEE9AWdBX0E8wQNBlUFzgevBewE0AQAA8ADAAMlBSUFAAQIBHsEogOYBN4DmgITBKgEWAJWAkkESgIMB7oEUASSBHoERwN1A8MCmgT5A+YFCgTwA40DcQMAA3EDJQX///////////////////////////////////////////////////////////////////////////////////////8IAgMDFASgBSAFCQdlBicCkwOTA9sDoAWgAggDoALGA5wF6wMDBf8EMgXLBC8FbwRpBS8F8ALwAqAFoAWgBWMEvAcRBg8GuQWsBsUFXwV1Bk4HkQPDBIkGfAUwCLcGjwacBY8GYQYxBXkFqwYZBgMJeAbbBYQFkwPGA5MDoAWgBQAExAQqBUAETgWTBCUDnQRwBdQCxQIOBcECIAiFBRYFQwUwBSkEGgQuA2oFiQToBrQEfwQ0BAAEGgMABKAF////////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBPkDxQSHBBIDEgMlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBtgF4QTYBZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABJUEbgShA5oExgOhApUEgARhAlQCOQRIAgkHuARMBKAEcQSxA3MDxwKaBE4ElAYCBHoEjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwWIBGkFLwXwAvACoAWgBaAFYwS8BxEGEwa5BawGxQVfBXUGTgebA8MEiQZ8BUQIowaPBqYFjwZhBjkFeQWrBhkGAwlrBtsFhAWTA8YDkwOgBaAFAARIBTEFSQRNBXUEDAMyBWcF7QLrAiEF1gIECIUFFgVNBTMFRQQjBFYDewXmBHgHqwRbBSMEAAQaAwAEoAX//4CoAgBBztoHC4QYoED/////////////////////////////////////////////////////////////////////////////////////zwGbAjUD/AMOBLgFdQXEAW0CbQL8A/wD/wFzAgUCFwMOBA4EDgQOBA4EDgQOBA4EDgQOBCQCJAL8A/wD/AO1AycHoQRaBEQE7AToA60DDAX8BAQCjQIoBF0D1wYqBUwFIgRiBVgErQPmAyIFigQeBycE5gO/A3QCFwN0AvwD/ANUAtUDNARiAzQE+wNxAsQDNATWAeoBowPWAWQGNAQ4BDQENATKAiEDrgI0BJ0DuAV3A58DKQOEAq8DhAL8A///AAD///////////////////////////////8AAP///////////////////////////////////////////////88BmwKCA/wDDgTVBaMF3gF+An4C/AP8AxACcwIjAnADDgQOBA4EDgQOBA4EDgQOBA4EDgQ1AjUC/AP8A/wDtQMwB9kEfAQ8BAsF5wOsAxkFDAUiAqYCYARiA/4GRQVpBUIEfQWBBMgD9gM5BbsEQAdoBCgE0wOZAnADmQL8A/wDZwLzA0sEWQNLBAcEiALLA0sE9wELAtcD9wGCBksETQRLBEsE2AIxA8YCSwTJA/YFrQPKAy4DwALNA8AC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIaAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoELgTsBOgDrQMMBfwEBAKNAigEXQPXBigFPAUiBFAFWASeA+YDIgWKBB8HJwTmA78DdAITA3QC/AP8A1QCHQQdBFQDHQTSA3ECHQQdBNYB6gGjA9YBVAYdBBsEHQQdBL4CHQOuAh0EkQO4BXcDlAMpA4QCrwOEAvwD////////////////////////////////////////////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCeQMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BCYECwXnA6wDGQUMBSICpgJgBGID/gZABVkFQgRrBYEEuQP2AzkFuwRBB2gEKATTA5kCZgOZAvwD/ANnAjkEOQRLAzkE7gOIAjkEOAT3AQsC1wP3AW4GOAQ4BDkEOQTRAicDxgI4BMED9gWtA8MDLgPAAs0DwAL8A///EkMAAMYAAADYSQAAwQAAAHpaAADCAAAA/EYA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ALgDAABKNwAA0QMAALktAAAJIAAAtzEAAP4AAACiUQAA3AIAAOwYAADXAAAAr1EAACIhAAAQHAAA0SEAAJJJAAD6AAAA9hsAAJEhAABEWgAA+wAAAL1GAAD5AAAARDgAAKgAAADAPgAA0gMAAFkyAADFAwAAETgAAPwAAADULQAAGCEAAHg8AAC+AwAAi0kAAP0AAAAjNAAApQAAAAw4AAD/AAAAqGEAALYDAABePAAADSAAAGI8AAAMIAAA1WwAADZoAABaZwAATWgAAEtnAABNAQAATgEAAE8BAABPAQBB4PIHC9EFEe7uEwgD7v7u7u4B7u7uAe7uCf7uEhUX7hIB7u7u7goN7u7u7u7u7u7uAe7uFggBARkOGO7uGxga7u4d7u7u7gEV++7u7u4QHu7u7gAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFhECAgICAgICAgICAgICEhACEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICFAIVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOAg8CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQIDBAUGBwgJCgsMDQAAAAsDBAUPBwMMDQYMDQ4MDRoVAAEAAwcOBg8IDA0SEwkqEBEQFi8wDTIREy4yFBIUEkETLBNCQCpCGf//LAAAAAAiDA0OIw8JEBEKEBHMEBEtRfwBBvYPB/YkAhARLzAoNklKJjE7PD02Kjk6Pj8v2EBEMDclR0M1SCsAADgAAAAAAAMJAAAAAQ4CCwwIIyQlMzg6AA0QEhsWHBInLyIXMB45BgcyBQ8RFBgpABMpAAAAAAA0FSgdHgAhJjEfLjsZLAAbACAaKis3ADU2LQAAAAAAAgIBAAMDAQABAAEBAQACAQEAAgIDAQEAAAUAAQMBAwUDAQEBAQIAAQAEAgACAwEAAwIBAAEBAAEBAQMAAAAAABcYGBgZGhsbHBwdHR4eHx8gICEhIiMjJSYkJCcnKCgoKSkqKiorKywsLS4uLzAxMzI0NDQ1NTU2Njc3AAAAAO7u/O7u7u7u7h8g7vnv7u7uDO7u7gYP7u7y7u7u7u717gBBwPgHCyT/AwgEIQULEhMnFBUWKTJBFxgZGiwzNEJGGxwdLh5LHyBrZXkAQfH4Bwu2AwEBAQEBAQEBAgMBAQIBAQEBAQEBAQEBAQEBAQEBAQECAQQFAQEBAQEBBgEBBwgJCgoKCgoKCgoKCgEBCwEMAQ0ODxAREhMUFRYTExMTFxgZExobHB0TExMTEwEeAQETAR8gISIjEyQlJhMTExMnKCkTKissLRMTExMTAQEBAQETExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEy4TExMvExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMwExMTExMTExMTExMTExMTEwAAAAAAAAQABAAcABwAIQAhACQAIgAKAAIAFgAJACIAIgAiABUAHQABABQAFAAUABQAFAAUABQACAAEAAUAHAAbABcAHAAhACAAHwAeAAkAEwAAABUAEgAVAAMABwAVABUAFAAUABQAFAAUABQAFAAUAAgABAAFAAUABgAcABoAGAAZACEABwAVABQAFAAUABQAFAAUAAsAFAANABQADAAUABQAFAAOABQAFAAUABAAFAAPABQAEQBBsvwHC5UEAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwAEAAcAAwAEAAUABQAGAAYACAAHAAcAEQAWABIAEQASAAgACAAPAA8AFwAPABgADwAZABoAGgAeABYANAAeAAUAMgAGACIAIgAzABcAGAA1ABkAGgAaACoANgAqADQANwAyAEUAOwA8ADMAOwA8AEYANQBHAEgATAA2ACIASQBKADcARQBOAFAAYgBRAFIAVABGAEcAVQBIAEwAVgBJAEoAWABaAE4ARABQAFEAUgBUADgALwAsAFUAKQBWABsAEABYAFoAXQBdAF0AXQBdAF0AXQBeAF4AXgBeAF4AXgBeAF8AXwBfAF8AXwBfAF8AYAAJAGAAYABgAGAAYABh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e6oAAIScAADajwAArYQAAJF9AADWdwAAcXMAAFVwAAAVbgAA4W0AAKxtAABwbQAA4WwAABNsAACSxgAA97gAAHaqAAB/nAAA1Y8AAKiEAACMfQAA0XcAAGxzAABQcAAAEG4AANxtAACnbQAAa20AANxsAAAObAAAjcYAAPK4AABxqgAAepwAANCPAACjhAAAh30AAMx3AABncwAAS3AAAAtuAADXbQAAom0AAGZtAADQbAAACWwAAIjGAADtuAAAbKoAAHWcAADLjwAAnoQAAIJ9AADHdwAAYnMAAEZwAAAGbgAA0m0AAJ1tAABLbQAAy2wAAARsAACDxgAA6LgAAGeqAABwnAAAxo8AAJmEAAB9fQAAwncAAFhzAABBcAAAAW4AAM1tAACYbQAARm0AAMZsAADqawAAfcYAABm2AADBpwAA5JkAADiNAACQhAAAeX0AAL53AAA/cwAAZRQAALs2AADFbQAAiW0AAEEfAAAxbAAA3GsAAMDHAACOuQAADasAACSdAABzkAAAP4UAACN+AABoeAAAA3QAAPJwAAApbgAA9W0AAMBtAACEbQAA9WwAACxsAAC45gAAVOMAAAThAACMBAIAL9YAAC3WAAAr1gAAKdYAAMjVAACC1QAABc4AAAPOAAABzgAA/s0AAOfNAABfzQAAV80AADLGAAD7tQAAo6cAAK+ZAAAajQAAgoQAAGt9AACwdwAAMXMAADNwAABabwAAEm8AABBvAAAGbwAAMG4AAC5uAAAsbgAA/20AAMNtAACHbQAA+GwAAC9sAADaawAAXmsAADprAAASawAAEGsAAA1rAACKaAAAdGgAAENoAABBaAAAMGgAAC5oAACMZwAAcGcAANdmAADVZgAA02YAANFmAAB7ZAAAUmQAAFBkAAA1ZAAAM2QAABFjAAAPYwAAtWIAALNiAABkYQAA5GAAACxaAACgUgAAmEUAANtDAADfQAAAET0AAG48AABcPAAA6ToAAOg3AAA7NwAALzEAAAIwAACWHwAAUh8AAJobAABmFAAAGgwAAMkLAACfCwAACwoAAC0JAAB5BAAARAQAADsEAAAvBAAACQQAACdsAEGglAgLef//////////////////////////////////////////AAAAAAAAAAT+//+H/v//BwAAAAAAAAAA//9/////f//////////zf/79//////9///////////8P4P////8x/P///wAAAAAAAAD//////////////wEA+AMAQbCVCAtBQNf///v/////f39U/f8PAP7f///////////+3/////8DAP///////58Z////zz8DAAAAAAAA/v///38C/v///38AQfqVCAuzAf///wcHAAAAAAD+//8H/gcAAAAA/v//////////fP9/LwBgAAAA4P///////yMAAAD/AwAAAOCf+f///cUDAAAAsAMAAwDgh/n///1tAwAAAF4AABwA4K/7///97SMAAAAAAQAAAOCf+f///c0jAAAAsAMAAADgxz3WGMe/AwAAAAAAAAAA4N/9///97wMAAAAAAwAAAODf/f///e8DAAAAQAMAAADg3/3///3/AwAAAAADAEHAlwgLGf7/////fw0APwAAAAAAAACWJfD+rmwNIB8AQeiXCAsG//7///8DAEGUmAgLcv////8/AP////9/AO3aBwAAAABQAVAxgqtiLAAAAABAAMmA9QcAAAAACAEC/////////////////////////w///////////////wP//z8//////z8//6r///8/////////31/cH88P/x/cHwAAAABATABBkJkICwEHAEGgmQgLJoAAAAD+AwAA/v///////////x8A/v////////////8H4P////8fAEHgmQgLFf//////////////////////////PwBBgJoICxX//////////////////////////w8AQaWaCAvJAmD/B/7//4f+//8HAAAAAAAAgAD//3////9//////wAAAAAAAAD//////////////wEA+AMAAwAAAAAA//////////8/AAAAAwAAAMDX///7/////39/VP3/DwD+3////////////t//////ewD///////+fGf///88/AwAAAAAAAP7///9/Av7///9/AP7/+///uxYA////BwcAAAAAAP7//wf//wcA/wP///////////98/3/v//89/wPu////////8/8/Hv/P/wAA7p/5///9xdOfOYCwz/8DAOSH+f///W3ThzkAXsD/HwDur/v///3t8787AADB/wAA7p/5///9zfOPOcCww/8AAOzHPdYYx7/Dxz2AAID/AADu3/3///3vw989YADD/wAA7N/9///978Pf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TTuJdzzYkJ6BwefvP4nMYEHBBVM88XGPK8Lz7z/eEgSVAAAAAP///////////////7A4AgAUAAAAQy5VVEYtOABBgPIICwPEOAIAQaDyCAtHTENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMAQfDyCAsHQy5VVEYtOABBiPMIC6AQ8KoCAIirAgAYrAIATm8gZXJyb3IgaW5mb3JtYXRpb24ASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATXVsdGlob3AgYXR0ZW1wdGVkAFJlcXVpcmVkIGtleSBub3QgYXZhaWxhYmxlAEtleSBoYXMgZXhwaXJlZABLZXkgaGFzIGJlZW4gcmV2b2tlZABLZXkgd2FzIHJlamVjdGVkIGJ5IHNlcnZpY2UAAAAAAKUCWwDwAbUFjAUlAYMGHQOUBP8AxwMxAwsGvAGPAX8DygQrANoGrwBCA04D3AEOBBUAoQYNAZQCCwI4BmQCvAL/Al0D5wQLB88CywXvBdsF4QIeBkUChQCCAmwDbwTxAPMDGAXZANoDTAZUAnsBnQO9BAAAUQAVArsAswNtAP8BhQQvBfkEOABlAUYBnwC3BqgBcwJTAQBB2IMJCwwhBAAAAAAAAAAALwIAQfiDCQsGNQRHBFYEAEGOhAkLAqAEAEGihAkLIkYFYAVuBWEGAADPAQAAAAAAAAAAyQbpBvkGHgc5B0kHXgcAQdCECQuRAdF0ngBXnb0qgHBSD///PicKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BRgAAAA1AAAAcQAAAGv////O+///kr///wAAAAAAAAAAGQALABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZAAoKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQfGFCQshDgAAAAAAAAAAGQALDRkZGQANAAACAAkOAAAACQAOAAAOAEGrhgkLAQwAQbeGCQsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEHlhgkLARAAQfGGCQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGfhwkLARIAQauHCQseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHihwkLDhoAAAAaGhoAAAAAAAAJAEGTiAkLARQAQZ+ICQsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEHNiAkLARYAQdmICQsnFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAEGkiQkLAv8BAEHMiQkLCP//////////AEGQigkL9Qj/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wABAgQHAwYFAAAAAAAAAAIAAMADAADABAAAwAUAAMAGAADABwAAwAgAAMAJAADACgAAwAsAAMAMAADADQAAwA4AAMAPAADAEAAAwBEAAMASAADAEwAAwBQAAMAVAADAFgAAwBcAAMAYAADAGQAAwBoAAMAbAADAHAAAwB0AAMAeAADAHwAAwAAAALMBAADDAgAAwwMAAMMEAADDBQAAwwYAAMMHAADDCAAAwwkAAMMKAADDCwAAwwwAAMMNAADTDgAAww8AAMMAAAy7AQAMwwIADMMDAAzDBAAM2wAAAADURwIAAQIAAAICAAADAgAABAIAAAUCAAAGAgAABwIAAAgCAAAJAgAACgIAAAsCAAAMAgAADQIAAA4CAAAEAAAAAAAAABBIAgAPAgAAEAIAAPz////8////EEgCABECAAASAgAAOEcCAExHAgAAAAAAWEgCABMCAAAUAgAAAwIAAAQCAAAVAgAAFgIAAAcCAAAIAgAACQIAABcCAAALAgAAGAIAAA0CAAAZAgAAoHQCAKhHAgBsSQIATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAAB4dAIA3EcCAE5TdDNfXzIxNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAAAD8dAIAKEgCAAAAAAABAAAAnEcCAAP0//9OU3QzX18yMTNiYXNpY19vc3Ry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AE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMUVFRQAAAAAAOGsCAFcCAAAQAwAANQIAABEDAAASAwAA/HQCAFhrAgAAAAAAAgAAAAxeAgACAAAAoGsCAAAAAABOU3QzX18yOW1vbmV5X2dldEljTlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUAAAB4dAIAqGsCAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SWNFRQAAAAAAAAAA4GsCAFcCAAATAwAANQIAABQDAAAVAwAA/HQCAABsAgAAAAAAAgAAAAxeAgACAAAASGwCAAAAAABOU3QzX18yOW1vbmV5X2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUAAAB4dAIAUGwCAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SXdFRQAAAAAAAAAAiGwCAFcCAAAWAwAANQIAABcDAAAYAwAA/HQCAKhsAgAAAAAAAgAAAAxeAgACAAAA8GwCAAAAAABOU3QzX18yOW1vbmV5X3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUAAAB4dAIA+GwCAE5TdDNfXzIxMV9fbW9uZXlfcHV0SWNFRQAAAAAAAAAAMG0CAFcCAAAZAwAANQIAABoDAAAbAwAA/HQCAFBtAgAAAAAAAgAAAAxeAgACAAAAmG0CAAAAAABOU3QzX18yOW1vbmV5X3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUAAAB4dAIAoG0CAE5TdDNfXzIxMV9fbW9uZXlfcHV0SXdFRQAAAAAAAAAA3G0CAFcCAAAcAwAANQIAAB0DAAAeAwAAHwMAAPx0AgD8bQIAAAAAAAIAAAAMXgIAAgAAABRuAgACAAAATlN0M19fMjhtZXNzYWdlc0ljRUUAAAAAeHQCABxuAgBOU3QzX18yMTNtZXNzYWdlc19iYXNlRQAAAAAAVG4CAFcCAAAgAwAANQIAACEDAAAiAwAAIwMAAPx0AgB0bgIAAAAAAAIAAAAMXgIAAgAAABRuAgACAAAATlN0M19fMjhtZXNzYWdl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"),e=new Uint8Array(t.length);for(let A=0;Anew Rk(t))}var ZG=xh(Hj());var Es=class{static getBaseUrlWithoutPath(){let e=window.location.href;return new URL(e).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl}static getWSServerUrl(){let e=this.getApiServerBaseUrl();return!e||e==""?window.location.host:e.startsWith("http://")?e.slice(7):e.startsWith("https://")?e.slice(8):e}};var K2=class t{constructor(e,A){this.http=e;this.zone=A}apiServerDomain=Es.getApiServerBaseUrl();_currentApp=new li("");currentApp=this._currentApp.asObservable();isLoading=new li(!1);getApp(){return this.currentApp}setApp(e){this._currentApp.next(e)}getLoadingState(){return this.isLoading}runSse(e){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new Ze(i=>{let n=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:l,value:I})=>{if(this.isLoading.next(!0),l)return this.isLoading.next(!1),i.complete();let C=s.decode(I,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(B=>B.startsWith("data:")).forEach(B=>{let E=B.replace(/^data:\s*/,"");JSON.parse(E),n.zone.run(()=>i.next(E))}),a=""}catch(d){d instanceof SyntaxError&&c()}c()}).catch(l=>{n.zone.run(()=>i.error(l))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(e)}return new Ze}static \u0275fac=function(A){return new(A||t)(he(Bs),he(de))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var nmA="import_session",omA="edit_function_args";var rmA="a2a_card",vB=class t{route=m(ra);constructor(){}isImportSessionEnabled(){return this.route.queryParams.pipe(Je(e=>e[nmA]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(Je(e=>e[omA]==="true"))}isSessionUrlEnabled(){return ve(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(Je(e=>e[rmA]==="true"))}static \u0275fac=function(A){return new(A||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};function smA(t,e){}var Y2=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var Ok=(()=>{class t extends _2{_elementRef=m(te);_focusTrapFactory=m(P6);_config;_interactivityChecker=m(hu);_ngZone=m(de);_overlayRef=m(fB);_focusMonitor=m(Jr);_renderer=m(Gi);_platform=m(Zt);_document=m(tt,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=m(lt);_injector=m(Dt);_isDestroyed=!1;constructor(){super(),this._config=m(Y2,{optional:!0})||new Y2,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||Vo(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=cB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=cB();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=cB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&Ge(ca,7),i&2){let o;$A(o=Ae())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&_e("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[et],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&NA(0,smA,0,0,"ng-template",0)},dependencies:[ca],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),Mu=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new HA;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(e,A){this.overlayRef=e,this.config=A,this.disableClose=A.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!rr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(e,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",A=""){return this.overlayRef.updateSize({width:e,height:A}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}},amA=new BA("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=m(Sr);return()=>t.scrollStrategies.block()}}),cmA=new BA("DialogData"),lmA=new BA("DefaultDialogConfig");var Pk=(()=>{class t{_overlay=m(Sr);_injector=m(Dt);_defaultOptions=m(lmA,{optional:!0});_parentDialog=m(t,{optional:!0,skipSelf:!0});_overlayContainer=m(i8);_idGenerator=m($i);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new HA;_afterOpenedAtThisLevel=new HA;_ariaHiddenElements=new Map;_scrollStrategy=m(amA);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=Yl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Qo(void 0)));constructor(){}open(A,i){let n=this._defaultOptions||new Y2;i=nA(nA({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new Mu(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(A,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){Hk(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){Hk(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),Hk(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new G2({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:Y2,useValue:n},{provide:Mu,useValue:i},{provide:fB,useValue:A}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=Ok;let a=new sl(s,n.viewContainerRef,Dt.create({parent:o||this._injector,providers:r}));return A.attach(a).instance}_attachDialogContent(A,i,n,o){if(A instanceof vn){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=nA(nA({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new aa(A,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new sl(A,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(A,i,n,o){let r=A.injector||A.viewContainerRef?.injector,s=[{provide:cmA,useValue:A.data},{provide:Mu,useValue:i}];return A.providers&&(typeof A.providers=="function"?s.push(...A.providers(i,A,n)):s.push(...A.providers)),A.direction&&(!r||!r.get(bo,null,{optional:!0}))&&s.push({provide:bo,useValue:{value:A.direction,change:ve()}}),Dt.create({parent:r||o,providers:s})}_removeOpenDialog(A,i){let n=this.openDialogs.indexOf(A);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==A&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Hk(t,e){let A=t.length;for(;A--;)e(t[A])}var Oj=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[Pk],imports:[u0,sg,q6,sg]})}return t})();function gmA(t,e){}var C8=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},jk="mdc-dialog--open",Pj="mdc-dialog--opening",jj="mdc-dialog--closing",ImA=150,CmA=75,dmA=(()=>{class t extends Ok{_animationMode=m(mi,{optional:!0});_animationStateChanged=new XA;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?Vj(this._config.enterAnimationDuration)??ImA:0;_exitAnimationDuration=this._animationsEnabled?Vj(this._config.exitAnimationDuration)??CmA:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(qj,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(Pj,jk)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(jk),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(jk),this._animationsEnabled?(this._hostElement.style.setProperty(qj,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(jj)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(Pj,jj)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(Fs("id",n._config.id),_e("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),ue("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[et],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",0)(1,"div",1),NA(2,gmA,0,0,"ng-template",2),R()())},dependencies:[ca],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),qj="--mat-dialog-transition-duration";function Vj(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?Ns(t.substring(0,t.length-2)):t.endsWith("s")?Ns(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var I8=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(I8||{}),cr=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new HA;_beforeClosed=new HA;_result;_closeFallbackTimeout;_state=I8.OPEN;_closeInteractionType;constructor(e,A,i){this._ref=e,this._containerInstance=i,this.disableClose=A.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(pt(n=>n.state==="opened"),Pn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(pt(n=>n.state==="closed"),Pn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),ho(this.backdropClick(),this.keydownEvents().pipe(pt(n=>n.keyCode===27&&!this.disableClose&&!rr(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),Zj(this,n.type==="keydown"?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(pt(A=>A.state==="closing"),Pn(1)).subscribe(A=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=I8.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let A=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?A.left(e.left):A.right(e.right):A.centerHorizontally(),e&&(e.top||e.bottom)?e.top?A.top(e.top):A.bottom(e.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",A=""){return this._ref.updateSize(e,A),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=I8.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function Zj(t,e,A){return t._closeInteractionType=e,t.close(A)}var $r=new BA("MatMdcDialogData"),BmA=new BA("mat-mdc-dialog-default-options"),EmA=new BA("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=m(Sr);return()=>t.scrollStrategies.block()}});var Us=(()=>{class t{_overlay=m(Sr);_defaultOptions=m(BmA,{optional:!0});_scrollStrategy=m(EmA);_parentDialog=m(t,{optional:!0,skipSelf:!0});_idGenerator=m($i);_dialog=m(Pk);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new HA;_afterOpenedAtThisLevel=new HA;dialogConfigClass=C8;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=Yl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Qo(void 0)));constructor(){this._dialogRefConstructor=cr,this._dialogContainerType=dmA,this._dialogDataToken=$r}open(A,i){let n;i=nA(nA({},this._defaultOptions||new C8),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(A,Ne(nA({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:Y2,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),gg=(()=>{class t{dialogRef=m(cr,{optional:!0});_elementRef=m(te);_dialog=m(Us);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=Xj(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){Zj(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._onButtonClick(r)}),i&2&&_e("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Kt]})}return t})(),Wj=(()=>{class t{_dialogRef=m(cr,{optional:!0});_elementRef=m(te);_dialog=m(Us);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=Xj(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t})}return t})(),hs=(()=>{class t extends Wj{id=m($i).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&Fs("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[et]})}return t})(),ga=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[DT([h0])]})}return t})(),Ia=(()=>{class t extends Wj{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&ue("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[et]})}return t})();function Xj(t,e){let A=t.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?e.find(i=>i.id===A.id):null}var $j=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[Us],imports:[Oj,u0,sg,Ve,Ve]})}return t})();function hmA(t,e){if(t&1&&UA(0,"img",5),t&2){let A=P(2);vA("src",A.displayContent,Ka)}}function QmA(t,e){t&1&&(S(0,"div",6),tA(1," No image data provided. "),R())}function umA(t,e){if(t&1&&(S(0,"div",3),NA(1,hmA,1,1,"img",5)(2,QmA,2,0,"div",6),R()),t&2){let A=P();_(),FA(A.displayContent?1:-1),_(),FA(A.displayContent?-1:2)}}function fmA(t,e){if(t&1&&UA(0,"div",4),t&2){let A=P();vA("innerHTML",A.displayContent,mI)}}var m0=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let e=this.data.imageData;if(!e){this.displayContent=null,this.isSvgContent=!1;return}if(e.trim().includes("e}))}return d8}function ku(t){return pmA()?.createHTML(t)||t}function eq(t){return Error(`Unable to find icon with the name "${t}"`)}function wmA(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function tq(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function iq(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var p0=class{url;svgText;options;svgElement;constructor(e,A,i){this.url=e,this.svgText=A,this.options=i}},DmA=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,n,o){this._httpClient=A,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(A,i,n){return this.addSvgIconInNamespace("",A,i,n)}addSvgIconLiteral(A,i,n){return this.addSvgIconLiteralInNamespace("",A,i,n)}addSvgIconInNamespace(A,i,n,o){return this._addSvgIconConfig(A,i,new p0(n,null,o))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,n,o){let r=this._sanitizer.sanitize(Kr.HTML,n);if(!r)throw iq(n);let s=ku(r);return this._addSvgIconConfig(A,i,new p0("",s,o))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,n){return this._addSvgIconSetConfig(A,new p0(i,null,n))}addSvgIconSetLiteralInNamespace(A,i,n){let o=this._sanitizer.sanitize(Kr.HTML,i);if(!o)throw iq(i);let r=ku(o);return this._addSvgIconSetConfig(A,new p0("",r,n))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(Kr.RESOURCE_URL,A);if(!i)throw tq(A);let n=this._cachedIconsByUrl.get(i);return n?ve(B8(n)):this._loadSvgIconFromConfig(new p0(A,null)).pipe(oo(o=>this._cachedIconsByUrl.set(i,o)),Je(o=>B8(o)))}getNamedSvgIcon(A,i=""){let n=nq(i,A),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,A),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(A,r):s2(eq(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?ve(B8(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(Je(i=>B8(i)))}_getSvgFromIconSetConfigs(A,i){let n=this._extractIconWithNameFromAnySet(A,i);if(n)return ve(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(dr(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(Kr.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),ve(null)})));return Hh(o).pipe(Je(()=>{let r=this._extractIconWithNameFromAnySet(A,i);if(!r)throw eq(A);return r}))}_extractIconWithNameFromAnySet(A,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(A)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,A,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(oo(i=>A.svgText=i),Je(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?ve(null):this._fetchIcon(A).pipe(oo(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,n){let o=A.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(ku(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(A){let i=this._svgElementFromString(ku("")),n=A.attributes;for(let o=0;oku(c)),Tl(()=>this._inProgressUrlFetches.delete(r)),Ph());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(A,i,n){return this._svgIconConfigs.set(nq(A,i),n),this}_addSvgIconSetConfig(A,i){let n=this._iconSetConfigs.get(A);return n?n.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let n=0;ne?e.pathname+e.search:""}}var oq=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],kmA=oq.map(t=>`[${t}]`).join(", "),SmA=/^url\(['"]?#(.*?)['"]?\)$/,T2=(()=>{class t{_elementRef=m(te);_iconRegistry=m(DmA);_location=m(bmA);_errorHandler=m(Xs);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=_t.EMPTY;constructor(){let A=m(new Er("aria-hidden"),{optional:!0}),i=m(vmA,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=A.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>A.classList.remove(n)),i.forEach(n=>A.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${A}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(kmA),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(SmA):null;if(c){let l=n.get(s);l||(l=[],n.set(s,l)),l.push({name:r,value:c[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,n]=this._splitIconName(A);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(Pn(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(_e("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),vo(n.color?"mat-"+n.color:""),ue("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",ae],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:mmA,decls:1,vars:0,template:function(i,n){i&1&&(Yt(),xe(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),rq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Ve]})}return t})();var RmA=["audioPlayer"],zI=class t{base64data="";audioPlayerRef;audioSrc="";constructor(){}ngOnChanges(e){e.base64data&&this.base64data&&this.setAudioSource(this.base64data)}setAudioSource(e){e.startsWith("data:")?this.audioSrc=e:this.audioSrc=`data:audio/mpeg;base64,${e}`,this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.load()}play(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.play()}pause(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.pause()}stop(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&(this.audioPlayerRef.nativeElement.pause(),this.audioPlayerRef.nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=YA({type:t,selectors:[["app-audio-player"]],viewQuery:function(A,i){if(A&1&&Ge(RmA,5),A&2){let n;$A(n=Ae())&&(i.audioPlayerRef=n.first)}},inputs:{base64data:"base64data"},standalone:!1,features:[Kt],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(S(0,"div"),UA(1,"audio",1,0),R()),A&2&&(_(),vA("src",i.audioSrc,Ka))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:#f0f0f0;border-radius:8px;box-shadow:0 2px 5px #0000001a;margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:#007bff;color:#fff;cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#0056b3}"]})};function LmA(t,e){t&1&&UA(0,"hr",2)}function xmA(t,e){if(t&1&&(S(0,"mat-option",7),tA(1),R()),t&2){let A=e.$implicit;vA("value",A),_(),Mt(A.versionId)}}function FmA(t,e){if(t&1){let A=De();S(0,"div")(1,"img",9),mA("click",function(){LA(A);let n=P().$index,o=P();return xA(o.openViewImageDialog(o.selectedArtifacts[n].data))}),R()()}if(t&2){let A,i=P().$index,n=P();_(),vA("src",(A=n.selectedArtifacts[i].data)!==null&&A!==void 0?A:"",Ka)}}function NmA(t,e){if(t&1&&(S(0,"div"),UA(1,"app-audio-player",10),R()),t&2){let A=P().$index,i=P();_(),vA("base64data",i.selectedArtifacts[A].data)}}function _mA(t,e){if(t&1){let A=De();S(0,"div",1),NA(1,LmA,1,0,"hr",2),S(2,"div",3)(3,"button",4),mA("click",function(){let n=LA(A).$index,o=P();return xA(o.openArtifact(o.selectedArtifacts[n].data,o.selectedArtifacts[n].mimeType))}),tA(4),R()(),S(5,"div",3)(6,"span"),tA(7," Version: "),R(),S(8,"div",5)(9,"mat-select",6),ta("ngModelChange",function(n){let o=LA(A).$index,r=P();return Ja(r.selectedArtifacts[o],n)||(r.selectedArtifacts[o]=n),xA(n)}),mA("selectionChange",function(n){let o=LA(A).$index,r=P();return xA(r.onArtifactVersionChange(n,o))}),ln(10,xmA,2,2,"mat-option",7,Kn),R()(),S(12,"button",8),mA("click",function(){let n=LA(A).$index,o=P();return xA(o.downloadArtifact(o.selectedArtifacts[n]))}),S(13,"mat-icon"),tA(14,"file_download"),R(),tA(15," Download "),R()(),S(16,"div"),NA(17,FmA,2,1,"div")(18,NmA,2,1,"div"),R()()}if(t&2){let A,i=e.$implicit,n=e.$index,o=P();_(),FA(n>0?1:-1),_(3),ot(" ",o.getArtifactName(i)," "),_(5),ea("ngModel",o.selectedArtifacts[n]),_(),gn(o.getSortedArtifactsFromId(i)),_(7),FA((A=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:A===o.MediaType.AUDIO?18:-1)}}var GmA="default_artifact_name",Ru=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(Ru||{});function h8(t){let e=t.toLowerCase();for(let A of Object.values(Ru))if(A!=="unspecified"&&e.startsWith(A+"/"))return A;return"unspecified"}function UmA(t){return t?t.startsWith("image/"):!1}function KmA(t){return t?t.startsWith("audio/"):!1}function qk(t,e){try{if(!t)return;let A=t;if(t.startsWith("data:")&&t.includes(";base64,")&&(A=A.substring(A.indexOf(";base64,")+8)),!e||!A)return;let i=atob(A),n=new Array(i.length);for(let c=0;ce.id))]}getSortedArtifactsFromId(e){return this.artifacts.filter(A=>A.id===e).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(e,A){this.selectedArtifacts[A]=e.value}openViewImageDialog(e){if(!e||!e.startsWith("data:")||e.indexOf(";base64,")===-1)return;let A=this.dialog.open(m0,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}openArtifact(e,A){if(this.isArtifactImage(A)){this.openViewImageDialog(e);return}this.openBase64InNewTab(e,A)}static \u0275fac=function(A){return new(A||t)(zA(J2),zA(Us))};static \u0275cmp=YA({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:"artifacts"},standalone:!1,features:[Kt],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(S(0,"div",0),ln(1,_mA,19,4,"div",1,Kn),R()),A&2&&(_(),gn(i.getDistinctArtifactIds()))},dependencies:[na,ja,T2,ur,pB,x2,zI],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:#8ab4f8!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid white;margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:#212123;width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:#007bff!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:#0056b3;text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted #007bff}.link-style-button[_ngcontent-%COMP%]:active{color:#004085}.link-style-button[_ngcontent-%COMP%]:disabled{color:#6c757d;text-decoration:none;cursor:not-allowed}"]})};function ao(t){return Array.isArray(t)}function Mo(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function Vk(t){return t&&typeof t=="object"?t.op==="add":!1}function Zk(t){return t&&typeof t=="object"?t.op==="remove":!1}function Q8(t){return t&&typeof t=="object"?t.op==="replace":!1}function u8(t){return t&&typeof t=="object"?t.op==="copy":!1}function HI(t){return t&&typeof t=="object"?t.op==="move":!1}function aq(t,e){return JSON.stringify(t)===JSON.stringify(e)}function JmA(t,e){return t===e}function Wk(t){return t.slice(0,t.length-1)}function cq(t){return t[t.length-1]}function lq(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JmA;if(t.length{e[A]=t[A]}),e}else if(Mo(t)){let e=nA({},t);return Object.getOwnPropertySymbols(t).forEach(A=>{e[A]=t[A]}),e}else return t}function AS(t,e,A){if(t[e]===A)return t;{let i=$k(t);return i[e]=A,i}}function Fe(t,e){let A=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return A;let n=e[0],o=As(t?t[n]:void 0,e.slice(1),A,i);if(Mo(t)||ao(t))return AS(t,n,o);if(i){let r=TmA.test(n)?[]:{};return r[n]=o,r}else throw new Error("Path does not exist")}var TmA=/^\d+$/;function Lu(t,e,A){if(e.length===0)return A(t);if(!Xk(t))throw new Error("Path doesn't exist");let i=e[0],n=Lu(t[i],e.slice(1),A);return AS(t,i,n)}function OI(t,e){if(e.length===0)return t;if(!Xk(t))throw new Error("Path does not exist");if(e.length===1){let n=e[0];if(n in t){let o=$k(t);return ao(o)&&o.splice(parseInt(n),1),Mo(o)&&delete o[n],o}else return t}let A=e[0],i=OI(t[A],e.slice(1));return AS(t,A,i)}function xu(t,e,A){let i=e.slice(0,e.length-1),n=e[e.length-1];return Lu(t,i,o=>{if(!Array.isArray(o))throw new TypeError("Array expected at path "+JSON.stringify(i));let r=$k(o);return r.splice(parseInt(n),0,A),r})}function Qs(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:Qs(t[e[0]],e.slice(1))}function da(t){let e=t.split("/");return e.shift(),e.map(A=>A.replace(/~1/g,"/").replace(/~0/g,"~"))}function nt(t){return t.map(gq).join("")}function gq(t){return"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1")}function eS(t,e){return t+gq(e)}function Ba(t,e,A){let i=t;for(let n=0;n{let s,a=Ea(o,r.path);if(r.op==="add")s=dq(o,a);else if(r.op==="remove")s=Cq(o,a);else if(r.op==="replace")s=Iq(o,a);else if(r.op==="copy")s=WmA(o,a);else if(r.op==="move")s=XmA(o,a,Fu(r.from));else if(r.op==="test")s=[];else throw new Error("Unknown JSONPatch operation "+JSON.stringify(r));let c;if(A&&A.before){let l=A.before(o,r,s);if(l&&l.revertOperations&&(s=l.revertOperations),l&&l.document&&(c=l.document),l&&l.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function Iq(t,e){return[{op:"replace",path:nt(e),value:Fe(t,e)}]}function Cq(t,e){return[{op:"add",path:nt(e),value:Fe(t,e)}]}function dq(t,e){return bB(t,e)||!Qs(t,e)?[{op:"remove",path:nt(e)}]:Iq(t,e)}function WmA(t,e){return dq(t,e)}function XmA(t,e,A){if(e.length="0"&&t<="9"}function Qq(t){return t>=" "}function Nu(t){return`,:[]/{}() ++`.includes(t)}function nS(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function oS(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var rS=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,sS=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function aS(t){return`,[]/{} ++`.includes(t)}function cS(t){return _u(t)||cpA.test(t)}var cpA=/^[[{\w-]$/;function uq(t){return t===` +`||t==="\r"||t===" "||t==="\b"||t==="\f"}function z2(t,e){let A=t.charCodeAt(e);return A===32||A===10||A===9||A===13}function fq(t,e){let A=t.charCodeAt(e);return A===32||A===9||A===13}function mq(t,e){let A=t.charCodeAt(e);return A===160||A>=8192&&A<=8202||A===8239||A===8287||A===12288}function _u(t){return lS(t)||w8(t)}function lS(t){return t==='"'||t==="\u201C"||t==="\u201D"}function gS(t){return t==='"'}function w8(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function IS(t){return t==="'"}function MB(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(e);return i!==-1?t.substring(0,i)+(A?"":t.substring(i+1)):t}function Dc(t,e){let A=t.length;if(!z2(t,A-1))return t+e;for(;z2(t,A-1);)A--;return t.substring(0,A)+e+t.substring(A)}function pq(t,e,A){return t.substring(0,e)+t.substring(e+A)}function wq(t){return/[,\n][ \t\r]*$/.test(t)}var lpA={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},gpA={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "};function yc(t){let e=0,A="";c(),o()||IA(),c();let n=l(",");for(n&&r(),cS(t[e])&&wq(A)?(n||(A=Dc(A,",")),Q()):n&&(A=MB(A,","));t[e]==="}"||t[e]==="]";)e++,r();if(e>=t.length)return A;j();function o(){r();let V=B()||E()||u()||L()||x()||F(!1)||U();return r(),V}function r(){let V=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,cA=e,aA=s(V);do aA=a(),aA&&(aA=s(V));while(aA);return e>cA}function s(V){let cA=V?z2:fq,aA="";for(;;)if(cA(t,e))aA+=t[e],e++;else if(mq(t,e))aA+=" ",e++;else break;return aA.length>0?(A+=aA,!0):!1}function a(){if(t[e]==="/"&&t[e+1]==="*"){for(;e=t.length;jA||(cS(t[e])||VA?A=Dc(A,":"):uA()),o()||(jA||VA?A+="null":uA())}return t[e]==="}"?(A+="}",e++):A=Dc(A,"}"),!0}return!1}function E(){if(t[e]==="["){A+="[",e++,r(),I(",")&&r();let V=!0;for(;e0&&arguments[0]!==void 0?arguments[0]:!1,cA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,aA=t[e]==="\\";if(aA&&(e++,aA=!0),_u(t[e])){let jA=gS(t[e])?gS:IS(t[e])?IS:w8(t[e])?w8:lS,VA=e,ce=A.length,EA='"';for(e++;;){if(e>=t.length){let sA=T(e-1);return!V&&Nu(t.charAt(sA))?(e=VA,A=A.substring(0,ce),u(!0)):(EA=Dc(EA,'"'),A+=EA,!0)}else{if(e===cA)return EA=Dc(EA,'"'),A+=EA,!0;if(jA(t[e])){let sA=e,TA=EA.length;if(EA+='"',e++,A+=EA,r(!1),V||e>=t.length||Nu(t[e])||_u(t[e])||H2(t[e]))return v(),!0;let Ke=T(sA-1),Re=t.charAt(Ke);if(Re===",")return e=VA,A=A.substring(0,ce),u(!1,Ke);if(Nu(Re))return e=VA,A=A.substring(0,ce),u(!0);A=A.substring(0,ce),e=sA+1,EA="".concat(EA.substring(0,TA),"\\").concat(EA.substring(TA))}else if(V&&aS(t[e])){if(t[e-1]===":"&&rS.test(t.substring(VA+1,e+2)))for(;e=t.length?e=t.length:p()}else EA+=sA,e+=2}else{let sA=t.charAt(e);sA==='"'&&t[e-1]!=="\\"?(EA+="\\".concat(sA),e++):uq(sA)?(EA+=lpA[sA],e++):(Qq(sA)||H(sA),EA+=sA,e++)}}aA&&C()}}return!1}function v(){let V=!1;for(r();t[e]==="+";){V=!0,e++,r(),A=MB(A,'"',!0);let cA=A.length;u()?A=pq(A,cA,1):A=Dc(A,'"')}return V}function L(){let V=e;if(t[e]==="-"){if(e++,N())return K(V),!0;if(!H2(t[e]))return e=V,!1}for(;H2(t[e]);)e++;if(t[e]==="."){if(e++,N())return K(V),!0;if(!H2(t[e]))return e=V,!1;for(;H2(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,N())return K(V),!0;if(!H2(t[e]))return e=V,!1;for(;H2(t[e]);)e++}if(!N())return e=V,!1;if(e>V){let cA=t.slice(V,e),aA=/^0\d/.test(cA);return A+=aA?'"'.concat(cA,'"'):cA,!0}return!1}function x(){return y("true","true")||y("false","false")||y("null","null")||y("True","true")||y("False","false")||y("None","null")}function y(V,cA){return t.slice(e,e+V.length)===V?(A+=cA,e+=V.length,!0):!1}function F(V){let cA=e;if(nS(t[e])){for(;ecA){for(;z2(t,e-1)&&e>0;)e--;let aA=t.slice(cA,e);return A+=aA==="undefined"?"null":JSON.stringify(aA),t[e]==='"'&&e++,!0}}function U(){if(t[e]==="/"){let V=e;for(e++;e0&&z2(t,cA);)cA--;return cA}function N(){return e>=t.length||Nu(t[e])||z2(t,e)}function K(V){A+="".concat(t.slice(V,e),"0")}function H(V){throw new w0("Invalid character ".concat(JSON.stringify(V)),e)}function j(){throw new w0("Unexpected character ".concat(JSON.stringify(t[e])),e)}function IA(){throw new w0("Unexpected end of json string",t.length)}function lA(){throw new w0("Object key expected",e)}function uA(){throw new w0("Colon expected",e)}function p(){let V=t.slice(e,e+6);throw new w0('Invalid unicode character "'.concat(V,'"'),e)}}function IpA(t,e){return t[e]==="*"&&t[e+1]==="/"}var CpA=typeof global=="object"&&global&&global.Object===Object&&global,D8=CpA;var dpA=typeof self=="object"&&self&&self.Object===Object&&self,BpA=D8||dpA||Function("return this")(),er=BpA;var EpA=er.Symbol,Tr=EpA;var Dq=Object.prototype,hpA=Dq.hasOwnProperty,QpA=Dq.toString,Gu=Tr?Tr.toStringTag:void 0;function upA(t){var e=hpA.call(t,Gu),A=t[Gu];try{t[Gu]=void 0;var i=!0}catch{}var n=QpA.call(t);return i&&(e?t[Gu]=A:delete t[Gu]),n}var yq=upA;var fpA=Object.prototype,mpA=fpA.toString;function ppA(t){return mpA.call(t)}var vq=ppA;var wpA="[object Null]",DpA="[object Undefined]",bq=Tr?Tr.toStringTag:void 0;function ypA(t){return t==null?t===void 0?DpA:wpA:bq&&bq in Object(t)?yq(t):vq(t)}var al=ypA;function vpA(t){return t!=null&&typeof t=="object"}var Ks=vpA;var bpA="[object Symbol]";function MpA(t){return typeof t=="symbol"||Ks(t)&&al(t)==bpA}var Ac=MpA;function kpA(t,e){for(var A=-1,i=t==null?0:t.length,n=Array(i);++A0){if(++e>=h6A)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Oq=f6A;function m6A(t){return function(){return t}}var Pq=m6A;var p6A=function(){try{var t=ha(Object,"defineProperty");return t({},"",{}),t}catch{}}(),SB=p6A;var w6A=SB?function(t,e){return SB(t,"toString",{configurable:!0,enumerable:!1,value:Pq(e),writable:!0})}:Ig,jq=w6A;var D6A=Oq(jq),qq=D6A;function y6A(t,e){for(var A=-1,i=t==null?0:t.length;++A-1&&t%1==0&&t-1&&t%1==0&&t<=G6A}var LB=U6A;function K6A(t){return t!=null&&LB(t.length)&&!y8(t)}var vc=K6A;function Y6A(t,e,A){if(!Lr(A))return!1;var i=typeof e;return(i=="number"?vc(A)&&RB(e,A.length):i=="string"&&e in A)?j2(A[e],t):!1}var Ku=Y6A;var J6A=Object.prototype;function T6A(t){var e=t&&t.constructor,A=typeof e=="function"&&e.prototype||J6A;return t===A}var V2=T6A;function z6A(t,e){for(var A=-1,i=Array(t);++A-1}var QV=c5A;function l5A(t,e){var A=this.__data__,i=X2(A,t);return i<0?(++this.size,A.push([t,e])):A[i][1]=e,this}var uV=l5A;function GB(t){var e=-1,A=t==null?0:t.length;for(this.clear();++e0&&A(s)?e>1?LV(s,e-1,A,i,n):YB(n,s):i||(n[n.length]=s)}return n}var xV=LV;var x5A=R8(Object.getPrototypeOf,Object),N8=x5A;function F5A(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),l=o.get(e);if(c&&l)return c==e&&l==t;var I=-1,C=!0,d=A&xDA?new wZ:void 0;for(o.set(t,e),o.set(e,t);++I=e||U<0||I&&T>=o}function u(){var F=A5();if(Q(F))return v(F);s=setTimeout(u,E(F))}function v(F){return s=void 0,C&&i?d(F):(i=n=void 0,r)}function L(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function x(){return s===void 0?r:v(A5())}function y(){var F=A5(),U=Q(F);if(i=arguments,n=this,a=F,U){if(s===void 0)return B(a);if(I)return clearTimeout(s),s=setTimeout(u,e),d(a)}return s===void 0&&(s=setTimeout(u,e)),r}return y.cancel=L,y.flush=x,y}var PB=xyA;function FyA(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ri=FyA;function NyA(t){return typeof t=="function"?t:Ig}var e5=NyA;function _yA(t,e){for(var A=t==null?0:t.length;A--&&e(t[A],A,t)!==!1;);return t}var VZ=_yA;var GyA=V8(!0),ZZ=GyA;function UyA(t,e){return t&&ZZ(t,e,bc)}var WZ=UyA;var KyA=W8(WZ,!0),XZ=KyA;function YyA(t,e){var A=Mn(t)?VZ:XZ;return A(t,e5(e))}var uS=YyA;function JyA(t){return t&&t.length?t[0]:void 0}var Mc=JyA;function TyA(t,e){var A=-1,i=vc(t)?Array(t.length):[];return X8(t,function(n,o,r){i[++A]=e(n,o,r)}),i}var t5=TyA;function zyA(t,e){var A=Mn(t)?O2:t5;return A(t,Cg(e,3))}var fS=zyA;var HyA=Object.prototype,OyA=HyA.hasOwnProperty,PyA=$8(function(t,e,A){OyA.call(t,A)?t[A].push(e):P2(t,A,[e])}),mS=PyA;function jyA(t){var e=t==null?0:t.length;return e?FV(t,0,-1):[]}var pi=jyA;var qyA="[object Map]",VyA="[object Set]",ZyA=Object.prototype,WyA=ZyA.hasOwnProperty;function XyA(t){if(t==null)return!0;if(vc(t)&&(Mn(t)||typeof t=="string"||typeof t.splice=="function"||y0(t)||xB(t)||Z2(t)))return!t.length;var e=cl(t);if(e==qyA||e==VyA)return!t.size;if(V2(t))return!L8(t).length;for(var A in t)if(WyA.call(t,A))return!1;return!0}var sn=XyA;function $yA(t,e){return OB(t,e)}var Ei=$yA;function A7A(t,e){return te||o&&r&&a&&!s&&!c||i&&r&&a||!A&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=A[i];return a*(c=="desc"?-1:1)}}return t.index-e.index}var iW=r7A;function s7A(t,e,A){e.length?e=O2(e,function(o){return Mn(o)?function(r){return KB(r,o.length===1?o[0]:o)}:o}):e=[Ig];var i=-1;e=O2(e,W2(Cg));var n=t5(t,function(o,r,s){var a=O2(e,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return eW(n,function(o,r){return iW(o,r,A)})}var nW=s7A;var a7A=$8(function(t,e,A){t[A?0:1].push(e)},function(){return[[],[]]}),wS=a7A;var c7A=Math.ceil,l7A=Math.max;function g7A(t,e,A,i){for(var n=-1,o=l7A(c7A((e-t)/(A||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=A;return r}var oW=g7A;function I7A(t){return function(e,A,i){return i&&typeof i!="number"&&Ku(e,A,i)&&(A=i=void 0),e=kB(e),A===void 0?(A=e,e=0):A=kB(A),i=i===void 0?e1&&Ku(t,e[0],e[1])?e=[]:A>2&&Ku(e[0],e[1],e[2])&&(e=[e[0]]),nW(t,xV(e,1),[])}),DS=d7A;var B7A=9007199254740991,yS=4294967295,E7A=Math.min;function h7A(t,e){if(t=_q(t),t<1||t>B7A)return[];var A=yS,i=E7A(t,yS);e=e5(e),t-=yS;for(var n=k8(i,e);++AArray.isArray(t),f7A=t=>t!==null&&typeof t=="object"&&!o1(t),m7A=t=>typeof t=="string",qI=(t,e)=>t===e?!0:t!==null&&e!==null&&typeof t=="object"&&typeof e=="object"&&Object.keys(t).length===Object.keys(e).length&&Object.entries(t).every(([A,i])=>qI(i,e[A]));function lr(t){return(...e)=>{let A=e.map(o=>xr(o)),i=A[0],n=A[1];return A.length===1?o=>t(i(o)):A.length===2?o=>t(i(o),n(o)):o=>t(...A.map(r=>r(o)))}}var Ou={boolean:0,number:1,string:2},sW=3,cW=(t,e)=>typeof t==typeof e&&typeof t in Ou?t>e:!1,p7A=(t,e)=>qI(t,e)||cW(t,e),lW=(t,e)=>typeof t==typeof e&&typeof t in Ou?tqI(t,e)||lW(t,e),Hu={pipe:(...t)=>{let e=t.map(A=>xr(A));return A=>e.reduce((i,n)=>n(i),A)},object:t=>{let e=Object.keys(t).map(A=>[A,xr(t[A])]);return A=>{let i={};for(let[n,o]of e)i[n]=o(A);return i}},array:(...t)=>{let e=t.map(A=>xr(A));return A=>e.map(i=>i(A))},get:(...t)=>{if(t.length===0)return e=>e??null;if(t.length===1){let e=t[0];return A=>A?.[e]??null}return e=>{let A=e;for(let i of t)A=A?.[i];return A??null}},map:t=>{let e=xr(t);return A=>A.map(e)},mapObject:t=>{let e=xr(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e({key:n,value:A[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let e=xr(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e(n);i[o]=A[n]}return i}},mapValues:t=>{let e=xr(t);return A=>{let i={};for(let n of Object.keys(A))i[n]=e(A[n]);return i}},filter:t=>{let e=xr(t);return A=>A.filter(i=>aW(e(i)))},sort:(t=["get"],e)=>{let A=xr(t),i=e==="desc"?-1:1;function n(o,r){let s=A(o),a=A(r);if(typeof s!=typeof a){let c=Ou[typeof s]??sW,l=Ou[typeof a]??sW;return c>l?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let e=t.map(([i,...n])=>[n[n.length-1],Hu.get(...n)]),A=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>o1(i)?i.map(n=>A(n,e)):A(i,e)},groupBy:t=>{let e=xr(t);return A=>{let i={};for(let n of A){let o=e(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let e=xr(t);return A=>{let i={};for(let n of A){let o=e(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>e=>e.join(t),split:lr((t,e)=>e!==void 0?t.split(e):t.trim().split(/\s+/)),substring:lr((t,e,A)=>t.slice(Math.max(e,0),A)),uniq:()=>t=>{let e=[];for(let A of t)e.findIndex(i=>qI(i,A))===-1&&e.push(A);return e},uniqBy:t=>e=>Object.values(Hu.keyBy(t)(e)),limit:t=>e=>e.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>zu(t,(e,A)=>e*A),sum:()=>t=>o1(t)?t.reduce((e,A)=>e+A,0):bS(),average:()=>t=>o1(t)?t.length>0?t.reduce((e,A)=>e+A)/t.length:null:bS(),min:()=>t=>zu(t,(e,A)=>Math.min(e,A)),max:()=>t=>zu(t,(e,A)=>Math.max(e,A)),and:lr((...t)=>zu(t,(e,A)=>!!(e&&A))),or:lr((...t)=>zu(t,(e,A)=>!!(e||A))),not:lr(t=>!t),exists:t=>{let e=t.slice(1),A=e.pop(),i=Hu.get(...e);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,A)}},if:(t,e,A)=>{let i=xr(t),n=xr(e),o=xr(A);return r=>aW(i(r))?n(r):o(r)},in:(t,e)=>{let A=xr(t),i=xr(e);return n=>{let o=A(n);return i(n).findIndex(r=>qI(r,o))!==-1}},"not in":(t,e)=>{let A=Hu.in(t,e);return i=>!A(i)},regex:(t,e,A)=>{let i=new RegExp(e,A),n=xr(t);return o=>i.test(n(o))},eq:lr(qI),gt:lr(cW),gte:lr(p7A),lt:lr(lW),lte:lr(w7A),ne:lr((t,e)=>!qI(t,e)),add:lr((t,e)=>t+e),subtract:lr((t,e)=>t-e),multiply:lr((t,e)=>t*e),divide:lr((t,e)=>t/e),mod:lr((t,e)=>t%e),pow:lr((t,e)=>t**e),abs:lr(Math.abs),round:lr((t,e=0)=>+`${Math.round(+`${t}e${e}`)}e${-e}`),number:lr(t=>{let e=Number(t);return Number.isNaN(Number(t))?null:e}),string:lr(String)},aW=t=>t!==null&&t!==0&&t!==!1,zu=(t,e)=>(o1(t)||bS(),t.length===0?null:t.reduce(e)),bS=()=>{MS("Array expected")},MS=t=>{throw new TypeError(t)},n5=[];function xr(t,e){n5.unshift(nA(nA(nA({},Hu),n5[0]),e?.functions));try{let A=o1(t)?D7A(t,n5[0]):f7A(t)?MS(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return A(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{n5.shift()}}function D7A(t,e){let[A,...i]=t,n=e[A];return n||MS(`Unknown function '${A}'`),n(...i)}var gW=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],y7A=["|","and","or"],IW=["|","and","or","*","/","%","+","-"];function CW(t,e){if(!o1(e))throw new Error("Invalid custom operators");return e.reduce(v7A,t)}function v7A(t,{name:e,op:A,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?Ne(nA({},a),{[e]:A}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[e]:A});throw new Error("Invalid custom operator")}var b7A=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,M7A=/^[a-zA-Z_$][a-zA-Z\d_$]*/,k7A=/^"(?:[^"\\]|\\.)*"/,S7A=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,R7A=/^(0|[1-9][0-9]*)/,L7A=/^(true|false|null)/,x7A=/^[ \n\t\r]+/;function kS(t,e){let A=e?.operators??[],i=CW(gW,A),n=Object.assign({},...i),o=y7A.concat(A.filter(K=>K.vararg).map(K=>K.op)),r=IW.concat(A.filter(K=>K.leftAssociative).map(K=>K.op)),s=(K=i.length-1)=>{let H=i[K];if(!H)return c();let j=t[T]==="(",IA=s(K-1);for(;;){y();let lA=T,uA=a(H);if(!uA)break;let p=s(K-1),V=IA[0],cA=uA===V&&!j;if(cA&&!r.includes(n[uA])){T=lA;break}IA=cA&&o.includes(n[uA])?[...IA,p]:[uA,IA,p]}return IA},a=K=>{let H=Object.keys(K).sort((j,IA)=>IA.length-j.length);for(let j of H){let IA=K[j];if(t.substring(T,T+IA.length)===IA)return T+=IA.length,y(),j}},c=()=>{if(y(),t[T]==="("){T++;let K=s();return F(")"),K}return l()},l=()=>{if(t[T]==="."){let K=[];for(;t[T]===".";)T++,K.push(B()??E()??u()??U("Property expected"));return["get",...K]}return I()},I=()=>{let K=T,H=E();if(y(),!H||t[T]!=="(")return T=K,C();T++,y();let j=t[T]!==")"?[s()]:[];for(;T{if(t[T]==="{"){T++,y();let K={},H=!0;for(;T{if(t[T]==="["){T++,y();let K=[],H=!0;for(;Tx(k7A,JSON.parse),E=()=>x(M7A,K=>K),Q=()=>x(S7A,JSON.parse),u=()=>x(R7A,JSON.parse),v=()=>{let K=x(L7A,JSON.parse);if(K!==void 0)return K;U("Value expected")},L=()=>{y(),T{let j=t.substring(T).match(K);if(j)return T+=j[0].length,H(j[0])},y=()=>x(x7A,K=>K),F=K=>{t[T]!==K&&U(`Character '${K}' expected`),T++},U=(K,H=T)=>{throw new SyntaxError(`${K} (pos: ${H})`)},T=0,N=s();return L(),N}var F7A=40,N7A=" ",dW=(t,e)=>{let A=e?.indentation??N7A,i=e?.operators??[],n=CW(gW,i),o=Object.assign({},...n),r=IW.concat(i.filter(d=>d.leftAssociative).map(d=>d.op)),s=(d,B,E=!1)=>o1(d)?a(d,B,E):JSON.stringify(d),a=(d,B,E)=>{let[Q,...u]=d;if(Q==="get"&&u.length>0)return l(u);if(Q==="object")return c(u[0],B);if(Q==="array"){let y=u.map(F=>s(F,B));return C(y,["[",", ","]"],[`[ +${B+A}`,`, +${B+A}`,` +${B}]`])}let v=o[Q];if(v){let y=E?"(":"",F=E?")":"",U=u.map((T,N)=>{let K=T?.[0],H=n.findIndex(lA=>Q in lA),j=n.findIndex(lA=>K in lA),IA=H0||Q===K&&!r.includes(v);return s(T,B+A,IA)});return C(U,[y,` ${v} `,F],[y,` +${B+A}${v} `,F])}let L=u.length===1?B:B+A,x=u.map(y=>s(y,L));return C(x,[`${Q}(`,", ",")"],u.length===1?[`${Q}(`,`, +${B}`,")"]:[`${Q}( +${L}`,`, +${L}`,` +${B})`])},c=(d,B)=>{let E=B+A,Q=Object.entries(d).map(([u,v])=>`${I(u)}: ${s(v,E)}`);return C(Q,["{ ",", "," }"],[`{ +${E}`,`, +${E}`,` +${B}}`])},l=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>b7A.test(d)?d:JSON.stringify(d),C=(d,[B,E,Q],[u,v,L])=>B.length+d.reduce((x,y)=>x+y.length+E.length,0)-E.length+Q.length<=(e?.maxLineLength??F7A)?B+d.join(E)+Q:u+d.join(v)+L;return s(t,"")};function BW(t,e,A){return xr(m7A(e)?kS(e,A):e,A)(t)}var EW={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var _7A={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},SS=_7A;var RS={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var hW={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var o5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var QW={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var qB={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var LS={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var uW={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var G7A={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},VI=G7A;var U7A={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},fW=U7A;var mW={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var K7A={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},xS=K7A;var Y7A={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},pW=Y7A;var wW={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var FS={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var J7A={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},DW=J7A;var yW={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var NS={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var Pu={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var ju={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var M0={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var vW={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var ZI={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var T7A={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var r5=T7A;var z7A={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var s5=z7A;var H7A={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},bW=H7A;var O7A={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},MW=O7A;var k0={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var P7A={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},_S=P7A;var qu={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var j7A={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var Vu=j7A;var kW={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var GS={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var q7A={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},Zu=q7A;var SW={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var S0={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var WI={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var RW={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},LW=RW;var Wu=RW;var xW={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var FW={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var US={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var a5={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var V7A={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},r1=V7A;var mrA=xh(GW(),1);var UW=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function Z7A(t,e){return!!(t===e||UW(t)&&UW(e))}function W7A(t,e){if(t.length!==e.length)return!1;for(var A=0;A{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},pa=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(e){return t.max_unop_len=Math.max(e.length,t.max_unop_len),t.unary_ops[e]=1,t}static addBinaryOp(e,A,i){return t.max_binop_len=Math.max(e.length,t.max_binop_len),t.binary_ops[e]=A,i?t.right_associative.add(e):t.right_associative.delete(e),t}static addIdentifierChar(e){return t.additional_identifier_chars.add(e),t}static addLiteral(e,A){return t.literals[e]=A,t}static removeUnaryOp(e){return delete t.unary_ops[e],e.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(e){return t.additional_identifier_chars.delete(e),t}static removeBinaryOp(e){return delete t.binary_ops[e],e.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(e),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(e){return delete t.literals[e],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new t(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map(A=>A.length))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return t.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!t.binary_ops[String.fromCharCode(e)]||t.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return t.isIdentifierStart(e)||t.isDecimalDigit(e)}throwError(e){let A=new Error(e+" at character "+this.index);throw A.index=this.index,A.description=e,A}runHook(e,A){if(t.hooks[e]){let i={context:this,node:A};return t.hooks.run(e,i),i.node}return A}searchHook(e){if(t.hooks[e]){let A={context:this};return t.hooks[e].find(function(i){return i.call(A.context,A),A.node}),A.node}}gobbleSpaces(){let e=this.code;for(;e===t.SPACE_CODE||e===t.TAB_CODE||e===t.LF_CODE||e===t.CR_CODE;)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let e=this.gobbleExpressions(),A=e.length===1?e[0]:{type:t.COMPOUND,body:e};return this.runHook("after-all",A)}gobbleExpressions(e){let A=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.lengtho.right_a&&I.right_a?i>I.prec:i<=I.prec;for(;n.length>2&&l(n[n.length-2]);)s=n.pop(),A=n.pop().value,r=n.pop(),e={type:t.BINARY_EXP,operator:A,left:r,right:s},n.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+c),n.push(o,e)}for(a=n.length-1,e=n[a];a>1;)e={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:e},a-=2;return e}gobbleToken(){let e,A,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(e=this.code,t.isDecimalDigit(e)||e===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===t.SQUOTE_CODE||e===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(e===t.OBRACK_CODE)n=this.gobbleArray();else{for(A=this.expr.substr(this.index,t.max_unop_len),i=A.length;i>0;){if(t.unary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.length=A.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==A.length){if(e===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===t.CBRACK_CODE)for(let r=A.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});pa.max_unop_len=pa.getMaxKeyLen(pa.unary_ops);pa.max_binop_len=pa.getMaxKeyLen(pa.binary_ops);var _0=t=>new pa(t).parse(),wSA=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(pa).filter(t=>!wSA.includes(t)&&_0[t]===void 0).forEach(t=>{_0[t]=pa[t]});_0.Jsep=pa;var DSA="ConditionalExpression",ySA={name:"ternary",init(t){t.hooks.add("after-expression",function(A){if(A.node&&this.code===t.QUMARK_CODE){this.index++;let i=A.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),A.node={type:DSA,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;A.node.test=r.right,r.right=A.node,A.node=i}}else this.throwError("Expected :")}})}};_0.plugins.register(ySA);var wAA=47,vSA=92,bSA={name:"regex",init(t){t.hooks.add("gobble-token",function(A){if(this.code===wAA){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return A.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},A.node=this.gobbleTokenProperty(A.node),A.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===vSA?2:1}this.throwError("Unclosed Regex")}})}},wL=43,MSA=45,cE={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[wL,MSA],assignmentPrecedence:.9,init(t){let e=[t.IDENTIFIER,t.MEMBER_EXP];cE.assignmentOperators.forEach(i=>t.addBinaryOp(i,cE.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;cE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===wL?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!e.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;cE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(e.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===wL?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&A(n.node)});function A(i){cE.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",A(i.left),A(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&A(n)})}}};_0.plugins.register(bSA,cE);_0.addUnaryOp("typeof");_0.addLiteral("null",null);_0.addLiteral("undefined",void 0);var kSA=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),qn={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return qn.evalBinaryExpression(t,e);case"Compound":return qn.evalCompound(t,e);case"ConditionalExpression":return qn.evalConditionalExpression(t,e);case"Identifier":return qn.evalIdentifier(t,e);case"Literal":return qn.evalLiteral(t,e);case"MemberExpression":return qn.evalMemberExpression(t,e);case"UnaryExpression":return qn.evalUnaryExpression(t,e);case"ArrayExpression":return qn.evalArrayExpression(t,e);case"CallExpression":return qn.evalCallExpression(t,e);case"AssignmentExpression":return qn.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,e){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](qn.evalAst(t.left,e),()=>qn.evalAst(t.right,e))},evalCompound(t,e){let A;for(let i=0;i-qn.evalAst(i,e),"!":i=>!qn.evalAst(i,e),"~":i=>~qn.evalAst(i,e),"+":i=>+qn.evalAst(i,e),typeof:i=>typeof qn.evalAst(i,e)}[t.operator](t.argument)},evalArrayExpression(t,e){return t.elements.map(A=>qn.evalAst(A,e))},evalCallExpression(t,e){let A=t.arguments.map(n=>qn.evalAst(n,e));return qn.evalAst(t.callee,e)(...A)},evalAssignmentExpression(t,e){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let A=t.left.name,i=qn.evalAst(t.right,e);return e[A]=i,e[A]}},vL=class{constructor(e){this.code=e,this.ast=_0(this.code)}runInNewContext(e){let A=Object.assign(Object.create(null),e);return qn.evalAst(this.ast,A)}};function d1(t,e){return t=t.slice(),t.push(e),t}function bL(t,e){return e=e.slice(),e.unshift(t),e}var ML=class extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}};function pn(t,e,A,i,n){if(!(this instanceof pn))try{return new pn(t,e,A,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=A,A=e,e=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||A,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=A;let s=this.evaluate(r);if(!s||typeof s!="object")throw new ML(s);return s}}pn.prototype.evaluate=function(t,e,A,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,A=A||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,A=Object.hasOwn(t,"callback")?t.callback:A,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=pn.toPathString(t)),!t&&t!==""||!e)return;let a=pn.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,e,["$"],n,o,A).filter(function(l){return l&&!l.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((l,I)=>{let C=this._getPreferredOutput(I);return r&&Array.isArray(C)?l=l.concat(C):l.push(C),l},[]):s?[]:void 0};pn.prototype._getPreferredOutput=function(t){let e=this.currResultType;switch(e){case"all":{let A=Array.isArray(t.path)?t.path:pn.toPathArray(t.path);return t.pointer=pn.toPointer(A),t.path=typeof t.path=="string"?t.path:pn.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return pn.toPathString(t[e]);case"pointer":return pn.toPointer(t.path);default:throw new TypeError("Unknown result type")}};pn.prototype._handleCallback=function(t,e,A){if(e){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:pn.toPathString(t.path),e(i,A,t)}};pn.prototype._trace=function(t,e,A,i,n,o,r,s){let a;if(!t.length)return a={path:A,value:e,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],l=t.slice(1),I=[];function C(d){Array.isArray(d)?d.forEach(B=>{I.push(B)}):I.push(d)}if((typeof c!="string"||s)&&e&&Object.hasOwn(e,c))C(this._trace(l,e[c],d1(A,c),e,c,o,r));else if(c==="*")this._walk(e,d=>{C(this._trace(l,e[d],d1(A,d),e,d,o,!0,!0))});else if(c==="..")C(this._trace(l,e,A,i,n,o,r)),this._walk(e,d=>{typeof e[d]=="object"&&C(this._trace(t.slice(),e[d],d1(A,d),e,d,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:A.slice(0,-1),expr:l,isParentSelector:!0};if(c==="~")return a={path:d1(A,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(l,e,A,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,l,e,A,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let d=c.replace(/^\?\((.*?)\)$/u,"$1"),B=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(d);B?this._walk(e,E=>{let Q=[B[2]],u=B[1]?e[E][B[1]]:e[E];this._trace(Q,u,A,i,n,o,!0).length>0&&C(this._trace(l,e[E],d1(A,E),e,E,o,!0))}):this._walk(e,E=>{this._eval(d,e[E],E,A,i,n)&&C(this._trace(l,e[E],d1(A,E),e,E,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace(bL(this._eval(c,e,A.at(-1),A.slice(0,-1),i,n),l),e,A,i,n,o,r))}else if(c[0]==="@"){let d=!1,B=c.slice(1,-2);switch(B){case"scalar":(!e||!["object","function"].includes(typeof e))&&(d=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===B&&(d=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(d=!0);break;case"number":Number.isFinite(e)&&(d=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(d=!0);break;case"object":e&&typeof e===B&&(d=!0);break;case"array":Array.isArray(e)&&(d=!0);break;case"other":d=this.currOtherTypeCallback(e,A,i,n);break;case"null":e===null&&(d=!0);break;default:throw new TypeError("Unknown value type "+B)}if(d)return a={path:A,value:e,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&e&&Object.hasOwn(e,c.slice(1))){let d=c.slice(1);C(this._trace(l,e[d],d1(A,d),e,d,o,r,!0))}else if(c.includes(",")){let d=c.split(",");for(let B of d)C(this._trace(bL(B,l),e,A,i,n,o,!0))}else!s&&e&&Object.hasOwn(e,c)&&C(this._trace(l,e[c],d1(A,c),e,c,o,r,!0))}if(this._hasParentSelector)for(let d=0;d{e(A)})};pn.prototype._slice=function(t,e,A,i,n,o,r){if(!Array.isArray(A))return;let s=A.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,l=a[0]&&Number.parseInt(a[0])||0,I=a[1]&&Number.parseInt(a[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),I=I<0?Math.max(0,I+s):Math.min(s,I);let C=[];for(let d=l;d{C.push(E)});return C};pn.prototype._eval=function(t,e,A,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=A,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;let r=t.includes("@path");r&&(this.currSandbox._$_path=pn.toPathString(i.concat([A])));let s=this.currEval+"Script:"+t;if(!pn.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)pn.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")pn.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;pn.cache[s]=new c(a)}else if(typeof this.currEval=="function")pn.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return pn.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};pn.cache={};pn.toPathString=function(t){let e=t,A=e.length,i="$";for(let n=1;ntypeof e[c]=="function");let o=i.map(c=>e[c]);A=n.reduce((c,l)=>{let I=e[l].toString();return/function/u.test(I)||(I="function "+I),"var "+l+"="+I+";"+c},"")+A,!/(['"])use strict\1/u.test(A)&&!i.includes("arguments")&&(A="var arguments = undefined;"+A),A=A.replace(/;\s*$/u,"");let s=A.lastIndexOf(";"),a=s!==-1?A.slice(0,s+1)+" return "+A.slice(s+1):" return "+A;return new Function(...i,a)(...o)}};pn.prototype.vm={Script:kL};var RL=[],bAA=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,A=0;e>1;if(t=bAA[i])e=i+1;else return!0;if(e==A)return!1}}function DAA(t){return t>=127462&&t<=127487}var yAA=8205;function MAA(t,e,A=!0,i=!0){return(A?kAA:LSA)(t,e,i)}function kAA(t,e,A){if(e==t.length)return e;e&&SAA(t.charCodeAt(e))&&RAA(t.charCodeAt(e-1))&&e--;let i=SL(t,e);for(e+=vAA(i);e=0&&DAA(SL(t,r));)o++,r-=2;if(o%2==0)break;e+=2}else break}return e}function LSA(t,e,A){for(;e>0;){let i=kAA(t,e-2,A);if(i=56320&&t<57344}function RAA(t){return t>=55296&&t<56320}function vAA(t){return t<65536?1:2}var qi=class t{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,i){[e,A]=dE(this,e,A);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(A,this.length,n,1),gE.from(n,this.length-(A-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){[e,A]=dE(this,e,A);let i=[];return this.decompose(e,A,i,0),gE.from(i,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new aC(this),o=new aC(e);for(let r=A,s=A;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(e=1){return new aC(this,e)}iterRange(e,A=this.length){return new Z5(this,e,A)}iterLines(e,A){let i;if(e==null)i=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new W5(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?t.empty:e.length<=32?new ec(e):gE.from(ec.split(e,[]))}},ec=class t extends qi{constructor(e,A=xSA(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((A?i:s)>=e)return new FL(n,s,i,r);n=s+1,i++}}decompose(e,A,i,n){let o=e<=0&&A>=this.length?this:new t(LAA(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let r=i.pop(),s=V5(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(e,A,i){if(!(i instanceof t))return super.replace(e,A,i);[e,A]=dE(this,e,A);let n=V5(this.text,V5(i.text,LAA(this.text,0,e)),A),o=this.length+i.length-(A-e);return n.length<=32?new t(n,o):gE.from(t.split(n,[]),o)}sliceString(e,A=this.length,i=` +`){[e,A]=dE(this,e,A);let n="";for(let o=0,r=0;o<=A&&re&&r&&(n+=i),eo&&(n+=s.slice(Math.max(0,e-o),A-o)),o=a+1}return n}flatten(e){for(let A of this.text)e.push(A)}scanIdentical(){return 0}static split(e,A){let i=[],n=-1;for(let o of e)i.push(o),n+=o.length+1,i.length==32&&(A.push(new t(i,n)),i=[],n=-1);return n>-1&&A.push(new t(i,n)),A}},gE=class t extends qi{constructor(e,A){super(),this.children=e,this.length=A,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.children[o],s=n+r.length,a=i+r.lines-1;if((A?a:s)>=e)return r.lineInner(e,A,i,n);n=s+1,i=a+1}}decompose(e,A,i,n){for(let o=0,r=0;r<=A&&o=r){let c=n&((r<=e?1:0)|(a>=A?2:0));r>=e&&a<=A&&!c?i.push(s):s.decompose(e-r,A-r,i,c)}r=a+1}}replace(e,A,i){if([e,A]=dE(this,e,A),i.lines=o&&A<=s){let a=r.replace(e-o,A-o,i),c=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let l=this.children.slice();return l[n]=a,new t(l,this.length-(A-e)+i.length)}return super.replace(o,s,a)}o=s+1}return super.replace(e,A,i)}sliceString(e,A=this.length,i=` +`){[e,A]=dE(this,e,A);let n="";for(let o=0,r=0;oe&&o&&(n+=i),er&&(n+=s.sliceString(e-r,A-r,i)),r=a+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof t))return 0;let i=0,[n,o,r,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,o+=A){if(n==r||o==s)return i;let a=this.children[n],c=e.children[o];if(a!=c)return i+a.scanIdentical(c,A);i+=a.length+1}}static from(e,A=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let B of e)B.flatten(d);return new ec(d,A)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,l=[];function I(d){let B;if(d.lines>o&&d instanceof t)for(let E of d.children)I(E);else d.lines>r&&(a>r||!a)?(C(),s.push(d)):d instanceof ec&&a&&(B=l[l.length-1])instanceof ec&&d.lines+B.lines<=32?(a+=d.lines,c+=d.length+1,l[l.length-1]=new ec(B.text.concat(d.text),B.length+1+d.length)):(a+d.lines>n&&C(),a+=d.lines,c+=d.length+1,l.push(d))}function C(){a!=0&&(s.push(l.length==1?l[0]:t.from(l,c)),c=-1,a=l.length=0)}for(let d of e)I(d);return C(),s.length==1?s[0]:new t(s,A)}};qi.empty=new ec([""],0);function xSA(t){let e=-1;for(let A of t)e+=A.length+1;return e}function V5(t,e,A=0,i=1e9){for(let n=0,o=0,r=!0;o=A&&(a>i&&(s=s.slice(0,i-n)),n0?1:(e instanceof ec?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof ec?n.text.length:n.children.length;if(r==(A>0?s:0)){if(i==0)return this.done=!0,this.value="",this;A>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(A>0?0:1)){if(this.offsets[i]+=A,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(n instanceof ec){let a=n.text[r+(A<0?-1:0)];if(this.offsets[i]+=A,a.length>Math.max(0,e))return this.value=e==0?a:A>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[r+(A<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=A):(A<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(A>0?1:(a instanceof ec?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Z5=class{constructor(e,A,i){this.value="",this.done=!1,this.cursor=new aC(e,A>i?-1:1),this.pos=A>i?e.length:0,this.from=Math.min(A,i),this.to=Math.max(A,i)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let i=A<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=i?n:A<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},W5=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:i,value:n}=this.inner.next(e);return A&&this.afterBreak?(this.value="",this.afterBreak=!1):A?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(qi.prototype[Symbol.iterator]=function(){return this.iter()},aC.prototype[Symbol.iterator]=Z5.prototype[Symbol.iterator]=W5.prototype[Symbol.iterator]=function(){return this});var FL=class{constructor(e,A,i,n){this.from=e,this.to=A,this.number=i,this.text=n}get length(){return this.to-this.from}};function dE(t,e,A){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,A))]}function fr(t,e,A=!0,i=!0){return MAA(t,e,A,i)}function FSA(t){return t>=56320&&t<57344}function NSA(t){return t>=55296&&t<56320}function rs(t,e){let A=t.charCodeAt(e);if(!NSA(A)||e+1==t.length)return A;let i=t.charCodeAt(e+1);return FSA(i)?(A-55296<<10)+(i-56320)+65536:A}function b4(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function tc(t){return t<65536?1:2}var NL=/\r\n?|\n/,is=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(is||(is={})),E1=class t{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return o+(e-n);o+=s}else{if(i!=is.Simple&&c>=e&&(i==is.TrackDel&&ne||i==is.TrackBefore&&ne))return null;if(c>e||c==e&&A<0&&!s)return e==n||A<0?o:o+a;o+=a}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return o}touchesRange(e,A=e){for(let i=0,n=0;i=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(e)}static create(e){return new t(e)}},ns=class t extends E1{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return _L(this,(A,i,n,o,r)=>e=e.replace(n,n+(i-A),r),!1),e}mapDesc(e,A=!1){return GL(this,e,A,!0)}invert(e){let A=this.sections.slice(),i=[];for(let n=0,o=0;n=0){A[n]=s,A[n+1]=r;let a=n>>1;for(;i.length0&&B1(i,A,o.text),o.forward(l),s+=l}let c=e[r++];for(;s>1].toJSON()))}return e}static of(e,A,i){let n=[],o=[],r=0,s=null;function a(l=!1){if(!l&&!n.length)return;rC||I<0||C>A)throw new RangeError(`Invalid change range ${I} to ${C} (in doc of length ${A})`);let B=d?typeof d=="string"?qi.of(d.split(i||NL)):d:qi.empty,E=B.length;if(I==C&&E==0)return;Ir&&ps(n,I-r,-1),ps(n,C-I,E),B1(o,n,B),r=C}}return c(e),a(!s),s}static empty(e){return new t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)A.push(o[0],0);else{for(;i.length=0&&A<=0&&A==t[n+1]?t[n]+=e:n>=0&&e==0&&t[n]==0?t[n+1]+=A:i?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function B1(t,e,A){if(A.length==0)return;let i=e.length-2>>1;if(i>1])),!(A||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];e(n,c,o,l,I),n=c,o=l}}}function GL(t,e,A,i=!1){let n=[],o=i?[]:null,r=new cC(t),s=new cC(e);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);ps(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,l=r.len;for(;l;)if(s.ins==-1){let I=Math.min(l,s.len);c+=I,l-=I,s.forward(I)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var cC=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?qi.empty:e[A]}textBit(e){let{inserted:A}=this.set,i=this.i-2>>1;return i>=A.length&&!e?qi.empty:A[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},lE=class t{constructor(e,A,i){this.from=e,this.to=A,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,A):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return ie.range(e,A);let i=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return ie.range(this.anchor,i)}eq(e,A=!1){return this.anchor==e.anchor&&this.head==e.head&&(!A||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ie.range(e.anchor,e.head)}static create(e,A,i){return new t(e,A,i)}},ie=class t{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:t.create(this.ranges.map(i=>i.map(e,A)),this.mainIndex)}eq(e,A=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map(A=>lE.fromJSON(A)),e.main)}static single(e,A=e){return new t([t.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|o)}static normalized(e,A=0){let i=e[A];e.sort((n,o)=>n.from-o.from),A=e.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(e,A)}};function YAA(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}var PL=0,Te=class t{constructor(e,A,i,n,o){this.combine=e,this.compareInput=A,this.compare=i,this.isStatic=n,this.id=PL++,this.default=e([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(e={}){return new t(e.combine||(A=>A),e.compareInput||((A,i)=>A===i),e.compare||(e.combine?(A,i)=>A===i:jL),!!e.static,e.enables)}of(e){return new IE([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new IE(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new IE(e,this,2,A)}from(e,A){return A||(A=i=>i),this.compute([e],i=>A(i.field(e)))}};function jL(t,e){return t==e||t.length==e.length&&t.every((A,i)=>A===e[i])}var IE=class{constructor(e,A,i,n){this.dependencies=e,this.facet=A,this.type=i,this.value=n,this.id=PL++}dynamicSlot(e){var A;let i=this.value,n=this.facet.compareInput,o=this.id,r=e[o]>>1,s=this.type==2,a=!1,c=!1,l=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?c=!0:(((A=e[I.id])!==null&&A!==void 0?A:1)&1)==0&&l.push(e[I.id]);return{create(I){return I.values[r]=i(I),1},update(I,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||UL(I,l)){let d=i(I);if(s?!xAA(d,I.values[r],n):!n(d,I.values[r]))return I.values[r]=d,1}return 0},reconfigure:(I,C)=>{let d,B=C.config.address[o];if(B!=null){let E=Aw(C,B);if(this.dependencies.every(Q=>Q instanceof Te?C.facet(Q)===I.facet(Q):Q instanceof To?C.field(Q,!1)==I.field(Q,!1):!0)||(s?xAA(d=i(I),E,n):n(d=i(I),E)))return I.values[r]=E,0}else d=i(I);return I.values[r]=d,1}}}};function xAA(t,e,A){if(t.length!=e.length)return!1;for(let i=0;it[a.id]),n=A.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[e.id]>>1;function s(a){let c=[];for(let l=0;li===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(P5).find(i=>i.field==this);return(A?.create||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:i=>(i.values[A]=this.create(i),1),update:(i,n)=>{let o=i.values[A],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[A]=r,1)},reconfigure:(i,n)=>{let o=i.facet(P5),r=n.facet(P5),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[A]=s.create(i),1):n.config.address[this.id]!=null?(i.values[A]=n.field(this),0):(i.values[A]=this.create(i),1)}}}init(e){return[this,P5.of({field:this,create:e})]}get extension(){return this}},rC={lowest:4,low:3,default:2,high:1,highest:0};function p4(t){return e=>new X5(e,t)}var Bl={highest:p4(rC.highest),high:p4(rC.high),default:p4(rC.default),low:p4(rC.low),lowest:p4(rC.lowest)},X5=class{constructor(e,A){this.inner=e,this.prec=A}},ug=class t{of(e){return new D4(this,e)}reconfigure(e){return t.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},D4=class{constructor(e,A){this.compartment=e,this.inner=A}},$5=class t{constructor(e,A,i,n,o,r){for(this.base=e,this.compartments=A,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,i){let n=[],o=Object.create(null),r=new Map;for(let C of GSA(e,A,r))C instanceof To?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(d=>C.slot(d));let l=i?.config.facets;for(let C in o){let d=o[C],B=d[0].facet,E=l&&l[C]||[];if(d.every(Q=>Q.type==0))if(s[B.id]=a.length<<1|1,jL(E,d))a.push(i.facet(B));else{let Q=B.combine(d.map(u=>u.value));a.push(i&&B.compare(Q,i.facet(B))?i.facet(B):Q)}else{for(let Q of d)Q.type==0?(s[Q.id]=a.length<<1|1,a.push(Q.value)):(s[Q.id]=c.length<<1,c.push(u=>Q.dynamicSlot(u)));s[B.id]=c.length<<1,c.push(Q=>_SA(Q,B,d))}}let I=c.map(C=>C(s));return new t(e,r,I,s,a,o)}};function GSA(t,e,A){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof D4&&A.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof D4){if(A.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(r.compartment)||r.inner;A.set(r.compartment,c),o(c,s)}else if(r instanceof X5)o(r.inner,r.prec);else if(r instanceof To)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof IE)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,rC.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,rC.default),i.reduce((r,s)=>r.concat(s))}function w4(t,e){if(e&1)return 2;let A=e>>1,i=t.status[A];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function Aw(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}var FAA=Te.define(),LL=Te.define({combine:t=>t.some(e=>e),static:!0}),JAA=Te.define({combine:t=>t.length?t[0]:void 0,static:!0}),TAA=Te.define(),zAA=Te.define(),HAA=Te.define(),NAA=Te.define({combine:t=>t.length?t[0]:!1}),wa=class{constructor(e,A){this.type=e,this.value=A}static define(){return new KL}},KL=class{of(e){return new wa(this,e)}},YL=class{constructor(e){this.map=e}of(e){return new ki(this,e)}},ki=(()=>{class t{constructor(A,i){this.type=A,this.value=i}map(A){let i=this.type.map(this.value,A);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(A){return this.type==A}static define(A={}){return new YL(A.map||(i=>i))}static mapEffects(A,i){if(!A.length)return A;let n=[];for(let o of A){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),Qg=(()=>{class t{constructor(A,i,n,o,r,s){this.startState=A,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&YAA(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(A,i,n,o,r,s){return new t(A,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(A){for(let i of this.annotations)if(i.type==A)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(A){let i=this.annotation(t.userEvent);return!!(i&&(i==A||i.length>A.length&&i.slice(0,A.length)==A&&i[A.length]=="."))}}return t.time=wa.define(),t.userEvent=wa.define(),t.addToHistory=wa.define(),t.remote=wa.define(),t})();function USA(t,e){let A=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof Qg?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof Qg?t=o[0]:t=PAA(e,CE(o),!1)}return t}function YSA(t){let e=t.startState,A=e.facet(HAA),i=t;for(let n=A.length-1;n>=0;n--){let o=A[n](t);o&&Object.keys(o).length&&(i=OAA(i,JL(e,o,t.changes.newLength),!0))}return i==t?t:Qg.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var JSA=[];function CE(t){return t==null?JSA:Array.isArray(t)?t:[t]}var Vn=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(Vn||(Vn={})),TSA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,TL;try{TL=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function zSA(t){if(TL)return TL.test(t);for(let e=0;e"\x80"&&(A.toUpperCase()!=A.toLowerCase()||TSA.test(A)))return!0}return!1}function HSA(t){return e=>{if(!/\S/.test(e))return Vn.Space;if(zSA(e))return Vn.Word;for(let A=0;A-1)return Vn.Word;return Vn.Other}}var Ir=(()=>{class t{constructor(A,i,n,o,r,s){this.config=A,this.doc=i,this.selection=n,this.values=o,this.status=A.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(l,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(ki.reconfigure)?(i=null,n=a.value):a.is(ki.appendConfig)&&(i=null,n=CE(n).concat(a.value));let r;i?r=A.startState.values.slice():(i=$5.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,l)=>l.reconfigure(c,this),null).values);let s=A.startState.facet(LL)?A.newSelection:A.newSelection.asSingle();new t(i,A.newDoc,s,r,(a,c)=>c.update(a,A),A)}replaceSelection(A){return typeof A=="string"&&(A=this.toText(A)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:A},range:ie.cursor(i.from+A.length)}))}changeByRange(A){let i=this.selection,n=A(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=CE(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:A.doc,selection:ie.fromJSON(A.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(A={}){let i=$5.resolve(A.extensions||[],new Map),n=A.doc instanceof qi?A.doc:qi.of((A.doc||"").split(i.staticFacet(t.lineSeparator)||NL)),o=A.selection?A.selection instanceof ie?A.selection:ie.single(A.selection.anchor,A.selection.head):ie.single(0);return YAA(o,n.length),i.staticFacet(LL)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` +`}get readOnly(){return this.facet(NAA)}phrase(A,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return i.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),A}languageDataAt(A,i,n=-1){let o=[];for(let r of this.facet(FAA))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,A)&&o.push(s[A]);return o}charCategorizer(A){return HSA(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:i,from:n,length:o}=this.doc.lineAt(A),r=this.charCategorizer(A),s=A-n,a=A-n;for(;s>0;){let c=fr(i,s,!1);if(r(i.slice(c,s))!=Vn.Word)break;s=c}for(;ae.length?e[0]:4}),t.lineSeparator=JAA,t.readOnly=NAA,t.phrases=Te.define({compare(e,A){let i=Object.keys(e),n=Object.keys(A);return i.length==n.length&&i.every(o=>e[o]==A[o])}}),t.languageData=FAA,t.changeFilter=TAA,t.transactionFilter=zAA,t.transactionExtender=HAA,t})();ug.reconfigure=ki.define();function zr(t,e,A={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(A,o))i[o]=A[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var dl=class{eq(e){return this==e}range(e,A=e){return y4.create(e,A,this)}};dl.prototype.startSide=dl.prototype.endSide=0;dl.prototype.point=!1;dl.prototype.mapMode=is.TrackDel;var y4=class t{constructor(e,A,i){this.from=e,this.to=A,this.value=i}static create(e,A,i){return new t(e,A,i)}};function zL(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var HL=class t{constructor(e,A,i,n){this.from=e,this.to=A,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-A;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(e,A,i,n){for(let o=this.findIndex(A,-1e9,!0),r=this.findIndex(i,1e9,!1,o);od||C==d&&c.startSide>0&&c.endSide<=0)continue;(d-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,d-C)),i.push(c),n.push(C-r),o.push(d-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},Zn=(()=>{class t{constructor(A,i,n,o){this.chunkPos=A,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(A,i,n,o){return new t(A,i,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let i of this.chunk)A+=i.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=A,s=A.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(zL)),this.isEmpty)return i.length?t.of(i):this;let a=new ew(this,null,-1).goto(0),c=0,l=[],I=new os;for(;a.value||c=0){let C=i[c++];I.addInner(C.from,C.to,C.value)||l.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&A<=r+s.length&&s.between(r,A-r,i-r,n)===!1)return}this.nextLayer.between(A,i,n)}}iter(A=0){return v4.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,i=0){return v4.from(A).goto(i)}static compare(A,i,n,o,r=-1){let s=A.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=_AA(s,a,n),l=new sC(s,c,r),I=new sC(a,c,r);n.iterGaps((C,d,B)=>GAA(l,C,I,d,B,o)),n.empty&&n.length==0&&GAA(l,0,I,0,0,o)}static eq(A,i,n=0,o){o==null&&(o=999999999);let r=A.filter(I=>!I.isEmpty&&i.indexOf(I)<0),s=i.filter(I=>!I.isEmpty&&A.indexOf(I)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=_AA(r,s),c=new sC(r,a,0).goto(n),l=new sC(s,a,0).goto(n);for(;;){if(c.to!=l.to||!OL(c.active,l.active)||c.point&&(!l.point||!c.point.eq(l.point)))return!1;if(c.to>o)return!0;c.next(),l.next()}}static spans(A,i,n,o,r=-1){let s=new sC(A,null,r).goto(i),a=i,c=s.openStart;for(;;){let l=Math.min(s.to,n);if(s.point){let I=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,l,s.active,c),c=s.openEnd(l));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(A,i=!1){let n=new os;for(let o of A instanceof y4?[A]:i?OSA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return t.empty;let i=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function OSA(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(zL);e=i}return t}Zn.empty.nextLayer=Zn.empty;var os=class t{finishChunk(e){this.chunks.push(new HL(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,i){this.addInner(e,A,i)||(this.nextLayer||(this.nextLayer=new t)).add(e,A,i)}addInner(e,A,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=A,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let i=A.value.length-1;return this.last=A.value[i],this.lastFrom=A.from[i]+e,this.lastTo=A.to[i]+e,!0}finish(){return this.finishInner(Zn.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=Zn.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function _AA(t,e,A){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new ew(r,A,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let i of this.heap)i.goto(e,A);for(let i=this.heap.length>>1;i>=0;i--)xL(this.heap,i);return this.next(),this}forward(e,A){for(let i of this.heap)i.forward(e,A);for(let i=this.heap.length>>1;i>=0;i--)xL(this.heap,i);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),xL(this.heap,0)}}};function xL(t,e){for(let A=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),A.compare(n)<0)break;t[i]=A,t[e]=n,e=i}}var sC=class{constructor(e,A,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=v4.from(e,A,i)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){j5(this.active,e),j5(this.activeTo,e),j5(this.activeRank,e),this.minActive=UAA(this.active,this.activeTo)}addActive(e){let A=0,{value:i,to:n,rank:o}=this.cursor;for(;A0;)A++;q5(this.active,A,i),q5(this.activeTo,A,n),q5(this.activeRank,A,o),e&&q5(e,A,this.cursor.from),this.minActive=UAA(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&j5(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&A.push(this.active[i]);return A.reverse()}openEnd(e){let A=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)A++;return A}};function GAA(t,e,A,i,n,o){t.goto(e),A.goto(i);let r=i+n,s=i,a=i-e;for(;;){let c=t.to+a-A.to,l=c||t.endSide-A.endSide,I=l<0?t.to+a:A.to,C=Math.min(I,r);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&OL(t.activeForPoint(t.to),A.activeForPoint(A.to))||o.comparePoint(s,C,t.point,A.point):C>s&&!OL(t.active,A.active)&&o.compareRange(s,C,t.active,A.active),I>r)break;(c||t.openEnd!=A.openEnd)&&o.boundChange&&o.boundChange(I),s=I,l<=0&&t.next(),l>=0&&A.next()}}function OL(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;i--)t[i+1]=t[i];t[e]=A}function UAA(t,e){let A=-1,i=1e9;for(let n=0;n=e)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?A-o%A:1,n=fr(t,n)}return i===!0?-1:t.length}var qL="\u037C",jAA=typeof Symbol>"u"?"__"+qL:Symbol.for(qL),VL=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),qAA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},xc=class{constructor(e,A){this.rules=[];let{finish:i}=A||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let l=[],I=/^@(\w+)\b/.exec(r[0]),C=I&&I[1]=="keyframes";if(I&&s==null)return a.push(r[0]+";");for(let d in s){let B=s[d];if(/&/.test(d))o(d.split(/,\s*/).map(E=>r.map(Q=>E.replace(/&/,Q))).reduce((E,Q)=>E.concat(Q)),B,a);else if(B&&typeof B=="object"){if(!I)throw new RangeError("The value of a property ("+d+") should be a primitive value.");o(n(d),B,l,C)}else B!=null&&l.push(d.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+B+";")}(l.length||C)&&a.push((i&&!I&&!c?r.map(i):r).join(", ")+" {"+l.join(" ")+"}")}for(let r in e)o(n(r),e[r],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=qAA[jAA]||1;return qAA[jAA]=e+1,qL+e.toString(36)}static mount(e,A,i){let n=e[VL],o=i&&i.nonce;n?o&&n.setNonce(o):n=new ZL(e,o),n.mount(Array.isArray(A)?A:[A],e)}},VAA=new Map,ZL=class{constructor(e,A){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=VAA.get(i);if(o)return e[VL]=o;this.sheet=new n.CSSStyleSheet,VAA.set(i,this)}else this.styleTag=i.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);this.modules=[],e[VL]=this}mount(e,A){let i=this.sheet,n=0,o=0;for(let r=0;r-1&&(this.modules.splice(a,1),o--,a=-1),a==-1){if(this.modules.splice(o++,0,s),i)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},PSA=typeof navigator<"u"&&/Mac/.test(navigator.platform),jSA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(mr=0;mr<10;mr++)U0[48+mr]=U0[96+mr]=String(mr);var mr;for(mr=1;mr<=24;mr++)U0[mr+111]="F"+mr;var mr;for(mr=65;mr<=90;mr++)U0[mr]=String.fromCharCode(mr+32),BE[mr]=String.fromCharCode(mr);var mr;for(iw in U0)BE.hasOwnProperty(iw)||(BE[iw]=U0[iw]);var iw;function ZAA(t){var e=PSA&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||jSA&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?BE:U0)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function kn(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var i in A)if(Object.prototype.hasOwnProperty.call(A,i)){var n=A[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}e++}for(;e.995&&A<1.005||!isFinite(A)||Math.abs(e.width-t.offsetWidth)<1)&&(A=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:A,scaleY:i}}function VSA(t,e,A,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let l=t,I=!1;l&&!I;)if(l.nodeType==1){let C,d=l==a.body,B=1,E=1;if(d)C=qSA(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(l).position)&&(I=!0),l.scrollHeight<=l.clientHeight&&l.scrollWidth<=l.clientWidth){l=l.assignedSlot||l.parentNode;continue}let v=l.getBoundingClientRect();({scaleX:B,scaleY:E}=zeA(l,v)),C={left:v.left,right:v.left+l.clientWidth*B,top:v.top,bottom:v.top+l.clientHeight*E}}let Q=0,u=0;if(n=="nearest")e.top0&&e.bottom>C.bottom+u&&(u=e.bottom-C.bottom+r)):e.bottom>C.bottom&&(u=e.bottom-C.bottom+r,A<0&&e.top-u0&&e.right>C.right+Q&&(Q=e.right-C.right+o)):e.right>C.right&&(Q=e.right-C.right+o,A<0&&e.leftC.bottom||e.leftC.right)&&(e={left:Math.max(e.left,C.left),right:Math.min(e.right,C.right),top:Math.max(e.top,C.top),bottom:Math.min(e.bottom,C.bottom)}),l=l.assignedSlot||l.parentNode}else if(l.nodeType==11)l=l.host;else break}function ZSA(t){let e=t.ownerDocument,A,i;for(let n=t.parentNode;n&&!(n==e.body||A&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!A&&n.scrollWidth>n.clientWidth&&(A=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:A,y:i}}var sx=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:i}=e;this.set(A,Math.min(e.anchorOffset,A?Dg(A):0),i,Math.min(e.focusOffset,i?Dg(i):0))}set(e,A,i,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=i,this.focusOffset=n}},EE=null;function HeA(t){if(t.setActive)return t.setActive();if(EE)return t.focus(EE);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(EE==null?{get preventScroll(){return EE={preventScroll:!0},!0}}:void 0),!EE){EE=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}function jeA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&i>0)return{node:A,offset:i};if(A.nodeType==1&&i>0){if(A.contentEditable=="false")return null;A=A.childNodes[i-1],i=Dg(A)}else if(A.parentNode&&!fw(A))i=gC(A),A=A.parentNode;else return null}}function qeA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&iA)return I.domBoundsAround(e,A,c);if(C>=e&&n==-1&&(n=a,o=c),c>A&&I.dom.parentNode==this.dom){r=a,s=l;break}l=C,c=C+I.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,i=Px){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function VeA(t,e,A,i,n,o,r,s,a){let{children:c}=t,l=c.length?c[e]:null,I=o.length?o[o.length-1]:null,C=I?I.breakAfter:r;if(!(e==i&&l&&!r&&!C&&o.length<2&&l.merge(A,n,o.length?I:null,A==0,s,a))){if(i0&&(!r&&o.length&&l.merge(A,l.length,o[0],!1,s,0)?l.breakAfter=o.shift().breakAfter:(A2),He={mac:ieA||/Mac/.test(Da.platform),windows:/Win/.test(Da.platform),linux:/Linux|X11/.test(Da.platform),ie:_w,ie_version:WeA?ax.documentMode||6:lx?+lx[1]:cx?+cx[1]:0,gecko:eeA,gecko_version:eeA?+(/Firefox\/(\d+)/.exec(Da.userAgent)||[0,0])[1]:0,chrome:!!WL,chrome_version:WL?+WL[1]:0,ios:ieA,android:/Android\b/.test(Da.userAgent),webkit:teA,safari:XeA,webkit_version:teA?+(/\bAppleWebKit\/(\d+)/.exec(Da.userAgent)||[0,0])[1]:0,tabSize:ax.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},$SA=256,yg=class t extends mo{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(A-e)+i.length>$SA||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new t(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new Ts(this.dom,e)}domBoundsAround(e,A,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return ARA(this.dom,e,A)}},u1=class t extends mo{constructor(e,A=[],i=0){super(),this.mark=e,this.children=A,this.length=i;for(let n of A)n.setParent(this)}setAttrs(e){if(OeA(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||e&&o<=0||Ae&&A.push(i=e&&(n=o),i=a,o++}let r=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,A,r)}domAtPos(e){return $eA(this,e)}coordsAt(e,A){return etA(this,e,A)}};function ARA(t,e,A){let i=t.nodeValue.length;e>i&&(e=i);let n=e,o=e,r=0;e==0&&A<0||e==i&&A>=0?He.chrome||He.gecko||(e?(n--,r=1):o=0)?0:s.length-1];return He.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?Nw(a,r<0):a||null}var T4=class t extends mo{static create(e,A,i){return new t(e,A,i)}constructor(e,A,i){super(),this.widget=e,this.length=A,this.side=i,this.prevWidget=null}split(e){let A=t.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0)?Ts.before(this.dom):Ts.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let i=this.widget.coordsAt(this.dom,e,A);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:e>0;for(let s=r?n.length-1:0;o=n[s],!(e>0?s==0:s==n.length-1||o.top0?Ts.before(this.dom):Ts.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return qi.empty}get isHidden(){return!0}};yg.prototype.children=T4.prototype.children=z4.prototype.children=Px;function $eA(t,e){let A=t.dom,{children:i}=t,n=0;for(let o=0;no&&e0;o--){let r=i[o-1];if(r.dom.parentNode==A)return r.domAtPos(r.length)}for(let o=n;o0&&e instanceof u1&&n.length&&(i=n[n.length-1])instanceof u1&&i.mark.eq(e.mark)?AtA(i,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function etA(t,e,A){let i=null,n=-1,o=null,r=-1;function s(c,l){for(let I=0,C=0;I=l&&(d.children.length?s(d,l-C):(!o||o.isHidden&&(A>0||tRA(o,d)))&&(B>l||C==B&&d.getSide()>0)?(o=d,r=l-C):(C-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of i)if(o!=A&&(n.indexOf(o)==-1||t[o]!==e[o]))return!1;return!0}function Ix(t,e,A){let i=!1;if(e)for(let n in e)A&&n in A||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(i=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return i}function iRA(t){let e=Object.create(null);for(let A=0;A0?3e8:-4e8:A>0?1e8:-1e8,new f1(e,A,A,i,e.widget||null,!1)}static replace(e){let A=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=ttA(e,A);i=(o?A?-3e8:-1:5e8)-1,n=(r?A?2e8:1:-6e8)+1}return new f1(e,i,n,A,e.widget||null,!0)}static line(e){return new O4(e)}static set(e,A=!1){return Zn.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};rt.none=Zn.empty;var H4=class t extends rt{constructor(e){let{start:A,end:i}=ttA(e);super(A?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,i;return this==e||e instanceof t&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&pw(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};H4.prototype.point=!1;var O4=class t extends rt{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof t&&this.spec.class==e.spec.class&&pw(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};O4.prototype.mapMode=is.TrackBefore;O4.prototype.point=!0;var f1=class t extends rt{constructor(e,A,i,n,o,r){super(A,i,o,e),this.block=n,this.isReplace=r,this.mapMode=n?A<=0?is.TrackBefore:is.TrackAfter:is.TrackDel}get type(){return this.startSide!=this.endSide?zs.WidgetRange:this.startSide<=0?zs.WidgetBefore:zs.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof t&&nRA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};f1.prototype.point=!0;function ttA(t,e=!1){let{inclusiveStart:A,inclusiveEnd:i}=t;return A==null&&(A=t.inclusive),i==null&&(i=t.inclusive),{start:A??e,end:i??e}}function nRA(t,e){return t==e||!!(t&&e&&t.compare(e))}function dw(t,e,A,i=0){let n=A.length-1;n>=0&&A[n]+i>=t?A[n]=Math.max(A[n],e):A.push(t,e)}var ss=class t extends mo{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,A,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),ZeA(this,e,A,i?i.children.slice():[],o,r),!0}split(e){let A=new t;if(A.breakAfter=this.breakAfter,this.length==0)return A;let{i,off:n}=this.childPos(e);n&&(A.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){pw(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){AtA(this,e,A)}addLineDeco(e){let A=e.spec.attributes,i=e.spec.class;A&&(this.attrs=gx(A,this.attrs||{})),i&&(this.attrs=gx({class:i},this.attrs||{}))}domAtPos(e){return $eA(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var i;this.dom?this.flags&4&&(OeA(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Ix(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&mo.get(n)instanceof u1;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=mo.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!He.ios||!this.children.some(o=>o instanceof yg))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let i of this.children){if(!(i instanceof yg)||/[^ -~]/.test(i.text))return null;let n=J4(i.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let i=etA(this,e,A);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=A){if(o instanceof t)return o;if(r>A)break}n=r+o.breakAfter}return null}},lC=class t extends mo{constructor(e,A,i){super(),this.widget=e,this.length=A,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0}},P4=class extends nc{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},F4=class t{constructor(e,A,i,n){this.doc=e,this.pos=A,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof lC&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ss),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(nw(new z4(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof lC)&&this.getLine()}buildText(e,A,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-i)),this.getLine().append(nw(new yg(this.text.slice(this.textOff,this.textOff+n)),A),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,A,i,n){this.buildText(A-e,i,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof f1){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(i instanceof f1)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new lC(i.widget||oeA.block,s,i));else{let a=T4.create(i.widget||oeA.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(e0),l=!a.isEditable&&(en.length||i.startSide<=0),I=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(I.append(nw(new z4(1),n),o),o=n.length+Math.max(0,o-n.length)),I.append(nw(a,n),o),this.atCursorPos=l,this.pendingBuffer=l?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=o)}static build(e,A,i,n,o){let r=new t(e,A,i,o);return r.openEnd=Zn.spans(n,A,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function nw(t,e){for(let A of e)t=new u1(A,[t],t.length);return t}var oeA=(()=>{class t extends nc{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),Wn=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Wn||(Wn={})),CC=Wn.LTR,jx=Wn.RTL;function itA(t){let e=[];for(let A=0;A=A){if(s.level==i)return r;(o<0||(n!=0?n<0?s.fromA:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function otA(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;E-=3)if(fg[E+1]==-d){let Q=fg[E+2],u=Q&2?n:Q&4?Q&1?o:n:0;u&&(lo[I]=lo[fg[E]]=u),s=E;break}}else{if(fg.length==189)break;fg[s++]=I,fg[s++]=C,fg[s++]=a}else if((B=lo[I])==2||B==1){let E=B==n;a=E?0:1;for(let Q=s-3;Q>=0;Q-=3){let u=fg[Q+2];if(u&2)break;if(E)fg[Q+2]|=2;else{if(u&4)break;fg[Q+2]|=4}}}}}function lRA(t,e,A,i){for(let n=0,o=i;n<=A.length;n++){let r=n?A[n-1].to:t,s=na;)B==Q&&(B=A[--E].from,Q=E?A[E-1].to:t),lo[--B]=d;a=l}else o=c,a++}}}function dx(t,e,A,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=e,c=0;aa&&r.push(new pg(a,E.from,d));let Q=E.direction==CC!=!(d%2);Bx(t,Q?i+1:i,n,E.inner,E.from,E.to,r),a=E.to}B=E.to}else{if(B==A||(l?lo[B]!=s:lo[B]==s))break;B++}C?dx(t,a,B,i+1,n,C,r):ae;){let l=!0,I=!1;if(!c||a>o[c-1].to){let E=lo[a-1];E!=s&&(l=!1,I=E==16)}let C=!l&&s==1?[]:null,d=l?i:i+1,B=a;A:for(;;)if(c&&B==o[c-1].to){if(I)break A;let E=o[--c];if(!l)for(let Q=E.from,u=c;;){if(Q==e)break A;if(u&&o[u-1].to==Q)Q=o[--u].from;else{if(lo[Q-1]==s)break A;break}}if(C)C.push(E);else{E.tolo.length;)lo[lo.length]=256;let i=[],n=e==CC?0:1;return Bx(t,n,n,A,0,t.length,i),i}function rtA(t){return[new pg(0,t,0)]}var stA="";function IRA(t,e,A,i,n){var o;let r=i.head-t.from,s=pg.find(e,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=e[s],c=a.side(n,A);if(r==c){let C=s+=n?1:-1;if(C<0||C>=e.length)return null;a=e[s=C],r=a.side(!n,A),c=a.side(n,A)}let l=fr(t.text,r,a.forward(n,A));(la.to)&&(l=c),stA=t.text.slice(Math.min(r,l),Math.max(r,l));let I=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return I&&l==c&&I.level+(n?0:1)t.some(e=>e)}),dtA=Te.define({combine:t=>t.some(e=>e)}),BtA=Te.define(),N4=class t{constructor(e,A="nearest",i="nearest",n=5,o=5,r=!1){this.range=e,this.y=A,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new t(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new t(ie.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},ow=ki.define({map:(t,e)=>t.map(e)}),EtA=ki.define();function Hr(t,e,A){let i=t.facet(gtA);i.length?i[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var K0=Te.define({combine:t=>t.length?t[0]:!0}),dRA=0,hE=Te.define({combine(t){return t.filter((e,A)=>{for(let i=0;i{let a=[];return r&&a.push(j4.of(c=>{let l=c.plugin(s);return l?r(l):rt.none})),o&&a.push(o(s)),a})}static fromClass(e,A){return t.define((i,n)=>new e(i,n),A)}},_4=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(i){if(Hr(A.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){Hr(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(i){Hr(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},seA=Te.define(),Ex=Te.define(),j4=Te.define(),htA=Te.define(),Zx=Te.define(),QtA=Te.define();function aeA(t,e){let A=t.state.facet(QtA);if(!A.length)return A;let i=A.map(o=>o instanceof Function?o(t):o),n=[];return Zn.spans(i,e.from,e.to,{point(){},span(o,r,s,a){let c=o-e.from,l=r-e.from,I=n;for(let C=s.length-1;C>=0;C--,a--){let d=s[C].spec.bidiIsolate,B;if(d==null&&(d=CRA(e.text,c,l)),a>0&&I.length&&(B=I[I.length-1]).to==c&&B.direction==d)B.to=l,I=B.inner;else{let E={from:c,to:l,direction:d,inner:[]};I.push(E),I=E.inner}}}}),n}var utA=Te.define();function Wx(t){let e=0,A=0,i=0,n=0;for(let o of t.state.facet(utA)){let r=o(t);r&&(r.left!=null&&(e=Math.max(e,r.left)),r.right!=null&&(A=Math.max(A,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:e,right:A,top:i,bottom:n}}var M4=Te.define(),wg=class t{constructor(e,A,i,n){this.fromA=e,this.toA=A,this.fromB=i,this.toB=n}join(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,i=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>i.toA)){if(n.toAl)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},ww=class t{constructor(e,A,i){this.view=e,this.state=A,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=ns.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new wg(o,r,s,a))),this.changedRanges=n}static create(e,A,i){return new t(e,A,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Dw=class extends mo{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=rt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ss],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new wg(0,0,0,e.state.doc.length)],0,null)}update(e){var A;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:l})=>lthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!mRA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?ERA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:l}=this.hasComposition;i=new wg(c,l,e.changes.mapPos(c,-1),e.changes.mapPos(l,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(He.ie||He.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=uRA(r,s,e.changes);return i=wg.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=He.chrome||He.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:l,toB:I}=s,C,d,B,E;if(i&&i.range.fromBl){let x=F4.build(this.view.state.doc,l,i.range.fromB,this.decorations,this.dynamicDecorationMap),y=F4.build(this.view.state.doc,i.range.toB,I,this.decorations,this.dynamicDecorationMap);d=x.breakAtStart,B=x.openStart,E=y.openEnd;let F=this.compositionView(i);y.breakAtStart?F.breakAfter=1:y.content.length&&F.merge(F.length,F.length,y.content[0],!1,y.openStart,0)&&(F.breakAfter=y.content[0].breakAfter,y.content.shift()),x.content.length&&F.merge(0,0,x.content[x.content.length-1],!0,0,x.openEnd)&&x.content.pop(),C=x.content.concat(F).concat(y.content)}else({content:C,breakAtStart:d,openStart:B,openEnd:E}=F4.build(this.view.state.doc,l,I,this.decorations,this.dynamicDecorationMap));let{i:Q,off:u}=o.findPos(c,1),{i:v,off:L}=o.findPos(a,-1);VeA(this,v,L,Q,u,C,d,B,E)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let i of A.effects)i.is(EtA)&&(this.editContextFormatting=i.value)}compositionView(e){let A=new yg(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new u1(n,[A],A.length);let i=new ss;return i.append(A,0),i}fixCompositionDOM(e){let A=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=mo.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];A(e.line,n);for(let o=e.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],A(o>=0?e.marks[o].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(K0)||this.dom.tabIndex>-1)&&Cw(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||A||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(He.gecko&&s.empty&&!this.hasComposition&&BRA(a)){let I=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(I,a.node.childNodes[a.offset]||null)),a=c=new Ts(I,0),r=!0}let l=this.view.observer.selectionRange;(r||!l.focusNode||(!x4(a.node,a.offset,l.anchorNode,l.anchorOffset)||!x4(c.node,c.offset,l.focusNode,l.focusOffset))&&!this.suppressWidgetCursorChange(l,s))&&(this.view.observer.ignore(()=>{He.android&&He.chrome&&this.dom.contains(l.focusNode)&&fRA(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let I=Y4(this.view.root);if(I)if(s.empty){if(He.gecko){let C=hRA(a.node,a.offset);if(C&&C!=3){let d=(C==1?jeA:qeA)(a.node,a.offset);d&&(a=new Ts(d.node,d.offset))}}I.collapse(a.node,a.offset),s.bidiLevel!=null&&I.caretBidiLevel!==void 0&&(I.caretBidiLevel=s.bidiLevel)}else if(I.extend){I.collapse(a.node,a.offset);try{I.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),I.removeAllRanges(),I.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new Ts(l.anchorNode,l.anchorOffset),this.impreciseHead=c.precise?null:new Ts(l.focusNode,l.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&x4(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,i=Y4(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!i||!A.empty||!A.assoc||!i.modify)return;let r=ss.find(this,A.head);if(!r)return;let s=r.posAtStart;if(A.head==s||A.head==s+r.length)return;let a=this.coordsAt(A.head,-1),c=this.coordsAt(A.head,1);if(!a||!c||a.bottom>c.top)return;let l=this.domAtPos(A.head+A.assoc);i.collapse(l.node,l.offset),i.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=A.from&&i.collapse(n,o)}moveToLine(e){let A=this.dom,i;if(e.node!=A)return e;for(let n=e.offset;!i&&n=0;n--){let o=mo.get(A.childNodes[n]);o instanceof ss&&(i=o.domAtPos(o.length))}return i?new Ts(i.node,i.offset,!0):e}nearest(e){for(let A=e;A;){let i=mo.get(A);if(i&&i.rootView==this)return i;A=A.parentNode}return null}posFromDOM(e,A){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,A)+i.posAtStart}domAtPos(e){let{i:A,off:i}=this.childCursor().findPos(e,-1);for(;A=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof ss&&!(i instanceof ss&&A>=0)))i=s,n=c;else if(i&&c==e&&a==e&&s instanceof lC&&Math.abs(A)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:i}=this.childPos(e,1),n=this.children[A];if(!(n instanceof ss))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof yg))return null;let o=fr(n.text,i);if(o==i)return null;let r=IC(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Wn.LTR;for(let c=0,l=0;ln)break;if(c>=i){let d=I.dom.getBoundingClientRect();if(A.push(d.height),r){let B=I.dom.lastChild,E=B?J4(B):[];if(E.length){let Q=E[E.length-1],u=a?Q.right-d.left:d.right-Q.left;u>s&&(s=u,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+I.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?Wn.RTL:Wn.LTR}measureTextSize(){for(let o of this.children)if(o instanceof ss){let r=o.measureTextSize();if(r)return r}let e=document.createElement("div"),A,i,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=J4(e.firstChild)[0];A=e.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:A,e.remove()}),{lineHeight:A,charWidth:i,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new mw(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let i=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(A.lineBlockAt(r).bottom-A.lineBlockAt(i).top)/this.view.scaleY;e.push(rt.replace({widget:new P4(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return rt.set(e)}updateDeco(){let e=1,A=this.view.state.facet(j4).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet(htA).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=i,A.push(Zn.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];eA.anchor?-1:1),n;if(!i)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=Wx(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;VSA(this.view.scrollDOM,r,A.head{ie.from&&(A=!0)}),A}function pRA(t,e,A=1){let i=t.charCategorizer(e),n=t.doc.lineAt(e),o=e-n.from;if(n.length==0)return ie.cursor(e);o==0?A=1:o==n.length&&(A=-1);let r=o,s=o;A<0?r=fr(n.text,o,!1):s=fr(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=fr(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?e.left-t:Math.max(0,t-e.right)}function DRA(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function $L(t,e){return t.tope.top+1}function ceA(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function hx(t,e,A){let i,n,o,r,s=!1,a,c,l,I;for(let B=t.firstChild;B;B=B.nextSibling){let E=J4(B);for(let Q=0;QL||r==L&&o>v)&&(i=B,n=u,o=v,r=L,s=v?e0:Qu.bottom&&(!l||l.bottomu.top)&&(c=B,I=u):l&&$L(l,u)?l=leA(l,u.bottom):I&&$L(I,u)&&(I=ceA(I,u.top))}}if(l&&l.bottom>=A?(i=a,n=l):I&&I.top<=A&&(i=c,n=I),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return geA(i,C,A);if(s&&i.contentEditable!="false")return hx(i,C,A);let d=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function geA(t,e,A){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;sA?l.top-A:A-l.bottom)-1;if(l.left-1<=e&&l.right+1>=e&&I=(l.left+l.right)/2,d=C;if((He.chrome||He.gecko)&&IC(t,s).getBoundingClientRect().left==l.right&&(d=!C),I<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),o=I}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function mtA(t,e,A,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:l,y:I}=e,C=I-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let x=t.viewState.heightOracle.textHeight/2,y=!1;a=t.elementAtHeight(C),a.type!=zs.Text;)for(;C=i>0?a.bottom+x:a.top-x,!(C>=0&&C<=c);){if(y)return A?null:0;y=!0,i=-i}I=s+C;let d=a.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:IeA(t,r,a,l,I);let B=t.dom.ownerDocument,E=t.root.elementFromPoint?t.root:B,Q=E.elementFromPoint(l,I);Q&&!t.contentDOM.contains(Q)&&(Q=null),Q||(l=Math.max(r.left+1,Math.min(r.right-1,l)),Q=E.elementFromPoint(l,I),Q&&!t.contentDOM.contains(Q)&&(Q=null));let u,v=-1;if(Q&&((n=t.docView.nearest(Q))===null||n===void 0?void 0:n.isEditable)!=!1){if(B.caretPositionFromPoint){let x=B.caretPositionFromPoint(l,I);x&&({offsetNode:u,offset:v}=x)}else if(B.caretRangeFromPoint){let x=B.caretRangeFromPoint(l,I);x&&({startContainer:u,startOffset:v}=x,(!t.contentDOM.contains(u)||He.safari&&yRA(u,v,l)||He.chrome&&vRA(u,v,l))&&(u=void 0))}u&&(v=Math.min(Dg(u),v))}if(!u||!t.docView.dom.contains(u)){let x=ss.find(t.docView,d);if(!x)return C>a.top+a.height/2?a.to:a.from;({node:u,offset:v}=hx(x.dom,l,I))}let L=t.docView.nearest(u);if(!L)return null;if(L.isWidget&&((o=L.dom)===null||o===void 0?void 0:o.nodeType)==1){let x=L.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(A.from,A.to);return A.from+tw(r,o,t.state.tabSize)}function yRA(t,e,A){let i,n=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return IC(t,i-1,i).getBoundingClientRect().right>A}function vRA(t,e,A){if(e!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():IC(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-i.left>5}function Qx(t,e,A){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>e)break;if(!(o.toe)return o;(!n||o.type==zs.Text&&(n.type!=o.type||(A<0?o.frome)))&&(n=o)}}return n||i}return i}function bRA(t,e,A,i){let n=Qx(t,e.head,e.assoc||-1),o=!i||n.type!=zs.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:A==(s==Wn.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return ie.cursor(a,A?-1:1)}return ie.cursor(A?n.to:n.from,A?-1:1)}function CeA(t,e,A,i){let n=t.state.doc.lineAt(e.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=e,a=null;;){let c=IRA(n,o,r,s,A),l=stA;if(!c){if(n.number==(A?t.state.doc.lines:1))return s;l=` +`,n=t.state.doc.line(n.number+(A?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!A)}if(a){if(!a(l))return s}else{if(!i)return c;a=i(l)}s=c}}function MRA(t,e,A){let i=t.state.charCategorizer(e),n=i(A);return o=>{let r=i(o);return n==Vn.Space&&(n=r),n==r}}function kRA(t,e,A,i){let n=e.head,o=A?1:-1;if(n==(A?t.state.doc.length:0))return ie.cursor(n,e.assoc);let r=e.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,e.assoc||-1),l=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let d=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-d.from))),s=(o<0?d.top:d.bottom)+l}let I=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let B=s+(C+d)*o,E=mtA(t,{x:I,y:B},!1,o);if(Ba.bottom||(o<0?En)){let Q=t.docView.coordsForChar(E),u=!Q||B{if(e>o&&en(t)),A.from,e.head>A.from?-1:1);return i==A.from?A:ie.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,A),this}readTextNode(e){let A=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,A.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(A))&&(o=s.index,r=s[0].length),this.append(A.slice(i,o<0?A.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(e){if(e.cmIgnore)return;let A=mo.get(e),i=A&&A.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==A&&(i.pos=this.text.length)}findPointInside(e,A){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(SRA(e,i.node,i.offset)?A:0))}};function SRA(t,e,A){for(;;){if(!e||A-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,i,0))){let s=o||r?[]:xRA(e),a=new ux(s,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=FRA(s,this.bounds.from)}else{let s=e.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!rx(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!rx(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),l=e.viewport;if((He.ios||He.chrome)&&e.state.selection.main.empty&&a!=c&&(l.from>0||l.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,a=n.from,c=null;(o===8||He.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:He.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` + `&&t.lineWrapping&&(i&&(i=ie.single(i.main.anchor-1,i.main.head-1)),A={from:n.from,to:n.to,insert:qi.of([" "])}),A)return Xx(t,A,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function Xx(t,e,A,i=-1){if(He.ios&&t.inputState.flushIOSKey(e))return!0;let n=t.state.selection.main;if(He.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&t.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&mE(t.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&mE(t.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&mE(t.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=RRA(t,e,A));return t.state.facet(ItA).some(a=>a(t,e.from,e.to,o,s))||t.dispatch(s()),!0}function RRA(t,e,A){let i,n=t.state,o=n.selection.main;if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=o.frome.to?n.sliceDoc(e.to,o.to):"";i=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(e),a=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=o.to&&e.to>=o.to-10){let c=t.state.sliceDoc(e.from,e.to),l,I=A&&ftA(t,A.main.head);if(I){let B=e.insert.length-(e.to-e.from);l={from:I.from,to:I.to-B}}else l=t.state.doc.lineAt(o.head);let C=o.to-e.to,d=o.to-o.from;i=n.changeByRange(B=>{if(B.from==o.from&&B.to==o.to)return{changes:s,range:a||B.map(s)};let E=B.to-C,Q=E-c.length;if(B.to-B.from!=d||t.state.sliceDoc(Q,E)!=c||B.to>=l.from&&B.from<=l.to)return{range:B};let u=n.changes({from:Q,to:E,insert:e.insert}),v=B.to-o.to;return{changes:u,range:a?ie.range(Math.max(0,a.anchor+v),Math.max(0,a.head+v)):B.map(u)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function LRA(t,e,A,i){let n=Math.min(t.length,e.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==e.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));A-=r+a-o}if(r=r?o-A:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-A:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function xRA(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return A&&(e.push(new yw(A,i)),(n!=A||o!=i)&&e.push(new yw(n,o))),e}function FRA(t,e){if(t.length==0)return null;let A=t[0].pos,i=t.length==2?t[1].pos:A;return A>-1&&i>-1?ie.single(A+e,i+e):null}var mx=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,He.safari&&e.contentDOM.addEventListener("input",()=>null),He.gecko&&VRA(e.contentDOM.ownerDocument)}handleEvent(e){!JRA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,A);for(let n of i.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=NRA(e),i=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let r=!A[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&DtA.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),He.android&&He.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return He.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((A=wtA.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||_RA.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from0?!0:He.safari&&!He.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function deA(t,e){return(A,i)=>{try{return e.call(t,i,A)}catch(n){Hr(A.state,n)}}}function NRA(t){let e=Object.create(null);function A(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&A(s).handlers.push(deA(i.value,a))}if(r)for(let s in r){let a=r[s];a&&A(s).observers.push(deA(i.value,a))}}for(let i in El)A(i).handlers.push(El[i]);for(let i in Nc)A(i).observers.push(Nc[i]);return e}var wtA=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],_RA="dthko",DtA=[16,17,18,20,91,92,224,225],rw=6;function sw(t){return Math.max(0,t)*.7+8}function GRA(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}var px=class{constructor(e,A,i,n){this.view=e,this.startEvent=A,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=ZSA(e.contentDOM),this.atoms=e.state.facet(Zx).map(r=>r(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(Ir.allowMultipleSelections)&&URA(e,A),this.dragging=YRA(e,A)&&btA(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&GRA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=Wx(this.view);e.clientX-a.left<=n+rw?A=-sw(n-e.clientX):e.clientX+a.right>=r-rw&&(A=sw(e.clientX-r)),e.clientY-a.top<=o+rw?i=-sw(o-e.clientY):e.clientY+a.bottom>=s-rw&&(i=sw(e.clientY-s)),this.setScrollSpeed(A,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let A=null;for(let i=0;iA.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function URA(t,e){let A=t.state.facet(atA);return A.length?A[0](e):He.mac?e.metaKey:e.ctrlKey}function KRA(t,e){let A=t.state.facet(ctA);return A.length?A[0](e):He.mac?!e.altKey:!e.ctrlKey}function YRA(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let i=Y4(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=e.clientX&&r.top<=e.clientY&&r.bottom>=e.clientY)return!0}return!1}function JRA(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,i;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(i=mo.get(A))&&i.ignoreEvent(e))return!1;return!0}var El=Object.create(null),Nc=Object.create(null),ytA=He.ie&&He.ie_version<15||He.ios&&He.webkit_version<604;function TRA(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),vtA(t,A.value)},50)}function Gw(t,e,A){for(let i of t.facet(e))A=i(A,t);return A}function vtA(t,e){e=Gw(t.state,qx,e);let{state:A}=t,i,n=1,o=A.toText(e),r=o.lines==A.selection.ranges.length;if(wx!=null&&A.selection.ranges.every(a=>a.empty)&&wx==o.toString()){let a=-1;i=A.changeByRange(c=>{let l=A.doc.lineAt(c.from);if(l.from==a)return{range:c};a=l.from;let I=A.toText((r?o.line(n++).text:e)+A.lineBreak);return{changes:{from:l.from,insert:I},range:ie.cursor(c.from+I.length)}})}else r?i=A.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:ie.cursor(a.from+c.length)}}):i=A.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Nc.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};El.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Nc.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Nc.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};El.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let i of t.state.facet(ltA))if(A=i(t,e),A)break;if(!A&&e.button==0&&(A=ORA(t,e)),A){let i=!t.hasFocus;t.inputState.startMouseSelection(new px(t,e,A,i)),i&&t.observer.ignore(()=>{HeA(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}return!1};function BeA(t,e,A,i){if(i==1)return ie.cursor(e,A);if(i==2)return pRA(t.state,e,A);{let n=ss.find(t.docView,e),o=t.state.doc.lineAt(n?n.posAtEnd:e),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return se>=A.top&&e<=A.bottom&&t>=A.left&&t<=A.right;function zRA(t,e,A,i){let n=ss.find(t.docView,e);if(!n)return 1;let o=e-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&EeA(A,i,r))return-1;let s=n.coordsAt(o,1);return s&&EeA(A,i,s)?1:r&&r.bottom>=i?-1:1}function heA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:zRA(t,A,e.clientX,e.clientY)}}var HRA=He.ie&&He.ie_version<=11,QeA=null,ueA=0,feA=0;function btA(t){if(!HRA)return t.detail;let e=QeA,A=feA;return QeA=t,feA=Date.now(),ueA=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(ueA+1)%3:1}function ORA(t,e){let A=heA(t,e),i=btA(e),n=t.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,r,s){let a=heA(t,o),c,l=BeA(t,a.pos,a.bias,i);if(A.pos!=a.pos&&!r){let I=BeA(t,A.pos,A.bias,i),C=Math.min(I.from,l.from),d=Math.max(I.to,l.to);l=C1&&(c=PRA(n,a.pos))?c:s?n.addRange(l):ie.create([l])}}}function PRA(t,e){for(let A=0;A=e)return ie.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}El.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=A.to||r<=A.from)&&(A=ie.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",Gw(t.state,Vx,t.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};El.dragend=t=>(t.inputState.draggedContent=null,!1);function meA(t,e,A,i){if(A=Gw(t.state,qx,A),!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&KRA(t,e)?{from:o.from,to:o.to}:null,s={from:n,insert:A},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}El.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let i=Array(A.length),n=0,o=()=>{++n==A.length&&meA(t,e,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(A[r])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return meA(t,e,i,!0),!0}return!1};El.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=ytA?null:e.clipboardData;return A?(vtA(t,A.getData("text/plain")||A.getData("text/uri-list")),!0):(TRA(t),!1)};function jRA(t,e){let A=t.dom.parentNode;if(!A)return;let i=A.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function qRA(t){let e=[],A=[],i=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(e.push(r.text),A.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:Gw(t,Vx,e.join(t.lineBreak)),ranges:A,linewise:i}}var wx=null;El.copy=El.cut=(t,e)=>{let{text:A,ranges:i,linewise:n}=qRA(t.state);if(!A&&!n)return!1;wx=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=ytA?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(jRA(t,A),!1)};var MtA=wa.define();function ktA(t,e){let A=[];for(let i of t.facet(CtA)){let n=i(t,e);n&&A.push(n)}return A.length?t.update({effects:A,annotations:MtA.of(!0)}):null}function StA(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=ktA(t.state,e);A?t.dispatch(A):t.update([])}},10)}Nc.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),StA(t)};Nc.blur=t=>{t.observer.clearSelectionRange(),StA(t)};Nc.compositionstart=Nc.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Nc.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,He.chrome&&He.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Nc.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};El.beforeinput=(t,e)=>{var A,i;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),r=e.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return Xx(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(He.chrome&&He.android&&(n=wtA.find(o=>o.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return He.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),He.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Nc.compositionend(t,e),20),!1};var peA=new Set;function VRA(t){peA.has(t)||(peA.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var weA=["pre-wrap","normal","pre-line","break-spaces"],pE=!1;function DeA(){pE=!1}var Dx=class{constructor(e){this.lineWrapping=e,this.doc=qi.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let i=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((A-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return weA.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let i=0;i-1,a=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Ew&&(pE=!0),this.height=e)}replace(e,A,i){return t.of(i)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:l,toB:I}=n[s],C=o.lineAt(a,Lo.ByPosNoHeight,i.setDoc(A),0,0),d=C.to>=c?C:o.lineAt(c,Lo.ByPosNoHeight,i,0,0);for(I+=d.to-c,c=d.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,l=n[s-1].fromB,s--,ao*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=e[i];s.break?e.splice(i,1,s.left,null,s.right):e.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},Fc=class t extends bw{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,i,n){return new mg(n,this.length,i,this.height,this.breaks)}replace(e,A,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof Q1&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof Q1?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):ic.of(i)}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Q1=class t extends ic{constructor(e){super(e,0)}heightMetrics(e,A){let i=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-i+1,r,s=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(e,A,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(A,n);if(A.lineWrapping){let c=n+(e0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(e>0){let o=i[0];o instanceof t?i[0]=new t(e+o.length):i.unshift(new t(e-1),null)}return ic.of(i)}decomposeLeft(e,A){A.push(new t(e-1),null)}decomposeRight(e,A){A.push(null,new t(this.length-e-1))}updateHeight(e,A=0,i=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let r=[],s=Math.max(A,n.from),a=-1;for(n.from>A&&r.push(new t(n.from-A-1).updateHeight(e,A));s<=o&&n.more;){let l=e.doc.lineAt(s).length;r.length&&r.push(null);let I=n.heights[n.index++];a==-1?a=I:Math.abs(I-a)>=Ew&&(a=-2);let C=new Fc(l,I);C.outdated=!1,r.push(C),s+=l+1}s<=o&&r.push(null,new t(o-s).updateHeight(e,s));let c=ic.of(r);return(a<0||Math.abs(c.height-this.height)>=Ew||Math.abs(a-this.heightMetrics(e,A).perLine)>=Ew)&&(pE=!0),vw(this,c)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},vx=class extends ic{constructor(e,A,i){super(e.length+A+i.length,e.height+i.height,A|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,A,i,n){let o=i+this.left.height;return es))return c;let l=A==Lo.ByPosNoHeight?Lo.ByPosNoHeight:Lo.ByPos;return a?c.join(this.right.lineAt(s,l,i,r,s)):this.left.lineAt(s,l,i,n,o).join(c)}forEachLine(e,A,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,A,i,s,a,r);else{let c=this.lineAt(a,Lo.ByPos,i,n,o);e=e&&c.from<=A&&r(c),A>c.to&&this.right.forEachLine(c.to+1,A,i,s,a,r)}}replace(e,A,i){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let s of i)o.push(s);if(e>0&&yeA(o,r-1),A=i&&A.push(null)),e>i&&this.right.decomposeLeft(e-i,A)}decomposeRight(e,A){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?ic.of(this.break?[e,null,A]:[e,A]):(this.left=vw(this.left,e),this.right=vw(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,i=!1,n){let{left:o,right:r}=this,s=A+o.length+this.break,a=null;return n&&n.from<=A+o.length&&n.more?a=o=o.updateHeight(e,A,i,n):o.updateHeight(e,A,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(e,s,i,n):r.updateHeight(e,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function yeA(t,e){let A,i;t[e]==null&&(A=t[e-1])instanceof Q1&&(i=t[e+1])instanceof Q1&&t.splice(e-1,3,new Q1(A.length+1+i.length))}var ZRA=5,bx=class t{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let i=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof Fc?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Fc(i-this.pos,-1)),this.writtenTo=i,A>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,i){if(e=ZRA)&&this.addLineDeco(n,o,r)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new Fc(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let i=new Q1(A-e);return this.oracle.doc.lineAt(e).to==A&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Fc)return e;let A=new Fc(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+i}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof Fc)&&!this.isCovered?this.nodes.push(new Fc(0,-1)):(this.writtenTol.clientHeight||l.scrollWidth>l.clientWidth)&&I.overflow!="visible"){let C=l.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=I.position=="absolute"||I.position=="fixed"?l.offsetParent:l.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-A.left,right:Math.max(o,r)-A.left,top:s-(A.top+e),bottom:Math.max(s,a)-(A.top+e)}}function $RA(t){let e=t.getBoundingClientRect(),A=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function ALA(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var G4=class{constructor(e,A,i,n){this.from=e,this.to=A,this.size=i,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new Dx(A),this.stateDeco=e.facet(j4).filter(i=>typeof i!="function"),this.heightMap=ic.empty().applyChanges(this.stateDeco,qi.empty,this.heightOracle.setDoc(e.doc),[new wg(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=rt.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let i=0;i<=1;i++){let n=i?A.head:A.anchor;if(!e.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);e.push(new QE(o,r))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?veA:new Sx(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(R4(e,this.scaler))})}update(e,A=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(j4).filter(l=>typeof l!="function");let n=e.changedRanges,o=wg.extendWithRanges(n,WRA(i,this.stateDeco,e?e.changes:ns.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);DeA(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||pE)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,A));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(dtA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,i=window.getComputedStyle(A),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Wn.RTL:Wn.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=A.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,l=0;if(s.width&&s.height){let{scaleX:x,scaleY:y}=zeA(A,s);(x>.005&&Math.abs(this.scaleX-x)>.005||y>.005&&Math.abs(this.scaleY-y)>.005)&&(this.scaleX=x,this.scaleY=y,c|=16,r=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=C)&&(this.paddingTop=I,this.paddingBottom=C,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=PeA(e.scrollDOM);let B=(this.printing?ALA:XRA)(A,this.paddingTop),E=B.top-this.pixelViewport.top,Q=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let u=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(u!=this.inView&&(this.inView=u,u&&(a=!0)),!this.inView&&!this.scrollTarget&&!$RA(e.dom))return 0;let v=s.width;if((this.contentDOMWidth!=v||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let x=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(x)&&(r=!0),r||n.lineWrapping&&Math.abs(v-this.contentDOMWidth)>n.charWidth){let{lineHeight:y,charWidth:F,textHeight:U}=e.docView.measureTextSize();r=y>0&&n.refresh(o,y,F,U,v/F,x),r&&(e.docView.minWidth=0,c|=16)}E>0&&Q>0?l=Math.max(E,Q):E<0&&Q<0&&(l=Math.min(E,Q)),DeA();for(let y of this.viewports){let F=y.from==this.viewport.from?x:e.docView.measureVisibleLineHeights(y);this.heightMap=(r?ic.empty().applyChanges(this.stateDeco,qi.empty,this.heightOracle,[new wg(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new yx(y.from,F))}pE&&(c|=2)}let L=!this.viewportIsAppropriate(this.viewport,l)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return L&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(l,this.scrollTarget),c|=this.updateForViewport()),(c&2||L)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new QE(n.lineAt(r-i*1e3,Lo.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,Lo.ByHeight,o,0,0).to);if(A){let{head:c}=A.range;if(ca.to){let l=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(c,Lo.ByPos,o,0,0),C;A.y=="center"?C=(I.top+I.bottom)/2-l/2:A.y=="start"||A.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=Wn.LTR&&!i)return[];let s=[],a=(l,I,C,d)=>{if(I-ll&&uu.from>=C.from&&u.to<=C.to&&Math.abs(u.from-l)u.fromv));if(!Q){if(IL.from<=I&&L.to>=I)){let L=A.moveToLineBoundary(ie.cursor(I),!1,!0).head;L>l&&(I=L)}let u=this.gapSize(C,l,I,d),v=i||u<2e6?u:2e6;Q=new G4(l,I,u,v)}s.push(Q)},c=l=>{if(l.length2e6)for(let F of e)F.from>=l.from&&F.froml.from&&a(l.from,d,l,I),BA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let i=[];Zn.spans(A,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||R4(this.heightMap.lineAt(e,Lo.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||R4(this.heightMap.lineAt(this.scaler.fromDOM(e),Lo.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return R4(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},QE=class{constructor(e,A){this.from=e,this.to=A}};function eLA(t,e,A){let i=[],n=t,o=0;return Zn.spans(A,t,e,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return e[e.length-1].to;let i=Math.floor(t*A);for(let n=0;;n++){let{from:o,to:r}=e[n],s=r-o;if(i<=s)return o+i;i-=s}}function cw(t,e){let A=0;for(let{from:i,to:n}of t.ranges){if(e<=n){A+=e-i;break}A+=n-i}return A/t.total}function tLA(t,e){for(let A of t)if(e(A))return A}var veA={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},Sx=class t{constructor(e,A,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=A.lineAt(s,Lo.ByPos,e,0,0).top,l=A.lineAt(a,Lo.ByPos,e,0,0).bottom;return n+=l-c,{from:s,to:a,top:c,bottom:l,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(e){for(let A=0,i=0,n=0;;A++){let o=AA.from==e.viewports[i].from&&A.to==e.viewports[i].to):!1}};function R4(t,e){if(e.scale==1)return t;let A=e.toDOM(t.top),i=e.toDOM(t.bottom);return new mg(t.from,t.length,A,i-A,Array.isArray(t._content)?t._content.map(n=>R4(n,e)):t._content)}var lw=Te.define({combine:t=>t.join(" ")}),ex=Te.define({combine:t=>t.indexOf(!0)>-1}),Rx=xc.newName(),RtA=xc.newName(),LtA=xc.newName(),xtA={"&light":"."+RtA,"&dark":"."+LtA};function Lx(t,e,A){return new xc(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+i}})}var iLA=Lx("."+Rx,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},xtA),nLA={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},tx=He.ie&&He.ie_version<=11,xx=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new sx,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let i of A)this.queue.push(i);(He.ie&&He.ie_version<=11||He.ios&&e.composing)&&A.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&e.constructor.EDIT_CONTEXT!==!1&&!(He.chrome&&He.chrome_version<126)&&(this.editContext=new Fx(e),e.state.facet(K0)&&(e.contentDOM.editContext=this.editContext.editContext)),tx&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,i)=>A!=e[i]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(K0)?i.root.activeElement!=this.dom:!Cw(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(He.ie&&He.ie_version<=11||He.android&&He.chrome)&&!i.state.selection.main.empty&&n.focusNode&&x4(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=Y4(e.root);if(!A)return!1;let i=He.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&oLA(this.view,A)||A;if(!i||this.selectionRange.eq(i))return!1;let n=Cw(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&mE(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,i=-1,n=!1;for(let o of e){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),A==-1?{from:A,to:i}=r:(A=Math.min(r.from,A),i=Math.max(r.to,i)))}return{from:A,to:i,typeOver:n}}readChange(){let{from:e,to:A,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Cw(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new fx(this.view,e,A,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let i=this.view.state,n=ptA(this.view,A);return this.view.state==i&&(A.domChanged||A.newSel&&!A.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let i=beA(A,e.previousSibling||e.target.previousSibling,-1),n=beA(A,e.nextSibling||e.target.nextSibling,1);return{from:i?A.posAfter(i):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(K0)!=e.state.facet(K0)&&(e.view.contentDOM.editContext=e.state.facet(K0)?this.editContext.editContext:null))}destroy(){var e,A,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function beA(t,e,A){for(;e;){let i=mo.get(e);if(i&&i.parent==t)return i;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function MeA(t,e){let A=e.startContainer,i=e.startOffset,n=e.endContainer,o=e.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return x4(r.node,r.offset,n,o)&&([A,i,n,o]=[n,o,A,i]),{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}}function oLA(t,e){if(e.getComposedRanges){let n=e.getComposedRanges(t.root)[0];if(n)return MeA(t,n)}let A=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),A?MeA(t,A):null}var Fx=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:qi.of(i.text.split(` +`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let l=ie.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));l.main.eq(n)||e.dispatch({selection:l,userEvent:"select"});return}if((He.mac||He.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:qi.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let l=this.to-this.from+(c.to-c.from+c.insert.length);Xx(e,c,ie.single(this.toEditorPos(i.selectionStart,l),this.toEditorPos(i.selectionEnd,l)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)A.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=Y4(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let l=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,A+=l,this.to+=l;return}else n=null,this.revertPending(e.state);if(o+=A,r+=A,r<=this.from)this.from+=l,this.to+=l;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=l}A+=l}),n&&!i&&this.revertPending(e.state),!i}update(e){let A=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},St=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||WSA(A.parent)||document,this.viewState=new Mw(A.state||Ir.create(A)),A.scrollTo&&A.scrollTo.is(ow)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(hE).map(o=>new _4(o));for(let o of this.plugins)o.update(this);this.observer=new xx(this),this.inputState=new mx(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Dw(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...A){let i=A.length==1&&A[0]instanceof Qg?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(i,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let d of A){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;A.some(d=>d.annotation(MtA))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=ktA(r,s),c||(a=1));let l=this.observer.delayedAndroidKey,I=null;if(l?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(I=null)):this.observer.clear(),r.facet(Ir.phrases)!=this.state.facet(Ir.phrases))return this.setState(r);o=ww.create(this,r,A),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let d of A){if(C&&(C=C.map(d.changes)),d.scrollIntoView){let{main:B}=d.state.selection;C=new N4(B.empty?B:ie.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of d.effects)B.is(ow)&&(C=B.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=kw.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(M4)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(i,A.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(lw)!=o.state.facet(lw)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let d of this.state.facet(XL))try{d(o)}catch(B){Hr(this.state,B,"update listener")}(c||I)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),I&&!ptA(this,I)&&l.force&&mE(this.contentDOM,l.key,l.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Mw(A),this.plugins=A.facet(hE).map(n=>new _4(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Dw(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(A){let i=A.startState.facet(hE),n=A.state.facet(hE);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new _4(r));else{let a=this.plugins[s];a.mustUpdate=A,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=A&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(PeA(n))r=-1,s=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(o);r=B.from,s=B.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];c&4||([this.measureRequests,l]=[l,this.measureRequests]);let I=l.map(B=>{try{return B.read(this)}catch(E){return Hr(this.state,E),keA}}),C=ww.create(this,this.state,[]),d=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),d=this.docView.update(C),d&&this.docViewUpdate());for(let B=0;B1||E<-1){o=o+E,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(XL))a(i)}get themeClasses(){return Rx+" "+(this.state.facet(ex)?LtA:RtA)+" "+this.state.facet(lw)}updateAttrs(){let A=SeA(this,seA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(K0)?"true":"false",class:"cm-content",style:`${He.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),SeA(this,Ex,i);let n=this.observer.ignore(()=>{let o=Ix(this.contentDOM,this.contentAttrs,i),r=Ix(this.dom,this.editorAttrs,A);return o||r});return this.editorAttrs=A,this.contentAttrs=i,n}showAnnouncements(A){let i=!0;for(let n of A)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(M4);let A=this.state.facet(t.cspNonce);xc.mount(this.root,this.styleModules.concat(iLA).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let i=0;in.plugin==A)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,i,n){return Ax(this,A,CeA(this,A,i,n))}moveByGroup(A,i){return Ax(this,A,CeA(this,A,i,n=>MRA(this,A.head,n)))}visualLineSide(A,i){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),r=n[i?n.length-1:0];return ie.cursor(r.side(i,o)+A.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(A,i,n=!0){return bRA(this,A,i,n)}moveVertically(A,i,n){return Ax(this,A,kRA(this,A,i,n))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,i=0){return this.docView.posFromDOM(A,i)}posAtCoords(A,i=!0){return this.readMeasured(),mtA(this,A,i)}coordsAtPos(A,i=1){this.readMeasured();let n=this.docView.coordsAt(A,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),r=this.bidiSpans(o),s=r[pg.find(r,A-o.from,-1,i)];return Nw(n,s.dir==Wn.LTR==i>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(reA)||Athis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>rLA)return rtA(A.length);let i=this.textDirectionAt(A.from),n;for(let r of this.bidiCache)if(r.from==A.from&&r.dir==i&&(r.fresh||otA(r.isolates,n=aeA(this,A))))return r.order;n||(n=aeA(this,A));let o=gRA(A.text,i,n);return this.bidiCache.push(new kw(A.from,A.to,i,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||He.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{HeA(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,i={}){return ow.of(new N4(typeof A=="number"?ie.cursor(A):A,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return ow.of(new N4(ie.cursor(n.from),"start","start",n.top-A,i,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return Xn.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return Xn.define(()=>({}),{eventObservers:A})}static theme(A,i){let n=xc.newName(),o=[lw.of(n),M4.of(Lx(`.${n}`,A))];return i&&i.dark&&o.push(ex.of(!0)),o}static baseTheme(A){return Bl.lowest(M4.of(Lx("."+Rx,A,xtA)))}static findFromDOM(A){var i;let n=A.querySelector(".cm-content"),o=n&&mo.get(n)||mo.get(A);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=M4,t.inputHandler=ItA,t.clipboardInputFilter=qx,t.clipboardOutputFilter=Vx,t.scrollHandler=BtA,t.focusChangeEffect=CtA,t.perLineTextDirection=reA,t.exceptionSink=gtA,t.updateListener=XL,t.editable=K0,t.mouseSelectionStyle=ltA,t.dragMovesSelection=ctA,t.clickAddsSelectionRange=atA,t.decorations=j4,t.outerDecorations=htA,t.atomicRanges=Zx,t.bidiIsolatedRanges=QtA,t.scrollMargins=utA,t.darkTheme=ex,t.cspNonce=Te.define({combine:e=>e.length?e[0]:""}),t.contentAttributes=Ex,t.editorAttributes=seA,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=ki.define(),t})(),rLA=4096,keA={},kw=class t{constructor(e,A,i,n,o,r){this.from=e,this.to=A,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:Wn.LTR;for(let o=Math.max(0,e.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&gx(r,A)}return A}var sLA=He.mac?"mac":He.windows?"win":He.linux?"linux":"key";function aLA(t,e){let A=t.split(/-(?!$)/),i=A[A.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),A}function NtA(t,e,A){return _tA(FtA(t.state),e,t,A)}var h1=null,lLA=4e3;function gLA(t,e=sLA){let A=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,l)=>{var I,C;let d=A[r]||(A[r]=Object.create(null)),B=s.split(/ (?!$)/).map(u=>aLA(u,e));for(let u=1;u{let x=h1={view:L,prefix:v,scope:r};return setTimeout(()=>{h1==x&&(h1=null)},lLA),!0}]})}let E=B.join(" ");n(E,!1);let Q=d[E]||(d[E]={preventDefault:!1,stopPropagation:!1,run:((C=(I=d._any)===null||I===void 0?void 0:I.run)===null||C===void 0?void 0:C.slice())||[]});a&&Q.run.push(a),c&&(Q.preventDefault=!0),l&&(Q.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let l=A[c]||(A[c]=Object.create(null));l._any||(l._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=r;for(let C in l)l[C].run.push(d=>I(d,Nx))}let a=r[e]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return A}var Nx=null;function _tA(t,e,A,i){Nx=e;let n=ZAA(e),o=rs(n,0),r=tc(o)==n.length&&n!=" ",s="",a=!1,c=!1,l=!1;h1&&h1.view==A&&h1.scope==i&&(s=h1.prefix+" ",DtA.indexOf(e.keyCode)<0&&(c=!0,h1=null));let I=new Set,C=Q=>{if(Q){for(let u of Q.run)if(!I.has(u)&&(I.add(u),u(A)))return Q.stopPropagation&&(l=!0),!0;Q.preventDefault&&(Q.stopPropagation&&(l=!0),c=!0)}return!1},d=t[i],B,E;return d&&(C(d[s+gw(n,e,!r)])?a=!0:r&&(e.altKey||e.metaKey||e.ctrlKey)&&!(He.windows&&e.ctrlKey&&e.altKey)&&(B=U0[e.keyCode])&&B!=n?(C(d[s+gw(B,e,!0)])||e.shiftKey&&(E=BE[e.keyCode])!=n&&E!=B&&C(d[s+gw(E,e,!1)]))&&(a=!0):r&&e.shiftKey&&C(d[s+gw(n,e,!0)])&&(a=!0),!a&&C(d._any)&&(a=!0)),c&&(a=!0),a&&l&&e.stopPropagation(),Nx=null,a}var q4=class t{constructor(e,A,i,n,o){this.className=e,this.left=A,this.top=i,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,A,i){if(i.empty){let n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=GtA(e);return[new t(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return ILA(e,A,i)}};function GtA(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Wn.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function LeA(t,e,A,i){let n=t.coordsAtPos(e,A*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function ILA(t,e,A){if(A.to<=t.viewport.from||A.from>=t.viewport.to)return[];let i=Math.max(A.from,t.viewport.from),n=Math.min(A.to,t.viewport.to),o=t.textDirection==Wn.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=GtA(t),c=r.querySelector(".cm-line"),l=c&&window.getComputedStyle(c),I=s.left+(l?parseInt(l.paddingLeft)+Math.min(0,parseInt(l.textIndent)):0),C=s.right-(l?parseInt(l.paddingRight):0),d=Qx(t,i,1),B=Qx(t,n,-1),E=d.type==zs.Text?d:null,Q=B.type==zs.Text?B:null;if(E&&(t.lineWrapping||d.widgetLineBreaks)&&(E=LeA(t,i,1,E)),Q&&(t.lineWrapping||B.widgetLineBreaks)&&(Q=LeA(t,n,-1,Q)),E&&Q&&E.from==Q.from&&E.to==Q.to)return v(L(A.from,A.to,E));{let y=E?L(A.from,null,E):x(d,!1),F=Q?L(null,A.to,Q):x(B,!0),U=[];return(E||d).to<(Q||B).from-(E&&Q?1:0)||d.widgetLineBreaks>1&&y.bottom+t.defaultLineHeight/2j&&lA.from=p)break;jA>uA&&H(Math.max(aA,uA),y==null&&aA<=j,Math.min(jA,p),F==null&&jA>=IA,cA.dir)}if(uA=V.to+1,uA>=p)break}return K.length==0&&H(j,y==null,IA,F==null,t.textDirection),{top:T,bottom:N,horizontal:K}}function x(y,F){let U=s.top+(F?y.top:y.bottom);return{top:U,bottom:U,horizontal:[]}}}function CLA(t,e){return t.constructor==e.constructor&&t.eq(e)}var _x=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(hw)!=e.state.facet(hw)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,i=e.facet(hw);for(;A!CLA(A,this.drawn[i]))){let A=this.dom.firstChild,i=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[i].constructor&&n.update(A,this.drawn[i])?(A=A.nextSibling,i++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},hw=Te.define();function UtA(t){return[Xn.define(e=>new _x(e,t)),hw.of(t)]}var V4=Te.define({combine(t){return zr(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function KtA(t={}){return[V4.of(t),dLA,BLA,ELA,dtA.of(!0)]}function YtA(t){return t.startState.facet(V4)!=t.state.facet(V4)}var dLA=UtA({above:!0,markers(t){let{state:e}=t,A=e.facet(V4),i=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:ie.cursor(n.head,n.head>n.anchor?-1:1);for(let a of q4.forRange(t,r,s))i.push(a)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=YtA(t);return A&&xeA(t.state,e),t.docChanged||t.selectionSet||A},mount(t,e){xeA(e.state,t)},class:"cm-cursorLayer"});function xeA(t,e){e.style.animationDuration=t.facet(V4).cursorBlinkRate+"ms"}var BLA=UtA({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:q4.forRange(t,"cm-selectionBackground",e)).reduce((e,A)=>e.concat(A))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||YtA(t)},class:"cm-selectionLayer"}),ELA=Bl.highest(St.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),JtA=ki.define({map(t,e){return t==null?null:e.mapPos(t)}}),L4=To.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((A,i)=>i.is(JtA)?i.value:A,t)}}),hLA=Xn.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let A=t.state.field(L4);A==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(L4)!=A||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(L4),A=e!=null&&t.coordsAtPos(e);if(!A)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:A.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:A.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:A.bottom-A.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/A+"px",this.cursor.style.height=t.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(L4)!=t&&this.view.dispatch({effects:JtA.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function TtA(){return[L4,hLA]}function FeA(t,e,A,i,n){e.lastIndex=0;for(let o=t.iterRange(A,i),r=A,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)n(r+s.index,s)}function QLA(t,e){let A=t.visibleRanges;if(A.length==1&&A[0].from==t.viewport.from&&A[0].to==t.viewport.to)return A;let i=[];for(let{from:n,to:o}of A)n=Math.max(t.state.doc.lineAt(n).from,n-e),o=Math.min(t.state.doc.lineAt(o).to,o+e),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var Gx=class{constructor(e){let{regexp:A,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(s,a,c,l)=>n(l,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,l)=>{let I=i(s,a,c);I&&l(c,c+s[0].length,I)};else if(i)this.addMatch=(s,a,c,l)=>l(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(e){let A=new os,i=A.add.bind(A);for(let{from:n,to:o}of QLA(e,this.maxLength))FeA(e.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,e,r,i));return A.finish()}updateDeco(e,A){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,r,s,a)=>{a>=e.view.viewport.from&&s<=e.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),e.viewportMoved||n-i>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),i,n):A}updateRange(e,A,i,n){for(let o of e.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=e.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){l=r;break}for(;sC.push(u.range(E,Q));if(a==c)for(this.regexp.lastIndex=l-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(Q,e,E,B));A=A.update({filterFrom:l,filterTo:I,filter:(E,Q)=>EI,add:C})}}return A}},Ux=/x/.unicode!=null?"gu":"g",uLA=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Ux),fLA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},ix=null;function mLA(){var t;if(ix==null&&typeof document<"u"&&document.body){let e=document.body.style;ix=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return ix||!1}var Qw=Te.define({combine(t){let e=zr(t,{render:null,specialChars:uLA,addSpecialChars:null});return(e.replaceTabs=!mLA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Ux)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Ux)),e}});function ztA(t={}){return[Qw.of(t),pLA()]}var NeA=null;function pLA(){return NeA||(NeA=Xn.fromClass(class{constructor(t){this.view=t,this.decorations=rt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(Qw)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new Gx({regexp:t.specialChars,decoration:(e,A,i)=>{let{doc:n}=A.state,o=rs(e[0],0);if(o==9){let r=n.lineAt(i),s=A.state.tabSize,a=G0(r.text,s,i-r.from);return rt.replace({widget:new Yx((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=rt.replace({widget:new Kx(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(Qw);t.startState.facet(Qw)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var wLA="\u2022";function DLA(t){return t>=32?wLA:t==10?"\u2424":String.fromCharCode(9216+t)}var Kx=class extends nc{constructor(e,A){super(),this.options=e,this.code=A}eq(e){return e.code==this.code}toDOM(e){let A=DLA(this.code),i=e.state.phrase("Control character")+" "+(fLA[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,A);if(n)return n;let o=document.createElement("span");return o.textContent=A,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},Yx=class extends nc{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function HtA(){return vLA}var yLA=rt.line({class:"cm-activeLine"}),vLA=Xn.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,A=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>e&&(A.push(yLA.range(n.from)),e=n.from)}return rt.set(A)}},{decorations:t=>t.decorations});var Jx=2e3;function bLA(t,e,A){let i=Math.min(e.line,A.line),n=Math.max(e.line,A.line),o=[];if(e.off>Jx||A.off>Jx||e.col<0||A.col<0){let r=Math.min(e.off,A.off),s=Math.max(e.off,A.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(ie.range(c.from+r,c.to+s))}}else{let r=Math.min(e.col,A.col),s=Math.max(e.col,A.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),l=tw(c.text,r,t.tabSize,!0);if(l<0)o.push(ie.cursor(c.to));else{let I=tw(c.text,s,t.tabSize);o.push(ie.range(c.from+l,c.from+I))}}}return o}function MLA(t,e){let A=t.coordsAtPos(t.viewport.from);return A?Math.round(Math.abs((A.left-e)/t.defaultCharacterWidth)):-1}function _eA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(A),n=A-i.from,o=n>Jx?-1:n==i.length?MLA(t,e.clientX):G0(i.text,t.state.tabSize,A-i.from);return{line:i.number,col:o,off:n}}function kLA(t,e){let A=_eA(t,e),i=t.state.selection;return A?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(A.line).from),r=n.state.doc.lineAt(o);A={line:r.number,col:A.col,off:Math.min(A.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=_eA(t,n);if(!s)return i;let a=bLA(t.state,A,s);return a.length?r?ie.create(a.concat(i.ranges)):ie.create(a):i}}:null}function OtA(t){let e=t?.eventFilter||(A=>A.altKey&&A.button==0);return St.mouseSelectionStyle.of((A,i)=>e(i)?kLA(A,i):null)}var SLA={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},RLA={style:"cursor: crosshair"};function PtA(t={}){let[e,A]=SLA[t.key||"Alt"],i=Xn.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||A(n))},keyup(n){(n.keyCode==e||!A(n))&&this.set(!1)},mousemove(n){this.set(A(n))}}});return[i,St.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?RLA:null})]}var k4="-10000px",Sw=class{constructor(e,A,i,n){this.facet=A,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(A),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(e,A){var i;let n=e.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let r=[],s=A?[]:null;for(let a=0;aA[c]=a),A.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function LLA(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var nx=Te.define({combine:t=>{var e,A,i;return{position:He.ios?"absolute":((e=t.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((A=t.find(n=>n.parent))===null||A===void 0?void 0:A.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||LLA}}}),GeA=new WeakMap,$x=Xn.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(nx);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Sw(t,DE,(A,i)=>this.createTooltip(A,i),A=>{this.resizeObserver&&this.resizeObserver.unobserve(A.dom),A.dom.remove()}),this.above=this.manager.tooltips.map(A=>!!A.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{Date.now()>this.lastTransaction-50&&A.length>0&&A[A.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let A=e||t.geometryChanged,i=t.state.facet(nx);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;A=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);A=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);A&&this.maybeMeasure()}createTooltip(t,e){let A=t.create(this.view),i=e?e.dom:null;if(A.dom.classList.add("cm-tooltip"),t.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",A.dom.appendChild(n)}return A.dom.style.position=this.position,A.dom.style.top=k4,A.dom.style.left="0px",this.container.insertBefore(A.dom,i),A.mount&&A.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(A.dom),A}destroy(){var t,e,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,A=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(He.gecko)A=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==k4&&o.style.left=="0px"){let r=o.getBoundingClientRect();A=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(A||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,e=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=Wx(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(nx).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:A}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:A,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(A.bottom,i.bottom)||I.rightMath.min(A.right,i.right)+.1)){l.style.top=k4;continue}let d=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,B=d?7:0,E=C.right-C.left,Q=(e=GeA.get(c))!==null&&e!==void 0?e:C.bottom-C.top,u=c.offset||FLA,v=this.view.textDirection==Wn.LTR,L=C.width>i.right-i.left?v?i.left:i.right-C.width:v?Math.max(i.left,Math.min(I.left-(d?14:0)+u.x,i.right-E)):Math.min(Math.max(i.left,I.left-E+(d?14:0)-u.x),i.right-E),x=this.above[s];!a.strictSide&&(x?I.top-Q-B-u.yi.bottom)&&x==i.bottom-I.bottom>I.top-i.top&&(x=this.above[s]=!x);let y=(x?I.top-i.top:i.bottom-I.bottom)-B;if(yL&&T.topF&&(F=x?T.top-Q-2-B:T.bottom+B+2);if(this.position=="absolute"?(l.style.top=(F-t.parent.top)/o+"px",UeA(l,(L-t.parent.left)/n)):(l.style.top=F/o+"px",UeA(l,L/n)),d){let T=I.left+(v?u.x:-u.x)-(L+14-7);d.style.left=T/n+"px"}c.overlap!==!0&&r.push({left:L,top:F,right:U,bottom:F+Q}),l.classList.toggle("cm-tooltip-above",x),l.classList.toggle("cm-tooltip-below",!x),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=k4}},{eventObservers:{scroll(){this.maybeMeasure()}}});function UeA(t,e){let A=parseInt(t.style.left,10);(isNaN(A)||Math.abs(e-A)>1)&&(t.style.left=e+"px")}var xLA=St.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),FLA={x:0,y:0},DE=Te.define({enables:[$x,xLA]}),Rw=Te.define({combine:t=>t.reduce((e,A)=>e.concat(A),[])}),Lw=class t{static create(e){return new t(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Sw(e,Rw,(A,i)=>this.createHostedView(A,i),A=>A.dom.remove())}createHostedView(e,A){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,A?A.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let A of this.manager.tooltipViews)A.mount&&A.mount(e);this.mounted=!0}positioned(e){for(let A of this.manager.tooltipViews)A.positioned&&A.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let A of this.manager.tooltipViews)(e=A.destroy)===null||e===void 0||e.call(A)}passProp(e){let A;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(A===void 0)A=n;else if(A!==n)return}}return A}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},NLA=DE.compute([Rw],t=>{let e=t.facet(Rw);return e.length===0?null:{pos:Math.min(...e.map(A=>A.pos)),end:Math.max(...e.map(A=>{var i;return(i=A.end)!==null&&i!==void 0?i:A.pos})),create:Lw.create,above:e[0].above,arrow:e.some(A=>A.arrow)}}),Tx=class{constructor(e,A,i,n,o){this.view=e,this.source=A,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;es.bottom||A.xs.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(l=>l.from<=n&&l.to>=n),c=a&&a.dir==Wn.RTL?-1:1;o=A.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>Hr(e.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin($x),A=e?e.manager.tooltips.findIndex(i=>i.create==Lw.create):-1;return A>-1?e.manager.tooltipViews[A]:null}mousemove(e){var A,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!_LA(o.dom,e)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(A=n[0])===null||A===void 0?void 0:A.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!GLA(this.view,r,s,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:A}=this;if(A.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let A=i=>{e.removeEventListener("mouseleave",A),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",A)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},Iw=4;function _LA(t,e){let{left:A,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return e.clientX>=A-Iw&&e.clientX<=i+Iw&&e.clientY>=n-Iw&&e.clientY<=o+Iw}function GLA(t,e,A,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=e&&a<=A}function jtA(t,e={}){let A=ki.define(),i=To.define({create(){return[]},update(n,o){if(n.length&&(e.hideOnChange&&(o.docChanged||o.selection)?n=[]:e.hideOn&&(n=n.filter(r=>!e.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,is.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(A)&&(n=r.value),r.is(ULA)&&(n=[]);return n},provide:n=>Rw.from(n)});return{active:i,extension:[i,Xn.define(n=>new Tx(n,t,i,A,e.hoverTime||300)),NLA]}}function AF(t,e){let A=t.plugin($x);if(!A)return null;let i=A.manager.tooltips.indexOf(e);return i<0?null:A.manager.tooltipViews[i]}var ULA=ki.define();var KeA=Te.define({combine(t){let e,A;for(let i of t)e=e||i.topContainer,A=A||i.bottomContainer;return{topContainer:e,bottomContainer:A}}});function BC(t,e){let A=t.plugin(qtA),i=A?A.specs.indexOf(e):-1;return i>-1?A.panels[i]:null}var qtA=Xn.fromClass(class{constructor(t){this.input=t.state.facet(dC),this.specs=this.input.filter(A=>A),this.panels=this.specs.map(A=>A(t));let e=t.state.facet(KeA);this.top=new uE(t,!0,e.topContainer),this.bottom=new uE(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(A=>A.top)),this.bottom.sync(this.panels.filter(A=>!A.top));for(let A of this.panels)A.dom.classList.add("cm-panel"),A.mount&&A.mount()}update(t){let e=t.state.facet(KeA);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new uE(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new uE(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let A=t.state.facet(dC);if(A!=this.input){let i=A.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),l;c<0?(l=a(t.view),s.push(l)):(l=this.panels[c],l.update&&l.update(t)),n.push(l),(l.top?o:r).push(l)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>St.scrollMargins.of(e=>{let A=e.plugin(t);return A&&{top:A.top.scrollMargin(),bottom:A.bottom.scrollMargin()}})}),uE=class{constructor(e,A,i){this.view=e,this.top=A,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let A of this.panels)A.destroy&&e.indexOf(A)<0&&A.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let A=this.container||this.view.dom;A.insertBefore(this.dom,this.top?A.firstChild:null)}let e=this.dom.firstChild;for(let A of this.panels)if(A.dom.parentNode==this.dom){for(;e!=A.dom;)e=YeA(e);e=e.nextSibling}else this.dom.insertBefore(A.dom,e);for(;e;)e=YeA(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function YeA(t){let e=t.nextSibling;return t.remove(),e}var dC=Te.define({enables:qtA});var ya=class extends dl{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};ya.prototype.elementClass="";ya.prototype.toDOM=void 0;ya.prototype.mapMode=is.TrackBefore;ya.prototype.startSide=ya.prototype.endSide=-1;ya.prototype.point=!0;var uw=Te.define(),KLA=Te.define(),YLA={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Zn.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},U4=Te.define();function Uw(t){return[VtA(),U4.of(nA(nA({},YLA),t))]}var zx=Te.define({combine:t=>t.some(e=>e)});function VtA(t){let e=[JLA];return t&&t.fixed===!1&&e.push(zx.of(!0)),e}var JLA=Xn.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(U4).map(e=>new xw(t,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!t.state.facet(zx),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,i=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(i<(A.to-A.from)*.8)}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(zx)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let A=Zn.iter(this.view.state.facet(uw),this.view.viewport.from),i=[],n=this.gutters.map(o=>new Ox(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==zs.Text&&r){Hx(A,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==zs.Text){Hx(A,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(U4),A=t.state.facet(U4),i=t.docChanged||t.heightChanged||t.viewportChanged||!Zn.eq(t.startState.facet(uw),t.state.facet(uw),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of A){let r=e.indexOf(o);r<0?n.push(new xw(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>St.scrollMargins.of(e=>{let A=e.plugin(t);return!A||A.gutters.length==0||!A.fixed?null:e.textDirection==Wn.LTR?{left:A.dom.offsetWidth*e.scaleX}:{right:A.dom.offsetWidth*e.scaleX}})});function JeA(t){return Array.isArray(t)?t:[t]}function Hx(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}var Ox=class{constructor(e,A,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Zn.iter(e.markers,A.from)}addElement(e,A,i){let{gutter:n}=this,o=(A.top-this.height)/e.scaleY,r=A.height/e.scaleY;if(this.i==n.elements.length){let s=new Fw(e,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,r,o,i);this.height=A.bottom,this.i++}line(e,A,i){let n=[];Hx(this.cursor,n,A.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(e,A,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let i=this.gutter.config.widgetMarker(e,A.widget,A),n=i?[i]:null;for(let o of e.state.facet(KLA)){let r=o(e,A.widget,A);r&&(n||(n=[])).push(r)}n&&this.addElement(e,A,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}},xw=class{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in A.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);A.domEventHandlers[i](e,s,n)&&n.preventDefault()});this.markers=JeA(A.markers(e)),A.initialSpacer&&(this.spacer=new Fw(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=JeA(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!Zn.eq(this.markers,A,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Fw=class{constructor(e,A,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,i,n)}update(e,A,i,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),TLA(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),K4=class extends ya{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function ox(t,e){return t.state.facet(fE).formatNumber(e,t.state)}var OLA=U4.compute([fE],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(zLA)},lineMarker(e,A,i){return i.some(n=>n.toDOM)?null:new K4(ox(e,e.state.doc.lineAt(A.from).number))},widgetMarker:(e,A,i)=>{for(let n of e.state.facet(HLA)){let o=n(e,A,i);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(fE)!=e.state.facet(fE),initialSpacer(e){return new K4(ox(e,TeA(e.state.doc.lines)))},updateSpacer(e,A){let i=ox(A.view,TeA(A.view.state.doc.lines));return i==e.number?e:new K4(i)},domEventHandlers:t.facet(fE).domEventHandlers}));function ZtA(t={}){return[fE.of(t),VtA(),OLA]}function TeA(t){let e=9;for(;e{let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>A&&(A=n,e.push(PLA.range(n)))}return Zn.of(e)});function WtA(){return jLA}var qLA=0,Z4=class{constructor(e,A){this.from=e,this.to=A}},si=class{constructor(e={}){this.id=qLA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=ws.match(e)),A=>{let i=e(A);return i===void 0?null:[this,i]}}};si.closedBy=new si({deserialize:t=>t.split(" ")});si.openedBy=new si({deserialize:t=>t.split(" ")});si.group=new si({deserialize:t=>t.split(" ")});si.isolate=new si({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});si.contextHash=new si({perNode:!0});si.lookAhead=new si({perNode:!0});si.mounted=new si({perNode:!0});var yE=class{constructor(e,A,i){this.tree=e,this.overlay=A,this.parser=i}static get(e){return e&&e.props&&e.props[si.mounted.id]}},VLA=Object.create(null),ws=class t{constructor(e,A,i,n=0){this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):VLA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(si.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let i in e)for(let n of i.split(" "))A[n]=e[i];return i=>{for(let n=i.prop(si.group),o=-1;o<(n?n.length:0);o++){let r=A[o<0?i.name:n[o]];if(r)return r}}}};ws.none=new ws("",Object.create(null),0,8);var W4=class t{constructor(e){this.types=e;for(let A=0;A0;for(let a=this.cursor(r|Fr.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||A(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:sF(ws.none,this.children,this.positions,0,this.children.length,0,this.length,(A,i,n)=>new t(this.type,A,i,n,this.propValues),e.makeTree||((A,i,n)=>new t(ws.none,A,i,n)))}static build(e){return WLA(e)}};Cr.empty=new Cr(ws.none,[],[],0);var eF=class t{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},m1=class t{constructor(e,A,i){this.buffer=e,this.length=A,this.set=i}get type(){return ws.none}toString(){let e=[];for(let A=0;A0));a=r[a+3]);return s}slice(e,A,i){let n=this.buffer,o=new Uint16Array(A-e),r=0;for(let s=e,a=0;s=e&&Ae;case 1:return A<=e&&i>e;case 2:return i>e;case 4:return!0}}function X4(t,e,A,i){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=c;e+=A){let l=s[e],I=a[e]+r.from;if(eiA(n,i,I,I+l.length)){if(l instanceof m1){if(o&Fr.ExcludeBuffers)continue;let C=l.findChild(0,l.buffer.length,A,i-I,n);if(C>-1)return new $4(new iF(r,l,e,I),null,C)}else if(o&Fr.IncludeAnonymous||!l.type.isAnonymous||rF(l)){let C;if(!(o&Fr.IgnoreMounts)&&(C=yE.get(l))&&!C.overlay)return new t(C.tree,I,e,r);let d=new t(l,I,e,r);return o&Fr.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?l.children.length-1:0,A,i,n)}}}if(o&Fr.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+A:e=A<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,i=0){let n;if(!(i&Fr.IgnoreOverlays)&&(n=yE.get(this._tree))&&n.overlay){let o=e-this.from;for(let{from:r,to:s}of n.overlay)if((A>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function $tA(t,e,A,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(A!=null){for(let r=!1;!r;)if(r=n.type.is(A),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(e)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function tF(t,e,A=e.length-1){for(let i=t;A>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[A]&&e[A]!=i.name)return!1;A--}}return!0}var iF=class{constructor(e,A,i,n){this.parent=e,this.buffer=A,this.index=i,this.start=n}},$4=class t extends Jw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,i){super(),this.context=e,this._parent=A,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,A,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,i=0){if(i&Fr.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];e.push(i.slice(n,o,r)),A.push(0)}return new Cr(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function tiA(t){if(!t.length)return null;let e=0,A=t[0];for(let o=1;oA.from||r.to=e){let s=new vg(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(X4(s,e,A,!1))}}return n?tiA(n):i}var A3=class{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof vg)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof vg?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,i=this.mode){return this.buffer?i&Fr.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Fr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Fr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(i<0?A.buffer.length:A.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let o=A+e,r=e<0?-1:i._tree.children.length;o!=r;o+=e){let s=i._tree.children[o];if(this.mode&Fr.IncludeAnonymous||s instanceof m1||!s.type.isAnonymous||rF(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==n){if(n==this.index)return r;A=r,i=o+1;break A}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return tF(this._tree,e,n);let r=i[A.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}};function rF(t){return t.children.some(e=>e instanceof m1||!e.type.isAnonymous||rF(e))}function WLA(t){var e;let{buffer:A,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(A)?new eF(A,A.length):A,a=i.types,c=0,l=0;function I(y,F,U,T,N,K){let{id:H,start:j,end:IA,size:lA}=s,uA=l,p=c;for(;lA<0;)if(s.next(),lA==-1){let VA=o[H];U.push(VA),T.push(j-y);return}else if(lA==-3){c=H;return}else if(lA==-4){l=H;return}else throw new RangeError(`Unrecognized record size: ${lA}`);let V=a[H],cA,aA,jA=j-y;if(IA-j<=n&&(aA=Q(s.pos-F,N))){let VA=new Uint16Array(aA.size-aA.skip),ce=s.pos-aA.size,EA=VA.length;for(;s.pos>ce;)EA=u(aA.start,VA,EA);cA=new m1(VA,IA-aA.start,i),jA=aA.start-y}else{let VA=s.pos-lA;s.next();let ce=[],EA=[],sA=H>=r?H:-1,TA=0,Ke=IA;for(;s.pos>VA;)sA>=0&&s.id==sA&&s.size>=0?(s.end<=Ke-n&&(B(ce,EA,j,TA,s.end,Ke,sA,uA,p),TA=ce.length,Ke=s.end),s.next()):K>2500?C(j,VA,ce,EA):I(j,VA,ce,EA,sA,K+1);if(sA>=0&&TA>0&&TA-1&&TA>0){let Re=d(V,p);cA=sF(V,ce,EA,0,ce.length,0,IA-j,Re,Re)}else cA=E(V,ce,EA,IA-j,uA-IA,p)}U.push(cA),T.push(jA)}function C(y,F,U,T){let N=[],K=0,H=-1;for(;s.pos>F;){let{id:j,start:IA,end:lA,size:uA}=s;if(uA>4)s.next();else{if(H>-1&&IA=0;lA-=3)j[uA++]=N[lA],j[uA++]=N[lA+1]-IA,j[uA++]=N[lA+2]-IA,j[uA++]=uA;U.push(new m1(j,N[2]-IA,i)),T.push(IA-y)}}function d(y,F){return(U,T,N)=>{let K=0,H=U.length-1,j,IA;if(H>=0&&(j=U[H])instanceof Cr){if(!H&&j.type==y&&j.length==N)return j;(IA=j.prop(si.lookAhead))&&(K=T[H]+j.length+IA)}return E(y,U,T,N,K,F)}}function B(y,F,U,T,N,K,H,j,IA){let lA=[],uA=[];for(;y.length>T;)lA.push(y.pop()),uA.push(F.pop()+U-N);y.push(E(i.types[H],lA,uA,K-N,j-K,IA)),F.push(N-U)}function E(y,F,U,T,N,K,H){if(K){let j=[si.contextHash,K];H=H?[j].concat(H):[j]}if(N>25){let j=[si.lookAhead,N];H=H?[j].concat(H):[j]}return new Cr(y,F,U,T,H)}function Q(y,F){let U=s.fork(),T=0,N=0,K=0,H=U.end-n,j={size:0,start:0,skip:0};A:for(let IA=U.pos-y;U.pos>IA;){let lA=U.size;if(U.id==F&&lA>=0){j.size=T,j.start=N,j.skip=K,K+=4,T+=4,U.next();continue}let uA=U.pos-lA;if(lA<0||uA=r?4:0,V=U.start;for(U.next();U.pos>uA;){if(U.size<0)if(U.size==-3)p+=4;else break A;else U.id>=r&&(p+=4);U.next()}N=V,T+=lA,K+=p}return(F<0||T==y)&&(j.size=T,j.start=N,j.skip=K),j.size>4?j:void 0}function u(y,F,U){let{id:T,start:N,end:K,size:H}=s;if(s.next(),H>=0&&T4){let IA=s.pos-(H-4);for(;s.pos>IA;)U=u(y,F,U)}F[--U]=j,F[--U]=K-y,F[--U]=N-y,F[--U]=T}else H==-3?c=T:H==-4&&(l=T);return U}let v=[],L=[];for(;s.pos>0;)I(t.start||0,t.bufferStart||0,v,L,-1,0);let x=(e=t.length)!==null&&e!==void 0?e:v.length?L[0]+v[0].length:0;return new Cr(a[t.topID],v.reverse(),L.reverse(),x)}var AiA=new WeakMap;function Yw(t,e){if(!t.isAnonymous||e instanceof m1||e.type!=t)return 1;let A=AiA.get(e);if(A==null){A=1;for(let i of e.children){if(i.type!=t||!(i instanceof Cr)){A=1;break}A+=Yw(t,i)}AiA.set(e,A)}return A}function sF(t,e,A,i,n,o,r,s,a){let c=0;for(let B=i;B=l)break;F+=U}if(L==x+1){if(F>l){let U=B[x];d(U.children,U.positions,0,U.children.length,E[x]+v);continue}I.push(B[x])}else{let U=E[L-1]+B[L-1].length-y;I.push(sF(t,B,E,x,L,y,U,null,a))}C.push(y+v-o)}}return d(e,A,i,n,0),(s||a)(I,C,r)}var EC=class t{constructor(e,A,i,n,o=!1,r=!1){this.from=e,this.to=A,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],i=!1){let n=[new t(0,e.length,e,0,!1,i)];for(let o of A)o.to>e.length&&n.push(o);return n}static applyChanges(e,A,i=128){if(!A.length)return e;let n=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,c=0;;s++){let l=s=i)for(;r&&r.from=C.from||I<=C.to||c){let d=Math.max(C.from,a)-c,B=Math.min(C.to,I)-c;C=d>=B?null:new t(d,B,C.tree,C.offset+c,s>0,!!l)}if(C&&n.push(C),r.to>I)break;r=onew Z4(n.from,n.to)):[new Z4(0,0)]:[new Z4(0,e.length)],this.createParse(e,A||[],i)}parse(e,A,i){let n=this.startParse(e,A,i);for(;;){let o=n.advance();if(o)return o}}},oF=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}};var bme=new si({perNode:!0});var XLA=0,hl=class t{constructor(e,A,i,n){this.name=e,this.set=A,this.base=i,this.modified=n,this.id=XLA++}toString(){let{name:e}=this;for(let A of this.modified)A.name&&(e=`${A.name}(${e})`);return e}static define(e,A){let i=typeof e=="string"?e:"?";if(e instanceof t&&(A=e),A?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),A)for(let o of A.set)n.set.push(o);return n}static defineModifier(e){let A=new Ow(e);return i=>i.modified.indexOf(A)>-1?i:Ow.get(i.base||i,i.modified.concat(A).sort((n,o)=>n.id-o.id))}},$LA=0,Ow=class t{constructor(e){this.name=e,this.instances=[],this.id=$LA++}static get(e,A){if(!A.length)return e;let i=A[0].instances.find(s=>s.base==e&&AxA(A,s.modified));if(i)return i;let n=[],o=new hl(e.name,n,e,A);for(let s of A)s.instances.push(o);let r=exA(A);for(let s of e.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function AxA(t,e){return t.length==e.length&&t.every((A,i)=>A==e[i])}function exA(t){let e=[[]];for(let A=0;Ai.length-A.length)}function Pw(t){let e=Object.create(null);for(let A in t){let i=t[A];Array.isArray(i)||(i=[i]);for(let n of A.split(" "))if(n){let o=[],r=2,s=n;for(let I=0;;){if(s=="..."&&I>0&&I+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),I+=C[0].length,I==n.length)break;let d=n[I++];if(I==n.length&&d=="!"){r=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(I)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let l=new bE(i,r,a>0?o.slice(0,a):null);e[c]=l.sort(e[c])}}return oiA.add(e)}var oiA=new si,bE=class{constructor(e,A,i,n){this.tags=e,this.mode=A,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let r=n;for(let s of o)for(let a of s.set){let c=A[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function txA(t,e){let A=null;for(let i of t){let n=i.style(e);n&&(A=A?A+" "+n:n)}return A}function riA(t,e,A,i=0,n=t.length){let o=new cF(i,Array.isArray(e)?e:[e],A);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var cF=class{constructor(e,A,i){this.at=e,this.highlighters=A,this.span=i,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,i,n,o){let{type:r,from:s,to:a}=e;if(s>=i||a<=A)return;r.isTop&&(o=this.highlighters.filter(d=>!d.scope||d.scope(r)));let c=n,l=ixA(e)||bE.empty,I=txA(o,l.tags);if(I&&(c&&(c+=" "),c+=I,l.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(A,s),c),l.opaque)return;let C=e.tree&&e.tree.prop(si.mounted);if(C&&C.overlay){let d=e.node.enter(C.overlay[0].from+s,1),B=this.highlighters.filter(Q=>!Q.scope||Q.scope(C.tree.type)),E=e.firstChild();for(let Q=0,u=s;;Q++){let v=Q=L||!e.nextSibling())););if(!v||L>i)break;u=v.to+s,u>A&&(this.highlightRange(d.cursor(),Math.max(A,v.from+s),Math.min(i,u),"",B),this.startSpan(Math.min(i,u),c))}E&&e.parent()}else if(e.firstChild()){C&&(n="");do if(!(e.to<=A)){if(e.from>=i)break;this.highlightRange(e,A,i,n,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function ixA(t){let e=t.type.prop(oiA);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}var Ue=hl.define,Tw=Ue(),p1=Ue(),iiA=Ue(p1),niA=Ue(p1),w1=Ue(),zw=Ue(w1),aF=Ue(w1),kg=Ue(),hC=Ue(kg),bg=Ue(),Mg=Ue(),lF=Ue(),e3=Ue(lF),Hw=Ue(),we={comment:Tw,lineComment:Ue(Tw),blockComment:Ue(Tw),docComment:Ue(Tw),name:p1,variableName:Ue(p1),typeName:iiA,tagName:Ue(iiA),propertyName:niA,attributeName:Ue(niA),className:Ue(p1),labelName:Ue(p1),namespace:Ue(p1),macroName:Ue(p1),literal:w1,string:zw,docString:Ue(zw),character:Ue(zw),attributeValue:Ue(zw),number:aF,integer:Ue(aF),float:Ue(aF),bool:Ue(w1),regexp:Ue(w1),escape:Ue(w1),color:Ue(w1),url:Ue(w1),keyword:bg,self:Ue(bg),null:Ue(bg),atom:Ue(bg),unit:Ue(bg),modifier:Ue(bg),operatorKeyword:Ue(bg),controlKeyword:Ue(bg),definitionKeyword:Ue(bg),moduleKeyword:Ue(bg),operator:Mg,derefOperator:Ue(Mg),arithmeticOperator:Ue(Mg),logicOperator:Ue(Mg),bitwiseOperator:Ue(Mg),compareOperator:Ue(Mg),updateOperator:Ue(Mg),definitionOperator:Ue(Mg),typeOperator:Ue(Mg),controlOperator:Ue(Mg),punctuation:lF,separator:Ue(lF),bracket:e3,angleBracket:Ue(e3),squareBracket:Ue(e3),paren:Ue(e3),brace:Ue(e3),content:kg,heading:hC,heading1:Ue(hC),heading2:Ue(hC),heading3:Ue(hC),heading4:Ue(hC),heading5:Ue(hC),heading6:Ue(hC),contentSeparator:Ue(kg),list:Ue(kg),quote:Ue(kg),emphasis:Ue(kg),strong:Ue(kg),link:Ue(kg),monospace:Ue(kg),strikethrough:Ue(kg),inserted:Ue(),deleted:Ue(),changed:Ue(),invalid:Ue(),meta:Hw,documentMeta:Ue(Hw),annotation:Ue(Hw),processingInstruction:Ue(Hw),definition:hl.defineModifier("definition"),constant:hl.defineModifier("constant"),function:hl.defineModifier("function"),standard:hl.defineModifier("standard"),local:hl.defineModifier("local"),special:hl.defineModifier("special")};for(let t in we){let e=we[t];e instanceof hl&&(e.name=t)}var Sme=gF([{tag:we.link,class:"tok-link"},{tag:we.heading,class:"tok-heading"},{tag:we.emphasis,class:"tok-emphasis"},{tag:we.strong,class:"tok-strong"},{tag:we.keyword,class:"tok-keyword"},{tag:we.atom,class:"tok-atom"},{tag:we.bool,class:"tok-bool"},{tag:we.url,class:"tok-url"},{tag:we.labelName,class:"tok-labelName"},{tag:we.inserted,class:"tok-inserted"},{tag:we.deleted,class:"tok-deleted"},{tag:we.literal,class:"tok-literal"},{tag:we.string,class:"tok-string"},{tag:we.number,class:"tok-number"},{tag:[we.regexp,we.escape,we.special(we.string)],class:"tok-string2"},{tag:we.variableName,class:"tok-variableName"},{tag:we.local(we.variableName),class:"tok-variableName tok-local"},{tag:we.definition(we.variableName),class:"tok-variableName tok-definition"},{tag:we.special(we.variableName),class:"tok-variableName2"},{tag:we.definition(we.propertyName),class:"tok-propertyName tok-definition"},{tag:we.typeName,class:"tok-typeName"},{tag:we.namespace,class:"tok-namespace"},{tag:we.className,class:"tok-className"},{tag:we.macroName,class:"tok-macroName"},{tag:we.propertyName,class:"tok-propertyName"},{tag:we.operator,class:"tok-operator"},{tag:we.comment,class:"tok-comment"},{tag:we.meta,class:"tok-meta"},{tag:we.invalid,class:"tok-invalid"},{tag:we.punctuation,class:"tok-punctuation"}]);var IF,ME=new si;function nxA(t){return Te.define({combine:t?e=>e.concat(t):void 0})}var oxA=new si,Sg=(()=>{class t{constructor(A,i,n=[],o=""){this.data=A,this.name=o,Ir.prototype.hasOwnProperty("tree")||Object.defineProperty(Ir.prototype,"tree",{get(){return Or(this)}}),this.parser=i,this.extension=[D1.of(this),Ir.languageData.of((r,s,a)=>{let c=siA(r,s,a),l=c.type.prop(ME);if(!l)return[];let I=r.facet(l),C=c.type.prop(oxA);if(C){let d=c.resolve(s-c.from,a);for(let B of C)if(B.test(d,r)){let E=r.facet(B.facet);return B.type=="replace"?E:E.concat(I)}}return I})].concat(n)}isActiveAt(A,i,n=-1){return siA(A,i,n).type.prop(ME)==this.data}findRegions(A){let i=A.facet(D1);if(i?.data==this.data)return[{from:0,to:A.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(ME)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(si.mounted);if(a){if(a.tree.prop(ME)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?A:void 0)]}),e.name)}configure(e,A){return new t(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function Or(t){let e=t.field(Sg.state,!1);return e?e.tree:Cr.empty}var EF=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-i,A-i)}},t3=null,hF=class t{constructor(e,A,i=[],n,o,r,s,a){this.parser=e,this.state=A,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,A,i){return new t(e,A,[],Cr.empty,0,i,[],null)}startParse(){return this.parser.startParse(new EF(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=Cr.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(EC.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=t3;t3=this;try{return e()}finally{t3=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=aiA(e,A.from,A.to);return e}changes(e,A){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,l,I,C)=>a.push({fromA:c,toA:l,fromB:I,toB:C})),i=EC.applyChanges(i,a),n=Cr.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let l=e.mapPos(c.from,1),I=e.mapPos(c.to,-1);le.from&&(this.fragments=aiA(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends vE{createParse(A,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=t3;if(a){for(let c of n)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=r,new Cr(ws.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return t3}};function aiA(t,e,A){return EC.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}var n3=class t{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,i)||A.takeTree(),new t(A)}static init(e){let A=Math.min(3e3,e.doc.length),i=hF.create(e.facet(D1).parser,e,{from:0,to:A});return i.work(20,A)||i.takeTree(),new t(i)}};Sg.state=To.define({create:n3.init,update(t,e){for(let A of e.effects)if(A.is(Sg.setState))return A.value;return e.startState.facet(D1)!=e.state.facet(D1)?n3.init(e.state):t.apply(e)}});var CiA=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(CiA=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});var CF=typeof navigator<"u"&&(!((IF=navigator.scheduling)===null||IF===void 0)&&IF.isInputPending)?()=>navigator.scheduling.isInputPending():null,rxA=Xn.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(Sg.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(Sg.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=CiA(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>CF&&CF()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:Sg.setState.of(new n3(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>Hr(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),D1=Te.define({combine(t){return t.length?t[0]:null},enables:t=>[Sg.state,rxA,St.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]}),qw=class{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}};var sxA=Te.define(),fC=Te.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function ul(t){let e=t.facet(fC);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function SE(t,e){let A="",i=t.tabSize,n=t.facet(fC)[0];if(n==" "){for(;e>=i;)A+=" ",e-=i;n=" "}for(let o=0;o=e?axA(t,A,e):null}var QC=class{constructor(e,A={}){this.state=e,this.options=A,this.unit=ul(e)}lineAt(e,A=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==e?{text:"",from:e}:(A<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(e,A=e.length){return G0(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:i,from:n}=this.lineAt(e,A),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},DF=new si;function axA(t,e,A){let i=e.resolveStack(A),n=e.resolveInner(A,-1).resolve(A,0).enterUnfinishedNodesBefore(A);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return diA(i,t,A)}function diA(t,e,A){for(let i=t;i;i=i.next){let n=lxA(i.node);if(n)return n(QF.create(e,A,i))}return 0}function cxA(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function lxA(t){let e=t.type.prop(DF);if(e)return e;let A=t.firstChild,i;if(A&&(i=A.type.prop(si.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>dxA(r,!0,1,void 0,o&&!cxA(r)?n.from:void 0)}return t.parent==null?gxA:null}function gxA(){return 0}var QF=class t extends QC{constructor(e,A,i){super(e.state,e.options),this.base=e,this.pos=A,this.context=i}get node(){return this.context.node}static create(e,A,i){return new t(e,A,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(A.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(IxA(i,e))break;A=this.state.doc.lineAt(i.from)}return this.lineIndent(A.from)}continue(){return diA(this.context.next,this.base,this.pos)}};function IxA(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function CxA(t){let e=t.node,A=e.childAfter(e.from),i=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(A.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=A.to;;){let a=e.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(A.to-o.from))[0].length;return{from:A.from,to:A.to+c}}s=a.to}}function dxA(t,e,A,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=e?CxA(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*A)}function yF({except:t,units:e=1}={}){return A=>{let i=t&&t.test(A.textAfter);return A.baseIndent+(i?0:e*A.unit)}}var BxA=200;function BiA(){return Ir.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let A=t.newDoc,{head:i}=t.newSelection.main,n=A.lineAt(i);if(i>n.from+BxA)return t;let o=A.sliceString(n.from,i);if(!e.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let l=r.doc.lineAt(c);if(l.from==s)continue;s=l.from;let I=Ww(r,l.from);if(I==null)continue;let C=/^\s*/.exec(l.text)[0],d=SE(r,I);C!=d&&a.push({from:l.from,to:l.from+C.length,insert:d})}return a.length?[t,{changes:a,sequential:!0}]:t})}var ExA=Te.define(),vF=new si;function EiA(t){let e=t.firstChild,A=t.lastChild;return e&&e.toA)continue;if(o&&s.from=e&&c.to>A&&(o=c)}}return o}function QxA(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function Vw(t,e,A){for(let i of t.facet(ExA)){let n=i(t,e,A);if(n)return n}return hxA(t,e,A)}function hiA(t,e){let A=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return A>=i?void 0:{from:A,to:i}}var Xw=ki.define({map:hiA}),o3=ki.define({map:hiA});function QiA(t){let e=[];for(let{head:A}of t.state.selection.ranges)e.some(i=>i.from<=A&&i.to>=A)||e.push(t.lineBlockAt(A));return e}var uC=To.define({create(){return rt.none},update(t,e){t=t.map(e.changes);for(let A of e.effects)if(A.is(Xw)&&!uxA(t,A.value.from,A.value.to)){let{preparePlaceholder:i}=e.state.facet(bF),n=i?rt.replace({widget:new uF(i(e.state,A.value))}):ciA;t=t.update({add:[n.range(A.value.from,A.value.to)]})}else A.is(o3)&&(t=t.update({filter:(i,n)=>A.value.from!=i||A.value.to!=n,filterFrom:A.value.from,filterTo:A.value.to}));if(e.selection){let A=!1,{head:i}=e.selection.main;t.between(i,i,(n,o)=>{ni&&(A=!0)}),A&&(t=t.update({filterFrom:i,filterTo:i,filter:(n,o)=>o<=i||n>=i}))}return t},provide:t=>St.decorations.from(t),toJSON(t,e){let A=[];return t.between(0,e.doc.length,(i,n)=>{A.push(i,n)}),A},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let A=0;A{(!n||n.from>o)&&(n={from:o,to:r})}),n}function uxA(t,e,A){let i=!1;return t.between(e,e,(n,o)=>{n==e&&o==A&&(i=!0)}),i}function uiA(t,e){return t.field(uC,!1)?e:e.concat(ki.appendConfig.of(piA()))}var fxA=t=>{for(let e of QiA(t)){let A=Vw(t.state,e.from,e.to);if(A)return t.dispatch({effects:uiA(t.state,[Xw.of(A),fiA(t,A)])}),!0}return!1},mxA=t=>{if(!t.state.field(uC,!1))return!1;let e=[];for(let A of QiA(t)){let i=Zw(t.state,A.from,A.to);i&&e.push(o3.of(i),fiA(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function fiA(t,e,A=!0){let i=t.state.doc.lineAt(e.from).number,n=t.state.doc.lineAt(e.to).number;return St.announce.of(`${t.state.phrase(A?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var pxA=t=>{let{state:e}=t,A=[];for(let i=0;i{let e=t.state.field(uC,!1);if(!e||!e.size)return!1;let A=[];return e.between(0,t.state.doc.length,(i,n)=>{A.push(o3.of({from:i,to:n}))}),t.dispatch({effects:A}),!0};var miA=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:fxA},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:mxA},{key:"Ctrl-Alt-[",run:pxA},{key:"Ctrl-Alt-]",run:wxA}],DxA={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},bF=Te.define({combine(t){return zr(t,DxA)}});function piA(t){let e=[uC,vxA];return t&&e.push(bF.of(t)),e}function wiA(t,e){let{state:A}=t,i=A.facet(bF),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=Zw(t.state,s.from,s.to);a&&t.dispatch({effects:o3.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,e);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",A.phrase("folded code")),o.title=A.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var ciA=rt.replace({widget:new class extends nc{toDOM(t){return wiA(t,null)}}}),uF=class extends nc{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return wiA(e,this.value)}},yxA={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},i3=class extends ya{constructor(e,A){super(),this.config=e,this.open=A}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let A=document.createElement("span");return A.textContent=this.open?this.config.openText:this.config.closedText,A.title=e.state.phrase(this.open?"Fold line":"Unfold line"),A}};function DiA(t={}){let e=nA(nA({},yxA),t),A=new i3(e,!0),i=new i3(e,!1),n=Xn.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(D1)!=r.state.facet(D1)||r.startState.field(uC,!1)!=r.state.field(uC,!1)||Or(r.startState)!=Or(r.state)||e.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new os;for(let a of r.viewportLineBlocks){let c=Zw(r.state,a.from,a.to)?i:Vw(r.state,a.from,a.to)?A:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=e;return[n,Uw({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||Zn.empty},initialSpacer(){return new i3(e,!1)},domEventHandlers:Ne(nA({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=Zw(r.state,s.from,s.to);if(c)return r.dispatch({effects:o3.of(c)}),!0;let l=Vw(r.state,s.from,s.to);return l?(r.dispatch({effects:Xw.of(l)}),!0):!1}})}),piA()]}var vxA=St.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),kE=class t{constructor(e,A){this.specs=e;let i;function n(s){let a=xc.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof A.all=="string"?A.all:A.all?n(A.all):void 0,r=A.scope;this.scope=r instanceof Sg?s=>s.prop(ME)==r.data:r?s=>s==r:void 0,this.style=gF(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new xc(i):null,this.themeType=A.themeType}static define(e,A){return new t(e,A||{})}},fF=Te.define(),yiA=Te.define({combine(t){return t.length?[t[0]]:null}});function dF(t){let e=t.facet(fF);return e.length?e:t.facet(yiA)}function MF(t,e){let A=[bxA],i;return t instanceof kE&&(t.module&&A.push(St.styleModule.of(t.module)),i=t.themeType),e?.fallback?A.push(yiA.of(t)):i?A.push(fF.computeN([St.darkTheme],n=>n.facet(St.darkTheme)==(i=="dark")?[t]:[])):A.push(fF.of(t)),A}var mF=class{constructor(e){this.markCache=Object.create(null),this.tree=Or(e.state),this.decorations=this.buildDeco(e,dF(e.state)),this.decoratedTo=e.viewport.to}update(e){let A=Or(e.state),i=dF(e.state),n=i!=dF(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);A.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(A!=this.tree||e.viewportChanged||n)&&(this.tree=A,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=o.to)}buildDeco(e,A){if(!A||!this.tree.length)return rt.none;let i=new os;for(let{from:n,to:o}of e.visibleRanges)riA(this.tree,A,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=rt.mark({class:a})))},n,o);return i.finish()}},bxA=Bl.high(Xn.fromClass(mF,{decorations:t=>t.decorations})),viA=kE.define([{tag:we.meta,color:"#404740"},{tag:we.link,textDecoration:"underline"},{tag:we.heading,textDecoration:"underline",fontWeight:"bold"},{tag:we.emphasis,fontStyle:"italic"},{tag:we.strong,fontWeight:"bold"},{tag:we.strikethrough,textDecoration:"line-through"},{tag:we.keyword,color:"#708"},{tag:[we.atom,we.bool,we.url,we.contentSeparator,we.labelName],color:"#219"},{tag:[we.literal,we.inserted],color:"#164"},{tag:[we.string,we.deleted],color:"#a11"},{tag:[we.regexp,we.escape,we.special(we.string)],color:"#e40"},{tag:we.definition(we.variableName),color:"#00f"},{tag:we.local(we.variableName),color:"#30a"},{tag:[we.typeName,we.namespace],color:"#085"},{tag:we.className,color:"#167"},{tag:[we.special(we.variableName),we.macroName],color:"#256"},{tag:we.definition(we.propertyName),color:"#00c"},{tag:we.comment,color:"#940"},{tag:we.invalid,color:"#f00"}]),MxA=St.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),biA=1e4,MiA="()[]{}",kiA=Te.define({combine(t){return zr(t,{afterCursor:!0,brackets:MiA,maxScanDistance:biA,renderMatch:RxA})}}),kxA=rt.mark({class:"cm-matchingBracket"}),SxA=rt.mark({class:"cm-nonmatchingBracket"});function RxA(t){let e=[],A=t.matched?kxA:SxA;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}var LxA=To.define({create(){return rt.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],i=e.state.facet(kiA);for(let n of e.state.selection.ranges){if(!n.empty)continue;let o=Ql(e.state,n.head,-1,i)||n.head>0&&Ql(e.state,n.head-1,1,i)||i.afterCursor&&(Ql(e.state,n.head,1,i)||n.headSt.decorations.from(t)}),xxA=[LxA,MxA];function SiA(t={}){return[kiA.of(t),xxA]}var FxA=new si;function pF(t,e,A){let i=t.prop(e<0?si.openedBy:si.closedBy);if(i)return i;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function wF(t){let e=t.type.prop(FxA);return e?e(t.node):t}function Ql(t,e,A,i={}){let n=i.maxScanDistance||biA,o=i.brackets||MiA,r=Or(t),s=r.resolveInner(e,A);for(let a=s;a;a=a.parent){let c=pF(a.type,A,o);if(c&&a.from0?e>=l.from&&el.from&&e<=l.to))return NxA(t,e,A,a,l,c,o)}}return _xA(t,e,A,r,s.type,n,o)}function NxA(t,e,A,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,l=s?.cursor();if(l&&(A<0?l.childBefore(i.from):l.childAfter(i.to)))do if(A<0?l.to<=i.from:l.from>=i.to){if(c==0&&o.indexOf(l.type.name)>-1&&l.from0)return null;let c={from:A<0?e-1:e,to:A>0?e+1:e},l=t.doc.iterRange(e,A>0?t.doc.length:0),I=0;for(let C=0;!l.next().done&&C<=o;){let d=l.value;A<0&&(C+=d.length);let B=e+C*A;for(let E=A>0?0:d.length-1,Q=A>0?d.length:-1;E!=Q;E+=A){let u=r.indexOf(d[E]);if(!(u<0||i.resolveInner(B+E,1).type!=n))if(u%2==0==A>0)I++;else{if(I==1)return{start:c,end:{from:B+E,to:B+E+1},matched:u>>1==a>>1};I--}}A>0&&(C+=d.length)}return l.done?{start:c,matched:!1}:null}var GxA=Object.create(null),liA=[ws.none];var giA=[],IiA=Object.create(null),UxA=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])UxA[t]=KxA(GxA,e);function BF(t,e){giA.indexOf(t)>-1||(giA.push(t),console.warn(e))}function KxA(t,e){let A=[];for(let s of e.split(" ")){let a=[];for(let c of s.split(".")){let l=t[c]||we[c];l?typeof l=="function"?a.length?a=a.map(l):BF(c,`Modifier ${c} used at start of tag`):a.length?BF(c,`Tag ${c} used as modifier`):a=Array.isArray(l)?l:[l]:BF(c,`Unknown highlighting tag ${c}`)}for(let c of a)A.push(c)}if(!A.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+A.map(s=>s.id),o=IiA[n];if(o)return o.id;let r=IiA[n]=ws.define({id:liA.length,name:i,props:[Pw({[i]:A})]});return liA.push(r),r.id}var Ume={rtl:rt.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Wn.RTL}),ltr:rt.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Wn.LTR}),auto:rt.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var YxA=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),i=LF(t.state,A.from);return i.line?JxA(t):i.block?zxA(t):!1};function RF(t,e){return({state:A,dispatch:i})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(i(A.update(n)),!0):!1}}var JxA=RF(PxA,0);var TxA=RF(KiA,0);var zxA=RF((t,e)=>KiA(t,e,OxA(e)),0);function LF(t,e){let A=t.languageDataAt("commentTokens",e,1);return A.length?A[0]:{}}var r3=50;function HxA(t,{open:e,close:A},i,n){let o=t.sliceDoc(i-r3,i),r=t.sliceDoc(n,n+r3),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-e.length,c)==e&&r.slice(a,a+A.length)==A)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let l,I;n-i<=2*r3?l=I=t.sliceDoc(i,n):(l=t.sliceDoc(i,i+r3),I=t.sliceDoc(n-r3,n));let C=/^\s*/.exec(l)[0].length,d=/\s*$/.exec(I)[0].length,B=I.length-d-A.length;return l.slice(C,C+e.length)==e&&I.slice(B,B+A.length)==A?{open:{pos:i+C+e.length,margin:/\s/.test(l.charAt(C+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(I.charAt(B-1))?1:0}}:null}function OxA(t){let e=[];for(let A of t.selection.ranges){let i=t.doc.lineAt(A.from),n=A.to<=i.to?i:t.doc.lineAt(A.to);n.from>i.from&&n.from==A.to&&(n=A.to==i.to+1?i:t.doc.lineAt(A.to-1));let o=e.length-1;o>=0&&e[o].to>i.from?e[o].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function KiA(t,e,A=e.selection.ranges){let i=A.map(o=>LF(e,o.from).block);if(!i.every(o=>o))return null;let n=A.map((o,r)=>HxA(e,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:e.changes(A.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>I.from)){n=I.from;let C=/^\s*/.exec(I.text)[0].length,d=C==I.length,B=I.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:l,single:I}of i)(I||!l)&&o.push({from:s.from+c,insert:a+" "});let r=e.changes(o);return{changes:r,selection:e.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,l=c+a.length;r.text[l-r.from]==" "&&l++,o.push({from:c,to:l})}return{changes:o}}return null}function RE(t,e){return ie.create(t.ranges.map(e),t.mainIndex)}function Rg(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function fl({state:t,dispatch:e},A){let i=RE(t.selection,A);return i.eq(t.selection,!0)?!1:(e(Rg(t,i)),!0)}function AD(t,e){return ie.cursor(e?t.to:t.from)}function YiA(t,e){return fl(t,A=>A.empty?t.moveByChar(A,e):AD(A,e))}function Ds(t){return t.textDirectionAt(t.state.selection.main.head)==Wn.LTR}var JiA=t=>YiA(t,!Ds(t)),TiA=t=>YiA(t,Ds(t));function ziA(t,e){return fl(t,A=>A.empty?t.moveByGroup(A,e):AD(A,e))}var jxA=t=>ziA(t,!Ds(t)),qxA=t=>ziA(t,Ds(t));var qme=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function VxA(t,e,A){if(e.type.prop(A))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function eD(t,e,A){let i=Or(t).resolveInner(e.head),n=A?si.closedBy:si.openedBy;for(let a=e.head;;){let c=A?i.childAfter(a):i.childBefore(a);if(!c)break;VxA(t,c,n)?i=c:a=A?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=A?Ql(t,i.from,1):Ql(t,i.to,-1))&&r.matched?s=A?r.end.to:r.end.from:s=A?i.to:i.from,ie.cursor(s,A?-1:1)}var ZxA=t=>fl(t,e=>eD(t.state,e,!Ds(t))),WxA=t=>fl(t,e=>eD(t.state,e,Ds(t)));function HiA(t,e){return fl(t,A=>{if(!A.empty)return AD(A,e);let i=t.moveVertically(A,e);return i.head!=A.head?i:t.moveToLineBoundary(A,e)})}var OiA=t=>HiA(t,!1),PiA=t=>HiA(t,!0);function jiA(t){let e=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,e,A.height):AD(r,e));if(n.eq(i.selection))return!1;let o;if(A.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+A.marginTop,c=s.bottom-A.marginBottom;r&&r.top>a&&r.bottomqiA(t,!1),kF=t=>qiA(t,!0);function y1(t,e,A){let i=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?i.to:i.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&e.head!=i.from+o&&(n=ie.cursor(i.from+o))}return n}var XxA=t=>fl(t,e=>y1(t,e,!0)),$xA=t=>fl(t,e=>y1(t,e,!1)),AFA=t=>fl(t,e=>y1(t,e,!Ds(t))),eFA=t=>fl(t,e=>y1(t,e,Ds(t))),tFA=t=>fl(t,e=>ie.cursor(t.lineBlockAt(e.head).from,1)),iFA=t=>fl(t,e=>ie.cursor(t.lineBlockAt(e.head).to,-1));function nFA(t,e,A){let i=!1,n=RE(t.selection,o=>{let r=Ql(t,o.head,-1)||Ql(t,o.head,1)||o.head>0&&Ql(t,o.head-1,1)||o.headnFA(t,e,!1);function _c(t,e){let A=RE(t.state.selection,i=>{let n=e(i);return ie.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Rg(t.state,A)),!0)}function ViA(t,e){return _c(t,A=>t.moveByChar(A,e))}var ZiA=t=>ViA(t,!Ds(t)),WiA=t=>ViA(t,Ds(t));function XiA(t,e){return _c(t,A=>t.moveByGroup(A,e))}var rFA=t=>XiA(t,!Ds(t)),sFA=t=>XiA(t,Ds(t));var aFA=t=>_c(t,e=>eD(t.state,e,!Ds(t))),cFA=t=>_c(t,e=>eD(t.state,e,Ds(t)));function $iA(t,e){return _c(t,A=>t.moveVertically(A,e))}var AnA=t=>$iA(t,!1),enA=t=>$iA(t,!0);function tnA(t,e){return _c(t,A=>t.moveVertically(A,e,jiA(t).height))}var LiA=t=>tnA(t,!1),xiA=t=>tnA(t,!0),lFA=t=>_c(t,e=>y1(t,e,!0)),gFA=t=>_c(t,e=>y1(t,e,!1)),IFA=t=>_c(t,e=>y1(t,e,!Ds(t))),CFA=t=>_c(t,e=>y1(t,e,Ds(t))),dFA=t=>_c(t,e=>ie.cursor(t.lineBlockAt(e.head).from)),BFA=t=>_c(t,e=>ie.cursor(t.lineBlockAt(e.head).to)),FiA=({state:t,dispatch:e})=>(e(Rg(t,{anchor:0})),!0),NiA=({state:t,dispatch:e})=>(e(Rg(t,{anchor:t.doc.length})),!0),_iA=({state:t,dispatch:e})=>(e(Rg(t,{anchor:t.selection.main.anchor,head:0})),!0),GiA=({state:t,dispatch:e})=>(e(Rg(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),EFA=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),hFA=({state:t,dispatch:e})=>{let A=tD(t).map(({from:i,to:n})=>ie.range(i,Math.min(n+1,t.doc.length)));return e(t.update({selection:ie.create(A),userEvent:"select"})),!0},QFA=({state:t,dispatch:e})=>{let A=RE(t.selection,i=>{let n=Or(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return ie.range(s.to,s.from)}return i});return A.eq(t.selection)?!1:(e(Rg(t,A)),!0)},uFA=({state:t,dispatch:e})=>{let A=t.selection,i=null;return A.ranges.length>1?i=ie.create([A.main]):A.main.empty||(i=ie.create([ie.cursor(A.main.head)])),i?(e(Rg(t,i)),!0):!1};function s3(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=e(o);ar&&(A="delete.forward",a=$w(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=$w(t,r,!1),s=$w(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:ie.cursor(r,rn(t)))i.between(e,e,(n,o)=>{ne&&(e=A?o:n)});return e}var inA=(t,e,A)=>s3(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(A&&!e&&n>r.from&&ninA(t,!1,!0);var nnA=t=>inA(t,!0,!1),onA=(t,e)=>s3(t,A=>{let i=A.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(e?o.to:o.from)){i==A.head&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=fr(o.text,i-o.from,e)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),l=r(c);if(s!=null&&l!=s)break;(c!=" "||i!=A.head)&&(s=l),i=a}return i}),rnA=t=>onA(t,!1),fFA=t=>onA(t,!0),mFA=t=>s3(t,e=>{let A=t.lineBlockAt(e.head).to;return e.heads3(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),wFA=t=>s3(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:qi.of(["",""])},range:ie.cursor(i.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},yFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:fr(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:fr(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:ie.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function tD(t){let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),A>=n.number){let r=e[e.length-1];r.to=o.to,r.ranges.push(i)}else e.push({from:n.from,to:o.to,ranges:[i]});A=o.number+1}return e}function snA(t,e,A){if(t.readOnly)return!1;let i=[],n=[];for(let o of tD(t)){if(A?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(A?o.to+1:o.from-1),s=r.length+1;if(A){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(ie.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(ie.range(a.anchor-s,a.head-s))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:ie.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var vFA=({state:t,dispatch:e})=>snA(t,e,!1),bFA=({state:t,dispatch:e})=>snA(t,e,!0);function anA(t,e,A){if(t.readOnly)return!1;let i=[];for(let n of tD(t))A?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var MFA=({state:t,dispatch:e})=>anA(t,e,!1),kFA=({state:t,dispatch:e})=>anA(t,e,!0),SFA=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(tD(e).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(A);return t.dispatch({changes:A,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function RFA(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=Or(t).resolveInner(e),i=A.childBefore(e),n=A.childAfter(e),o;return i&&n&&i.to<=e&&n.from>=e&&(o=i.type.prop(si.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var UiA=cnA(!1),LFA=cnA(!0);function cnA(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:o,to:r}=n,s=e.doc.lineAt(o),a=!t&&o==r&&RFA(e,o);t&&(o=r=(r<=s.to?s:e.doc.lineAt(r)).to);let c=new QC(e,{simulateBreak:o,simulateDoubleBreak:!!a}),l=Ww(c,o);for(l==null&&(l=G0(/^\s*/.exec(e.doc.lineAt(o).text)[0],e.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>A&&(i.empty||i.to>s.from)&&(e(s,n,i),A=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:ie.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var xFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),i=new QC(t,{overrideIndentation:o=>{let r=A[o];return r??-1}}),n=xF(t,(o,r,s)=>{let a=Ww(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],l=SE(t,a);(c!=l||s.fromt.readOnly?!1:(e(t.update(xF(t,(A,i)=>{i.push({from:A.from,insert:t.facet(fC)})}),{userEvent:"input.indent"})),!0),gnA=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(xF(t,(A,i)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let o=G0(n,t.tabSize),r=0,s=SE(t,Math.max(0,o-ul(t)));for(;r(t.setTabFocusMode(),!0);var NFA=[{key:"Ctrl-b",run:JiA,shift:ZiA,preventDefault:!0},{key:"Ctrl-f",run:TiA,shift:WiA},{key:"Ctrl-p",run:OiA,shift:AnA},{key:"Ctrl-n",run:PiA,shift:enA},{key:"Ctrl-a",run:tFA,shift:dFA},{key:"Ctrl-e",run:iFA,shift:BFA},{key:"Ctrl-d",run:nnA},{key:"Ctrl-h",run:SF},{key:"Ctrl-k",run:mFA},{key:"Ctrl-Alt-h",run:rnA},{key:"Ctrl-o",run:DFA},{key:"Ctrl-t",run:yFA},{key:"Ctrl-v",run:kF}],_FA=[{key:"ArrowLeft",run:JiA,shift:ZiA,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:jxA,shift:rFA,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:AFA,shift:IFA,preventDefault:!0},{key:"ArrowRight",run:TiA,shift:WiA,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:qxA,shift:sFA,preventDefault:!0},{mac:"Cmd-ArrowRight",run:eFA,shift:CFA,preventDefault:!0},{key:"ArrowUp",run:OiA,shift:AnA,preventDefault:!0},{mac:"Cmd-ArrowUp",run:FiA,shift:_iA},{mac:"Ctrl-ArrowUp",run:RiA,shift:LiA},{key:"ArrowDown",run:PiA,shift:enA,preventDefault:!0},{mac:"Cmd-ArrowDown",run:NiA,shift:GiA},{mac:"Ctrl-ArrowDown",run:kF,shift:xiA},{key:"PageUp",run:RiA,shift:LiA},{key:"PageDown",run:kF,shift:xiA},{key:"Home",run:$xA,shift:gFA,preventDefault:!0},{key:"Mod-Home",run:FiA,shift:_iA},{key:"End",run:XxA,shift:lFA,preventDefault:!0},{key:"Mod-End",run:NiA,shift:GiA},{key:"Enter",run:UiA,shift:UiA},{key:"Mod-a",run:EFA},{key:"Backspace",run:SF,shift:SF},{key:"Delete",run:nnA},{key:"Mod-Backspace",mac:"Alt-Backspace",run:rnA},{key:"Mod-Delete",mac:"Alt-Delete",run:fFA},{mac:"Mod-Backspace",run:pFA},{mac:"Mod-Delete",run:wFA}].concat(NFA.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),InA=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:ZxA,shift:aFA},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:WxA,shift:cFA},{key:"Alt-ArrowUp",run:vFA},{key:"Shift-Alt-ArrowUp",run:MFA},{key:"Alt-ArrowDown",run:bFA},{key:"Shift-Alt-ArrowDown",run:kFA},{key:"Escape",run:uFA},{key:"Mod-Enter",run:LFA},{key:"Alt-l",mac:"Ctrl-l",run:hFA},{key:"Mod-i",run:QFA,preventDefault:!0},{key:"Mod-[",run:gnA},{key:"Mod-]",run:lnA},{key:"Mod-Alt-\\",run:xFA},{key:"Shift-Mod-k",run:SFA},{key:"Shift-Mod-\\",run:oFA},{key:"Mod-/",run:YxA},{key:"Alt-A",run:TxA},{key:"Ctrl-m",mac:"Shift-Alt-m",run:FFA}].concat(_FA),CnA={key:"Tab",run:lnA,shift:gnA};var oD=class{constructor(e,A,i){this.from=e,this.to=A,this.diagnostic=i}},mC=class t{constructor(e,A,i){this.diagnostics=e,this.panel=A,this.selected=i}static init(e,A,i){let n=i.facet(Lg).markerFilter;n&&(e=n(e,i));let o=e.slice().sort((l,I)=>l.from-I.from||l.to-I.to),r=new os,s=[],a=0;for(let l=0;;){let I=l==o.length?null:o[l];if(!I&&!s.length)break;let C,d;for(s.length?(C=a,d=s.reduce((E,Q)=>Math.min(E,Q.to),I&&I.from>C?I.from:1e8)):(C=I.from,d=I.to,s.push(I),l++);lE.from||E.to==C))s.push(E),l++,d=Math.min(E.to,d);else{d=Math.min(E.from,d);break}}let B=wnA(s);if(s.some(E=>E.from==E.to||E.from==E.to-1&&i.doc.lineAt(E.from).to==E.from))r.add(C,C,rt.widget({widget:new FF(B),diagnostics:s.slice()}));else{let E=s.reduce((Q,u)=>u.markClass?Q+" "+u.markClass:Q,"");r.add(C,d,rt.mark({class:"cm-lintRange cm-lintRange-"+B+E,diagnostics:s.slice(),inclusiveEnd:s.some(Q=>Q.to>d)}))}a=d;for(let E=0;E{if(!(e&&r.diagnostics.indexOf(e)<0))if(!i)i=new oD(n,o,e||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new oD(i.from,o,i.diagnostic)}}),i}function BnA(t,e){let A=e.pos,i=e.end||A,n=t.state.facet(Lg).hideOn(t,A,i);if(n!=null)return n;let o=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(r=>r.is(aD))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function EnA(t,e){return t.field(oc,!1)?e:e.concat(ki.appendConfig.of(ynA))}function GFA(t,e){return{effects:EnA(t,[aD.of(e)])}}var aD=ki.define(),_F=ki.define(),hnA=ki.define(),oc=To.define({create(){return new mC(rt.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let A=t.diagnostics.map(e.changes),i=null,n=t.panel;if(t.selected){let o=e.changes.mapPos(t.selected.from,1);i=LE(A,t.selected.diagnostic,o)||LE(A,null,o)}!A.size&&n&&e.state.facet(Lg).autoPanel&&(n=null),t=new mC(A,n,i)}for(let A of e.effects)if(A.is(aD)){let i=e.state.facet(Lg).autoPanel?A.value.length?a3.open:null:t.panel;t=mC.init(A.value,i,e.state)}else A.is(_F)?t=new mC(t.diagnostics,A.value?a3.open:null,t.selected):A.is(hnA)&&(t=new mC(t.diagnostics,t.panel,A.value));return t},provide:t=>[dC.from(t,e=>e.panel),St.decorations.from(t,e=>e.diagnostics)]});var UFA=rt.mark({class:"cm-lintRange cm-lintRange-active"});function KFA(t,e,A){let{diagnostics:i}=t.state.field(oc),n,o=-1,r=-1;i.between(e-(A<0?1:0),e+(A>0?1:0),(a,c,{spec:l})=>{if(e>=a&&e<=c&&(a==c||(e>a||A>0)&&(epnA(t,A,!1)))}var YFA=t=>{let e=t.state.field(oc,!1);(!e||!e.panel)&&t.dispatch({effects:EnA(t.state,[_F.of(!0)])});let A=BC(t,a3.open);return A&&A.dom.querySelector(".cm-panel-lint ul").focus(),!0},dnA=t=>{let e=t.state.field(oc,!1);return!e||!e.panel?!1:(t.dispatch({effects:_F.of(!1)}),!0)},JFA=t=>{let e=t.state.field(oc,!1);if(!e)return!1;let A=t.state.selection.main,i=e.diagnostics.iter(A.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==A.from&&i.to==A.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var unA=[{key:"Mod-Shift-m",run:YFA,preventDefault:!0},{key:"F8",run:JFA}],TFA=Xn.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Lg);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(GFA(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{Hr(this.view.state,i)})}}update(t){let e=t.state.facet(Lg);(t.docChanged||e!=t.startState.facet(Lg)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function zFA(t,e,A){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?e(i):n=setTimeout(()=>e(i),200)},A)}var Lg=Te.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},zr(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,A)=>e?A?i=>e(i)||A(i):e:A}))}});function fnA(t,e={}){return[Lg.of({source:t,config:e}),TFA,ynA]}function mnA(t){let e=[];if(t)A:for(let{name:A}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){e.push(n);continue A}}e.push("")}return e}function pnA(t,e,A){var i;let n=A?mnA(e.actions):[];return kn("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},kn("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let d=LE(t.state.field(oc).diagnostics,e);d&&o.apply(t,d.from,d.to)},{name:c}=o,l=n[r]?c.indexOf(n[r]):-1,I=l<0?c:[c.slice(0,l),kn("u",c.slice(l,l+1)),c.slice(l+1)];return kn("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${l<0?"":` (access key "${n[r]})"`}.`},I)}),e.source&&kn("div",{class:"cm-diagnosticSource"},e.source))}var FF=class extends nc{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return kn("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},rD=class{constructor(e,A){this.diagnostic=A,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=pnA(e,A,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},a3=class t{constructor(e){this.view=e,this.items=[];let A=n=>{if(n.keyCode==27)dnA(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=mnA(o.actions);for(let s=0;s{for(let o=0;odnA(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(oc).selected;if(!e)return-1;for(let A=0;A{for(let l of c.diagnostics){if(r.has(l))continue;r.add(l);let I=-1,C;for(let d=i;di&&(this.items.splice(i,I-i),n=!0)),A&&C.diagnostic==A.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let e=this.list.firstChild;function A(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)A();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)A()}moveSelection(e){if(this.selectedIndex<0)return;let A=this.view.state.field(oc),i=LE(A.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:hnA.of(i)})}static open(e){return new t(e)}};function nD(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function iD(t){return nD(``,'width="6" height="3"')}var HFA=St.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:iD("#d11")},".cm-lintRange-warning":{backgroundImage:iD("orange")},".cm-lintRange-info":{backgroundImage:iD("#999")},".cm-lintRange-hint":{backgroundImage:iD("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function OFA(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function wnA(t){let e="hint",A=1;for(let i of t){let n=OFA(i.severity);n>A&&(A=n,e=i.severity)}return e}var sD=class extends ya{constructor(e){super(),this.diagnostics=e,this.severity=wnA(e)}toDOM(e){let A=document.createElement("div");A.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=e.state.facet(cD).tooltipFilter;return n&&(i=n(i,e.state)),i.length&&(A.onmouseover=()=>jFA(e,A,i)),A}};function PFA(t,e){let A=i=>{let n=e.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,PFA(t,e)}let{hoverTime:n}=t.state.facet(cD),o=setTimeout(i,n);e.onmouseout=()=>{clearTimeout(o),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function qFA(t,e){let A=Object.create(null);for(let n of e){let o=t.lineAt(n.from);(A[o.from]||(A[o.from]=[])).push(n)}let i=[];for(let n in A)i.push(new sD(A[n]).range(+n));return Zn.of(i,!0)}var VFA=Uw({class:"cm-gutter-lint",markers:t=>t.state.field(NF),widgetMarker:(t,e,A)=>{let i=[];return t.state.field(NF).between(A.from,A.to,(n,o,r)=>{n>A.from&&ni.is(GF)?i.value:A,t)},provide:t=>DE.from(t)}),ZFA=St.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:nD('')},".cm-lint-marker-warning":{content:nD('')},".cm-lint-marker-error":{content:nD('')}}),ynA=[oc,St.decorations.compute([oc],t=>{let{selected:e,panel:A}=t.field(oc);return!e||!A||e.from==e.to?rt.none:rt.set([UFA.range(e.from,e.to)])}),jtA(KFA,{hideOn:BnA}),HFA],cD=Te.define({combine(t){return zr(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function vnA(t={}){return[cD.of(t),NF,VFA,ZFA,DnA]}var KF=class t{constructor(e,A,i,n,o,r,s,a,c,l=0,I){this.p=e,this.stack=A,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=l,this.parent=I}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,i=0){let n=e.parser.context;return new t(e,[],A,i,i,0,[],0,n?new lD(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let i=e>>19,n=e&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(e,A,i,n=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(A==i)return;if(r.buffer[s-2]>=A){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,A,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=e,this.buffer[r+1]=A,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(e,A,i,n){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let o=e,{parser:r}=this.p;(n>this.pos||A<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(A,i),A<=r.maxNode&&this.buffer.push(A,i,n,4)}else this.pos=n,this.shiftContext(A,i),A<=this.p.parser.maxNode&&this.buffer.push(A,i,n,4)}apply(e,A,i,n){e&65536?this.reduce(e):this.shift(e,A,i,n)}useNode(e,A){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let i=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,i?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new YF(this);;){let i=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(i==0)return!1;if((i&65536)==0)return!0;A.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(A[o],r)}A=n}let i=[];for(let n=0;n>19,n=A&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;A=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],i=(n,o)=>{if(!A.includes(n))return A.push(n),e.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},lD=class{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}},YF=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}},JF=class t{constructor(e,A,i){this.stack=e,this.pos=A,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new t(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function c3(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}A?A[n++]=o:A=new e(o)}return A}var xE=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},bnA=new xE,TF=class{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=bnA,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let i=this.range,n=this.rangeIndex,o=this.pos+e;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,i,n;if(A>=0&&A=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(e,A=0){let i=A?this.resolveOffset(A,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=bnA,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let i="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return i}},v1=class{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:i}=A.p;LnA(this.data,e,A,this.id,i.data,i.tokenPrecTable)}};v1.prototype.contextual=v1.prototype.fallback=v1.prototype.extend=!1;var zF=class{constructor(e,A,i){this.precTable=A,this.elseToken=i,this.data=typeof e=="string"?c3(e):e}token(e,A){let i=e.pos,n=0;for(;;){let o=e.next<0,r=e.resolveOffset(1,1);if(LnA(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}};zF.prototype.contextual=v1.prototype.fallback=v1.prototype.extend=!1;function LnA(t,e,A,i,n,o){let r=0,s=1<0){let B=t[d];if(a.allows(B)&&(e.token.value==-1||e.token.value==B||XFA(B,e.token.value,n,o))){e.acceptToken(B);break}}let l=e.next,I=0,C=t[r+2];if(e.next<0&&C>I&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue A}for(;I>1,B=c+d+(d<<1),E=t[B],Q=t[B+1]||65536;if(l=Q)I=d+1;else{r=t[B+2],e.advance();continue A}}break}}function MnA(t,e,A){for(let i=e,n;(n=t[i])!=65535;i++)if(n==A)return i-e;return-1}function XFA(t,e,A,i){let n=MnA(A,i,e);return n<0||MnA(A,i,t)e)&&!i.type.isError)return A<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(A<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return A<0?0:t.length}}var HF=class{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?knA(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?knA(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof Cr){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[A]++,this.nextStart=r+o.length}}},OF=class{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new xE)}getActions(e){let A=0,i=null,{parser:n}=e.p,{tokenizers:o}=n,r=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cI.end+25&&(a=Math.max(I.lookAhead,a)),I.value!=0)){let C=A;if(I.extended>-1&&(A=this.addActions(e,I.extended,I.end,A)),A=this.addActions(e,I.value,I.end,A),!l.extend&&(i=I,A>C))break}}for(;this.actions.length>A;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new xE,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,A=this.addActions(e,i.value,i.end,A)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new xE,{pos:i,p:n}=e;return A.start=i,A.end=Math.min(i+1,n.stream.end),A.value=i==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,i){let n=this.stream.clipPos(i.pos);if(A.token(this.stream.reset(n,e),i),e.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?e.value=s>>1:e.extended=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,i,n){for(let o=0;oe.bufferLength*4?new HF(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rA)i.push(s);else{if(this.advanceStack(s,i,e))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&$FA(n);if(r)return rc&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw rc&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return rc&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>A)&&this.recovering--}else if(i.length>1){A:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue A}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,l=c?e.curContext.hash:0;for(let I=this.fragments.nodeAt(n);I;){let C=this.parser.nodeSet.types[I.type.id]==I.type?o.getGoto(e.state,I.type.id):-1;if(C>-1&&I.length&&(!c||(I.prop(si.contextHash)||0)==l))return e.useNode(I,C),rc&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(I.type.id)})`),!0;if(!(I instanceof Cr)||I.children.length==0||I.positions[0]>0)break;let d=I.children[0];if(d instanceof Cr&&I.positions[0]==0)I=d;else break}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),rc&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cn?A.push(B):i.push(B)}return!1}advanceFully(e,A){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return SnA(e,A),!0}}runRecovery(e,A,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),rc&&console.log(l+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let I=s.split(),C=l;for(let d=0;I.forceReduce()&&d<10&&(rc&&console.log(C+this.stackID(I)+" (via force-reduce)"),!this.advanceFully(I,i));d++)rc&&(C=this.stackID(I)+" -> ");for(let d of s.recoverByInsert(a))rc&&console.log(l+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),rc&&console.log(l+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),SnA(s,i)):(!n||n.scoree.topRules[s][1]),n=[];for(let s=0;s=0)o(l,a,s[c++]);else{let I=s[c+-l];for(let C=-l;C>0;C--)o(s[c++],a,I);c++}}}this.nodeSet=new W4(A.map((s,a)=>ws.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=c3(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new v1(r,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,i){let n=new PF(this,e,A,i);for(let o of this.wrappers)n=o(n,e,A,i);return n}getGoto(e,A,i=!1){let n=this.goto;if(A>=n[0])return-1;for(let o=n[A+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(e,A){return!!this.allActions(e,i=>i==A?!0:null)}allActions(e,A){let i=this.stateSlot(e,4),n=i?A(i):void 0;for(let o=this.stateSlot(e,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=Y0(this.data,o+2);else break;n=A(Y0(this.data,o+1))}return n}nextStates(e){let A=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=Y0(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];A.some((o,r)=>r&1&&o==n)||A.push(this.data[i],n)}}return A}configure(e){let A=Object.assign(Object.create(t.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=i}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(i=>{let n=e.tokenizers.find(o=>o.from==i);return n?n.to:i})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=e.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return A.specializers[n]=RnA(r),r})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),i=A.map(()=>!1);if(e)for(let o of e.split(" ")){let r=A.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,i)<<1|e}return t.get}var ANA=Pw({String:we.string,Number:we.number,"True False":we.bool,PropertyName:we.propertyName,Null:we.null,", :":we.separator,"[ ]":we.squareBracket,"{ }":we.brace}),xnA=gD.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[ANA],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var eNA=jw.define({name:"json",parser:xnA.configure({props:[DF.add({Object:yF({except:/^\s*\}/}),Array:yF({except:/^\s*\]/})}),vF.add({"Object Array":EiA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function FnA(){return new qw(eNA)}var NnA=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,M1=class{constructor(e,A,i=0,n=e.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(NnA(s)):NnA,this.query=this.normalize(A)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return rs(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let A=b4(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=tc(e);let n=this.normalize(A);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let A=this.matchPos<=this.to&&this.re.exec(this.curLine);if(A){let i=this.curLineStart+A.index,n=i+A[0].length;if(this.matchPos=hD(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=A){let s=new t(A,e.sliceString(A,i));return qF.set(e,s),s}if(n.from==A&&n.to==i)return n;let{text:o,from:r}=n;return r>A&&(o=e.sliceString(A,r)+o,r=A),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,A=this.re.exec(this.flat.text);if(A&&!A[0]&&A.index==e&&(this.re.lastIndex=e+1,A=this.re.exec(this.flat.text)),A){let i=this.flat.from+A.index,n=i+A[0].length;if((this.flat.to>=this.to||A.index+A[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this.matchPos=hD(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=BD.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(dD.prototype[Symbol.iterator]=ED.prototype[Symbol.iterator]=function(){return this});function tNA(t){try{return new RegExp(t,eN),!0}catch{return!1}}function hD(t,e){if(e>=t.length)return e;let A=t.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function VF(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),A=kn("input",{class:"cm-textfield",name:"line",value:e}),i=kn("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:l3.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},kn("label",t.state.phrase("Go to line"),": ",A)," ",kn("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),kn("button",{name:"close",onclick:()=>{t.dispatch({effects:l3.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,l,I]=o,C=l?+l.slice(1):0,d=c?+c:s.number;if(c&&I){let Q=d/100;a&&(Q=Q*(a=="-"?-1:1)+s.number/r.doc.lines),d=Math.round(r.doc.lines*Q)}else c&&a&&(d=d*(a=="-"?-1:1)+s.number);let B=r.doc.line(Math.max(1,Math.min(r.doc.lines,d))),E=ie.cursor(B.from+Math.max(0,Math.min(C,B.length)));t.dispatch({effects:[l3.of(!1),St.scrollIntoView(E.from,{y:"center"})],selection:E}),t.focus()}return{dom:i}}var l3=ki.define(),_nA=To.define({create(){return!0},update(t,e){for(let A of e.effects)A.is(l3)&&(t=A.value);return t},provide:t=>dC.from(t,e=>e?VF:null)}),iNA=t=>{let e=BC(t,VF);if(!e){let A=[l3.of(!0)];t.state.field(_nA,!1)==null&&A.push(ki.appendConfig.of([_nA,nNA])),t.dispatch({effects:A}),e=BC(t,VF)}return e&&e.dom.querySelector("input").select(),!0},nNA=St.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),oNA={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},YnA=Te.define({combine(t){return zr(t,oNA,{highlightWordAroundCursor:(e,A)=>e||A,minSelectionLength:Math.min,maxMatches:Math.min})}});function JnA(t){let e=[lNA,cNA];return t&&e.push(YnA.of(t)),e}var rNA=rt.mark({class:"cm-selectionMatch"}),sNA=rt.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function GnA(t,e,A,i){return(A==0||t(e.sliceDoc(A-1,A))!=Vn.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=Vn.Word)}function aNA(t,e,A,i){return t(e.sliceDoc(A,A+1))==Vn.Word&&t(e.sliceDoc(i-1,i))==Vn.Word}var cNA=Xn.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(YnA),{state:A}=t,i=A.selection;if(i.ranges.length>1)return rt.none;let n=i.main,o,r=null;if(n.empty){if(!e.highlightWordAroundCursor)return rt.none;let a=A.wordAt(n.head);if(!a)return rt.none;r=A.charCategorizer(n.head),o=A.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return rt.none;if(e.wholeWords){if(o=A.sliceDoc(n.from,n.to),r=A.charCategorizer(n.head),!(GnA(r,A,n.from,n.to)&&aNA(r,A,n.from,n.to)))return rt.none}else if(o=A.sliceDoc(n.from,n.to),!o)return rt.none}let s=[];for(let a of t.visibleRanges){let c=new M1(A.doc,o,a.from,a.to);for(;!c.next().done;){let{from:l,to:I}=c.value;if((!r||GnA(r,A,l,I))&&(n.empty&&l<=n.from&&I>=n.to?s.push(sNA.range(l,I)):(l>=n.to||I<=n.from)&&s.push(rNA.range(l,I)),s.length>e.maxMatches))return rt.none}}return rt.set(s)}},{decorations:t=>t.decorations}),lNA=St.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),gNA=({state:t,dispatch:e})=>{let{selection:A}=t,i=ie.create(A.ranges.map(n=>t.wordAt(n.head)||ie.cursor(n.head)),A.mainIndex);return i.eq(A)?!1:(e(t.update({selection:i})),!0)};function INA(t,e){let{main:A,ranges:i}=t.selection,n=t.wordAt(A.head),o=n&&n.from==A.from&&n.to==A.to;for(let r=!1,s=new M1(t.doc,e,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new M1(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var CNA=({state:t,dispatch:e})=>{let{ranges:A}=t.selection;if(A.some(o=>o.from===o.to))return gNA({state:t,dispatch:e});let i=t.sliceDoc(A[0].from,A[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=INA(t,i);return n?(e(t.update({selection:t.selection.addRange(ie.range(n.from,n.to),!1),effects:St.scrollIntoView(n.to)})),!0):!1},pC=Te.define({combine(t){return zr(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new $F(e),scrollToMatch:e=>St.scrollIntoView(e)})}});function TnA(t){return t?[pC.of(t),AN]:AN}var QD=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||tNA(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(A,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new WF(this):new ZF(this)}getCursor(e,A=0,i){let n=e.doc?e:Ir.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?NE(this,n,A,i):FE(this,n,A,i)}},uD=class{constructor(e){this.spec=e}};function FE(t,e,A,i){return new M1(e.doc,t.unquoted,A,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?dNA(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function dNA(t,e){return(A,i,n,o)=>((o>A||o+n.length=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=FE(this.spec,e,Math.max(0,A-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function NE(t,e,A,i){return new dD(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?BNA(e.charCategorizer(e.selection.main.head)):void 0},A,i)}function fD(t,e){return t.slice(fr(t,e,!1),e)}function mD(t,e){return t.slice(e,fr(t,e))}function BNA(t){return(e,A,i)=>!i[0].length||(t(fD(i.input,i.index))!=Vn.Word||t(mD(i.input,i.index))!=Vn.Word)&&(t(mD(i.input,i.index+i[0].length))!=Vn.Word||t(fD(i.input,i.index+i[0].length))!=Vn.Word)}var WF=class extends uD{nextMatch(e,A,i){let n=NE(this.spec,e,i,e.doc.length).next();return n.done&&(n=NE(this.spec,e,0,A).next()),n.done?null:n.value}prevMatchInRange(e,A,i){for(let n=1;;n++){let o=Math.max(A,i-n*1e4),r=NE(this.spec,e,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==A||s.from>o+10))return s;if(o==A)return null}}prevMatch(e,A,i){return this.prevMatchInRange(e,0,A)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(A,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=NE(this.spec,e,Math.max(0,A-250),Math.min(i+250,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},I3=ki.define(),tN=ki.define(),b1=To.define({create(t){return new g3(XF(t).create(),null)},update(t,e){for(let A of e.effects)A.is(I3)?t=new g3(A.value.create(),t.panel):A.is(tN)&&(t=new g3(t.query,A.value?iN:null));return t},provide:t=>dC.from(t,e=>e.panel)});var g3=class{constructor(e,A){this.query=e,this.panel=A}},ENA=rt.mark({class:"cm-searchMatch"}),hNA=rt.mark({class:"cm-searchMatch cm-searchMatch-selected"}),QNA=Xn.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(b1))}update(t){let e=t.state.field(b1);(e!=t.startState.field(b1)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return rt.none;let{view:A}=this,i=new os;for(let n=0,o=A.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(A.state,s,a,(c,l)=>{let I=A.state.selection.ranges.some(C=>C.from==c&&C.to==l);i.add(c,l,I?hNA:ENA)})}return i.finish()}},{decorations:t=>t.decorations});function C3(t){return e=>{let A=e.state.field(b1,!1);return A&&A.query.spec.valid?t(e,A):DD(e)}}var pD=C3((t,{query:e})=>{let{to:A}=t.state.selection.main,i=e.nextMatch(t.state,A,A);if(!i)return!1;let n=ie.single(i.from,i.to),o=t.state.facet(pC);return t.dispatch({selection:n,effects:[nN(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),HnA(t),!0}),wD=C3((t,{query:e})=>{let{state:A}=t,{from:i}=A.selection.main,n=e.prevMatch(A,i,i);if(!n)return!1;let o=ie.single(n.from,n.to),r=t.state.facet(pC);return t.dispatch({selection:o,effects:[nN(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),HnA(t),!0}),uNA=C3((t,{query:e})=>{let A=e.matchAll(t.state,1e3);return!A||!A.length?!1:(t.dispatch({selection:ie.create(A.map(i=>ie.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),fNA=({state:t,dispatch:e})=>{let A=t.selection;if(A.ranges.length>1||A.main.empty)return!1;let{from:i,to:n}=A.main,o=[],r=0;for(let s=new M1(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(ie.range(s.value.from,s.value.to))}return e(t.update({selection:ie.create(o,r),userEvent:"select.search.matches"})),!0},UnA=C3((t,{query:e})=>{let{state:A}=t,{from:i,to:n}=A.selection.main;if(A.readOnly)return!1;let o=e.nextMatch(A,i,i);if(!o)return!1;let r=o,s=[],a,c,l=[];r.from==i&&r.to==n&&(c=A.toText(e.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=e.nextMatch(A,r.from,r.to),l.push(St.announce.of(A.phrase("replaced match on line $",A.doc.lineAt(i).number)+".")));let I=t.state.changes(s);return r&&(a=ie.single(r.from,r.to).map(I),l.push(nN(t,r)),l.push(A.facet(pC).scrollToMatch(a.main,t))),t.dispatch({changes:I,selection:a,effects:l,userEvent:"input.replace"}),!0}),mNA=C3((t,{query:e})=>{if(t.state.readOnly)return!1;let A=e.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:e.getReplacement(n)}});if(!A.length)return!1;let i=t.state.phrase("replaced $ matches",A.length)+".";return t.dispatch({changes:A,effects:St.announce.of(i),userEvent:"input.replace.all"}),!0});function iN(t){return t.state.facet(pC).createPanel(t)}function XF(t,e){var A,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(e&&!a)return e;let c=t.facet(pC);return new QD({search:((A=e?.literal)!==null&&A!==void 0?A:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=e?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=e?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=e?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function znA(t){let e=BC(t,iN);return e&&e.dom.querySelector("[main-field]")}function HnA(t){let e=znA(t);e&&e==t.root.activeElement&&e.select()}var DD=t=>{let e=t.state.field(b1,!1);if(e&&e.panel){let A=znA(t);if(A&&A!=t.root.activeElement){let i=XF(t.state,e.query.spec);i.valid&&t.dispatch({effects:I3.of(i)}),A.focus(),A.select()}}else t.dispatch({effects:[tN.of(!0),e?I3.of(XF(t.state,e.query.spec)):ki.appendConfig.of(AN)]});return!0},yD=t=>{let e=t.state.field(b1,!1);if(!e||!e.panel)return!1;let A=BC(t,iN);return A&&A.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:tN.of(!1)}),!0},OnA=[{key:"Mod-f",run:DD,scope:"editor search-panel"},{key:"F3",run:pD,shift:wD,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:pD,shift:wD,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:yD,scope:"editor search-panel"},{key:"Mod-Shift-l",run:fNA},{key:"Mod-Alt-g",run:iNA},{key:"Mod-d",run:CNA,preventDefault:!0}],$F=class{constructor(e){this.view=e;let A=this.query=e.state.field(b1).query.spec;this.commit=this.commit.bind(this),this.searchField=kn("input",{value:A.search,placeholder:sc(e,"Find"),"aria-label":sc(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=kn("input",{value:A.replace,placeholder:sc(e,"Replace"),"aria-label":sc(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=kn("input",{type:"checkbox",name:"case",form:"",checked:A.caseSensitive,onchange:this.commit}),this.reField=kn("input",{type:"checkbox",name:"re",form:"",checked:A.regexp,onchange:this.commit}),this.wordField=kn("input",{type:"checkbox",name:"word",form:"",checked:A.wholeWord,onchange:this.commit});function i(n,o,r){return kn("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=kn("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>pD(e),[sc(e,"next")]),i("prev",()=>wD(e),[sc(e,"previous")]),i("select",()=>uNA(e),[sc(e,"all")]),kn("label",null,[this.caseField,sc(e,"match case")]),kn("label",null,[this.reField,sc(e,"regexp")]),kn("label",null,[this.wordField,sc(e,"by word")]),...e.state.readOnly?[]:[kn("br"),this.replaceField,i("replace",()=>UnA(e),[sc(e,"replace")]),i("replaceAll",()=>mNA(e),[sc(e,"replace all")])],kn("button",{name:"close",onclick:()=>yD(e),"aria-label":sc(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new QD({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:I3.of(e)}))}keydown(e){NtA(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?wD:pD)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),UnA(this.view))}update(e){for(let A of e.transactions)for(let i of A.effects)i.is(I3)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(pC).top}};function sc(t,e){return t.state.phrase(e)}var ID=30,CD=/[\s\.,:;?!]/;function nN(t,{from:e,to:A}){let i=t.state.doc.lineAt(e),n=t.state.doc.lineAt(A).to,o=Math.max(i.from,e-ID),r=Math.min(n,A+ID),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-ID;a--)if(!CD.test(s[a-1])&&CD.test(s[a])){s=s.slice(0,a);break}}return St.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var pNA=St.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),AN=[b1,Bl.low(QNA),pNA];var bD=class{constructor(e,A,i,n){this.state=e,this.pos=A,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let A=Or(this.state).resolveInner(this.pos,-1);for(;A&&e.indexOf(A.name)<0;)A=A.parent;return A?{from:A.from,to:this.pos,text:this.state.sliceDoc(A.from,this.pos),type:A.type}:null}matchBefore(e){let A=this.state.doc.lineAt(this.pos),i=Math.max(A.from,this.pos-250),n=A.text.slice(i-A.from,this.pos-A.from),o=n.search(AoA(e,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,A,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(A),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function PnA(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function wNA(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[A,i]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:wNA(e);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:e,validFor:A}:null}}var MD=class{constructor(e,A,i,n){this.completion=e,this.source=A,this.match=i,this.score=n}};function DC(t){return t.selection.main.from}function AoA(t,e){var A;let{source:i}=t,n=e&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(A=t.flags)!==null&&A!==void 0?A:t.ignoreCase?"i":"")}var eoA=wa.define();function yNA(t,e,A,i){let{main:n}=t.selection,o=A-n.from,r=i-n.from;return Object.assign(Object.assign({},t.changeByRange(s=>{if(s!=n&&A!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(A,i))return{range:s};let a=t.toText(e);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:ie.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var jnA=new WeakMap;function vNA(t){if(!Array.isArray(t))return t;let e=jnA.get(t);return e||jnA.set(t,e=DNA(t)),e}var kD=ki.define(),d3=ki.define(),sN=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let A=0;A=48&&y<=57||y>=97&&y<=122?2:y>=65&&y<=90?1:0:(F=b4(y))!=F.toLowerCase()?1:F!=F.toUpperCase()?2:0;(!v||U==1&&Q||x==0&&U!=0)&&(A[I]==y||i[I]==y&&(C=!0)?r[I++]=v:r.length&&(u=!1)),x=U,v+=tc(y)}return I==a&&r[0]==0&&u?this.result(-100+(C?-200:0),r,e):d==a&&B==0?this.ret(-200-e.length+(E==e.length?0:-100),[0,E]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):d==a?this.ret(-900-e.length,[B,E]):I==a?this.result(-100+(C?-200:0)+-700+(u?0:-1100),r,e):A.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,e)}result(e,A,i){let n=[],o=0;for(let r of A){let s=r+(this.astral?tc(rs(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(e-i.length,n)}},aN=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:bNA,filterStrict:!1,compareCompletions:(e,A)=>e.label.localeCompare(A.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,A)=>e&&A,closeOnBlur:(e,A)=>e&&A,icons:(e,A)=>e&&A,tooltipClass:(e,A)=>i=>qnA(e(i),A(i)),optionClass:(e,A)=>i=>qnA(e(i),A(i)),addToOptions:(e,A)=>e.concat(A),filterStrict:(e,A)=>e||A})}});function qnA(t,e){return t?e?t+" "+e:t:e}function bNA(t,e,A,i,n,o){let r=t.textDirection==Wn.RTL,s=r,a=!1,c="top",l,I,C=e.left-n.left,d=n.right-e.right,B=i.right-i.left,E=i.bottom-i.top;if(s&&C=E||v>e.top?l=A.bottom-e.top:(c="bottom",l=e.bottom-A.top)}let Q=(e.bottom-e.top)/o.offsetHeight,u=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${l/Q}px; max-width: ${I/u}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function MNA(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(A){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),A.type&&i.classList.add(...A.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(A,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=A.displayLabel||A.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,l)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(l,I))),C.className="cm-completionMatchedText",a=I}return aA.position-i.position).map(A=>A.render)}function oN(t,e,A){if(t<=A)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let n=Math.floor(e/A);return{from:n*A,to:(n+1)*A}}let i=Math.floor((t-e)/A);return{from:t-(i+1)*A,to:t-i*A}}var cN=class{constructor(e,A,i){this.view=e,this.stateField=A,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=e.state.field(A),{options:o,selected:r}=n.open,s=e.state.facet(Pr);this.optionContent=MNA(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=oN(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=e.state.field(A).open;for(let l=a.target,I;l&&l!=this.dom;l=l.parentNode)if(l.nodeName=="LI"&&(I=/-(\d+)$/.exec(l.id))&&+I[1]{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Pr).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:d3.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(e,A){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,A,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var A;let i=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=oN(o.length,r,e.state.facet(Pr).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((A=n.open)===null||A===void 0?void 0:A.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let A=this.tooltipClass(e);if(A!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of A.split(" "))i&&this.dom.classList.add(i);this.currentClass=A}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),A=e.open;if((A.selected>-1&&A.selected=this.range.to)&&(this.range=oN(A.options.length,A.selected,this.view.state.facet(Pr).maxRenderedOptions),this.showOptions(A.options,e.id)),this.updateSelectedOption(A.selected)){this.destroyInfo();let{completion:i}=A.options[A.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,i)}).catch(r=>Hr(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(e,A){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:n,destroy:o}=e;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let A=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),A=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return A&&SNA(this.list,A),A}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let A=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=e.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,A.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let d=n.appendChild(document.createElement("completion-section"));d.textContent=C}}let l=n.appendChild(document.createElement("li"));l.id=A+"-"+r,l.setAttribute("role","option");let I=this.optionClass(s);I&&(l.className=I);for(let C of this.optionContent){let d=C(s,this.view.state,this.view,a);d&&l.appendChild(d)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew cN(A,t,e)}function SNA(t,e){let A=t.getBoundingClientRect(),i=e.getBoundingClientRect(),n=A.height/t.offsetHeight;i.topA.bottom&&(t.scrollTop+=(i.bottom-A.bottom)/n)}function VnA(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function RNA(t,e){let A=[],i=null,n=c=>{A.push(c);let{section:l}=c.completion;if(l){i||(i=[]);let I=typeof l=="string"?l:l.name;i.some(C=>C.name==I)||i.push(typeof l=="string"?{name:I}:l)}},o=e.facet(Pr);for(let c of t)if(c.hasResult()){let l=c.result.getMatch;if(c.result.filter===!1)for(let I of c.result.options)n(new MD(I,c.source,l?l(I):[],1e9-A.length));else{let I=e.sliceDoc(c.from,c.to),C,d=o.filterStrict?new aN(I):new sN(I);for(let B of c.result.options)if(C=d.match(B.label)){let E=B.displayLabel?l?l(B,C.matched):[]:C.matched;n(new MD(B,c.source,E,C.score+(B.boost||0)))}}}if(i){let c=Object.create(null),l=0,I=(C,d)=>{var B,E;return((B=C.rank)!==null&&B!==void 0?B:1e9)-((E=d.rank)!==null&&E!==void 0?E:1e9)||(C.nameI.score-l.score||a(l.completion,I.completion))){let l=c.completion;!s||s.label!=l.label||s.detail!=l.detail||s.type!=null&&l.type!=null&&s.type!=l.type||s.apply!=l.apply||s.boost!=l.boost?r.push(c):VnA(c.completion)>VnA(s)&&(r[r.length-1]=c),s=c.completion}return r}var lN=class t{constructor(e,A,i,n,o,r){this.options=e,this.attrs=A,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(e,A){return e==this.selected||e>=this.options.length?this:new t(this.options,ZnA(A,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,A,i,n,o,r){if(n&&!r&&e.some(c=>c.isPending))return n.setDisabled();let s=RNA(e,A);if(!s.length)return n&&e.some(c=>c.isPending)?n.setDisabled():null;let a=A.facet(Pr).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let l=0;ll.hasResult()?Math.min(c,l.from):c,1e8),create:GNA,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(e){return new t(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},gN=class t{constructor(e,A,i){this.active=e,this.id=A,this.open=i}static start(){return new t(NNA,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:A}=e,i=A.facet(Pr),o=(i.override||A.languageDataAt("autocomplete",DC(A)).map(vNA)).map(a=>(this.active.find(l=>l.source==a)||new J0(a,this.active.some(l=>l.state!=0)?1:0)).update(e,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=e.effects.some(a=>a.is(CN));r&&e.docChanged&&(r=r.map(e.changes)),e.selection||o.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!LNA(o,this.active)||s?r=lN.build(o,A,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new J0(a.source,0):a));for(let a of e.effects)a.is(ioA)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?xNA:FNA}};function LNA(t,e){if(t==e)return!0;for(let A=0,i=0;;){for(;A-1&&(A["aria-activedescendant"]=t+"-"+e),A}var NNA=[];function toA(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(eoA);if(i&&e.activateOnCompletion(i))return 12}let A=t.isUserEvent("input.type");return A&&e.activateOnTyping?5:A?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var J0=class t{constructor(e,A,i=!1){this.source=e,this.state=A,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,A){let i=toA(e,A),n=this;(i&8||i&16&&this.touches(e))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(e,i);for(let o of e.effects)if(o.is(kD))n=new t(n.source,1,o.value);else if(o.is(d3))n=new t(n.source,0);else if(o.is(CN))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(e,A){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(DC(e.state))}},SD=class t extends J0{constructor(e,A,i,n,o,r){super(e,3,A),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(e,A){var i;if(!(A&3))return this.map(e.changes);let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=DC(e.state);if(s>r||!n||A&2&&(DC(e.startState)==this.from||sA.map(e))}}),ioA=ki.define(),va=To.define({create(){return gN.start()},update(t,e){return t.update(e)},provide:t=>[DE.from(t,e=>e.tooltip),St.contentAttributes.from(t,e=>e.attrs)]});function dN(t,e){let A=e.completion.apply||e.completion.label,i=t.state.field(va).active.find(n=>n.source==e.source);return i instanceof SD?(typeof A=="string"?t.dispatch(Object.assign(Object.assign({},yNA(t.state,A,i.from,i.to)),{annotations:eoA.of(e.completion)})):A(t,e.completion,i.from,i.to),!0):!1}var GNA=kNA(va,dN);function vD(t,e="option"){return A=>{let i=A.state.field(va,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=e=="page"?0:r-1:s>=r&&(s=e=="page"?r-1:0),A.dispatch({effects:ioA.of(s)}),!0}}var UNA=t=>{let e=t.state.field(va,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(va,!1)?(t.dispatch({effects:kD.of(!0)}),!0):!1,KNA=t=>{let e=t.state.field(va,!1);return!e||!e.active.some(A=>A.state!=0)?!1:(t.dispatch({effects:d3.of(null)}),!0)},IN=class{constructor(e,A){this.active=e,this.context=A,this.time=Date.now(),this.updates=[],this.done=void 0}},YNA=50,JNA=1e3,TNA=Xn.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(va).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(va),A=t.state.facet(Pr);if(!t.selectionSet&&!t.docChanged&&t.startState.field(va)==e)return;let i=t.transactions.some(o=>{let r=toA(o,A);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;oYNA&&Date.now()-r.time>JNA){for(let s of r.context.abortListeners)try{s()}catch(a){Hr(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(kD)))&&(this.pendingStart=!0);let n=this.pendingStart?50:A.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(va);for(let A of e.active)A.isPending&&!this.running.some(i=>i.active.source==A.source)&&this.startQuery(A);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Pr).updateSyncTime))}startQuery(t){let{state:e}=this.view,A=DC(e),i=new bD(e,A,t.explicit,this.view),n=new IN(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:d3.of(null)}),Hr(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Pr).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],A=this.view.state.facet(Pr),i=this.view.state.field(va);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new J0(o.active.source,0);for(let a of o.updates)s=s.update(a,A);s.isPending||e.push(s)}else this.startQuery(r)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:CN.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(va,!1);if(e&&e.tooltip&&this.view.state.facet(Pr).closeOnBlur){let A=e.open&&AF(this.view,e.open.tooltip);(!A||!A.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:d3.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:kD.of(!1)}),20),this.composing=0}}}),zNA=typeof navigator=="object"&&/Win/.test(navigator.platform),HNA=Bl.highest(St.domEventHandlers({keydown(t,e){let A=e.state.field(va,!1);if(!A||!A.open||A.open.disabled||A.open.selected<0||t.key.length>1||t.ctrlKey&&!(zNA&&t.altKey)||t.metaKey)return!1;let i=A.open.options[A.open.selected],n=A.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&dN(e,i),!1}})),ONA=St.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var B3={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},wC=ki.define({map(t,e){let A=e.mapPos(t,-1,is.TrackAfter);return A??void 0}}),BN=new class extends dl{};BN.startSide=1;BN.endSide=-1;var noA=To.define({create(){return Zn.empty},update(t,e){if(t=t.map(e.changes),e.selection){let A=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=A.from&&i<=A.to})}for(let A of e.effects)A.is(wC)&&(t=t.update({add:[BN.range(A.value,A.value+1)]}));return t}});function ooA(){return[jNA,noA]}var rN="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function roA(t){for(let e=0;e{if((PNA?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&tc(rs(i,0))==1||e!=n.from||A!=n.to)return!1;let o=VNA(t.state,i);return o?(t.dispatch(o),!0):!1}),qNA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=soA(t,t.selection.main.head).brackets||B3.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=ZNA(t.doc,r.head);for(let a of i)if(a==s&&RD(t.doc,r.head)==roA(rs(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:ie.cursor(r.head-a.length)}}return{range:n=r}});return n||e(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},aoA=[{key:"Backspace",run:qNA}];function VNA(t,e){let A=soA(t,t.selection.main.head),i=A.brackets||B3.brackets;for(let n of i){let o=roA(rs(n,0));if(e==n)return o==n?$NA(t,n,i.indexOf(n+n+n)>-1,A):WNA(t,n,o,A.before||B3.before);if(e==o&&coA(t,t.selection.main.from))return XNA(t,n,o)}return null}function coA(t,e){let A=!1;return t.field(noA).between(0,t.doc.length,i=>{i==e&&(A=!0)}),A}function RD(t,e){let A=t.sliceString(e,e+2);return A.slice(0,tc(rs(A,0)))}function ZNA(t,e){let A=t.sliceString(e-2,e);return tc(rs(A,0))==A.length?A:A.slice(1)}function WNA(t,e,A,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:A,from:r.to}],effects:wC.of(r.to+e.length),range:ie.range(r.anchor+e.length,r.head+e.length)};let s=RD(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:e+A,from:r.head},effects:wC.of(r.head+e.length),range:ie.cursor(r.head+e.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function XNA(t,e,A){let i=null,n=t.changeByRange(o=>o.empty&&RD(t.doc,o.head)==A?{changes:{from:o.head,to:o.head+A.length,insert:A},range:ie.cursor(o.head+A.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function $NA(t,e,A,i){let n=i.stringPrefixes||B3.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:e,from:s.to}],effects:wC.of(s.to+e.length),range:ie.range(s.anchor+e.length,s.head+e.length)};let a=s.head,c=RD(t.doc,a),l;if(c==e){if(XnA(t,a))return{changes:{insert:e+e,from:a},effects:wC.of(a+e.length),range:ie.cursor(a+e.length)};if(coA(t,a)){let C=A&&t.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+C.length,insert:C},range:ie.cursor(a+C.length)}}}else{if(A&&t.sliceDoc(a-2*e.length,a)==e+e&&(l=$nA(t,a-2*e.length,n))>-1&&XnA(t,l))return{changes:{insert:e+e+e+e,from:a},effects:wC.of(a+e.length),range:ie.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=Vn.Word&&$nA(t,a,n)>-1&&!A_A(t,a,e,n))return{changes:{insert:e+e,from:a},effects:wC.of(a+e.length),range:ie.cursor(a+e.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function XnA(t,e){let A=Or(t).resolveInner(e+1);return A.parent&&A.from==e}function A_A(t,e,A,i){let n=Or(t).resolveInner(e,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+A.length+o)),a=s.indexOf(A);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let l=n.firstChild;for(;l&&l.from==n.from&&l.to-l.from>A.length+a;){if(t.sliceDoc(l.to-A.length,l.to)==A)return!1;l=l.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function $nA(t,e,A){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=Vn.Word)return e;for(let n of A){let o=e-n.length;if(t.sliceDoc(o,e)==n&&i(t.sliceDoc(o-1,o))!=Vn.Word)return o}return-1}function loA(t={}){return[HNA,va,Pr.of(t),TNA,e_A,ONA]}var EN=[{key:"Ctrl-Space",run:WnA},{mac:"Alt-`",run:WnA},{key:"Escape",run:KNA},{key:"ArrowDown",run:vD(!0)},{key:"ArrowUp",run:vD(!1)},{key:"PageDown",run:vD(!0,"page")},{key:"PageUp",run:vD(!1,"page")},{key:"Enter",run:UNA}],e_A=Bl.highest(wE.computeN([Pr],t=>t.facet(Pr).defaultKeymap?[EN]:[]));function t_A(t,e=t.state){let A=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=e.doc.lineAt(o);A.has(r)||A.add(r),o=r.to+1}}return A}function hN(t){let e=t.selection.main.head;return t.doc.lineAt(e)}function goA(t,e){let A=0;A:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(e,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(e,0,0):o.level>n.level?this.set(e,0,n.level+1):this.set(e,0,o.level)}let A=goA(e.text,this.state.tabSize),i=Math.floor(A/this.unitWidth);return this.set(e,A,i)}closestNonEmpty(e,A){let i=e.number+A;for(;A===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=goA(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=A}let n=this.state.doc.line(A===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let e=hN(this.state);if(!this.has(e))return;let A=this.get(e);if(this.has(A.line.number+1)){let o=this.get(A.line.number+1);o.level>A.level&&(A=o)}if(this.has(A.line.number-1)){let o=this.get(A.line.number-1);o.level>A.level&&(A=o)}if(A.level===0)return;A.active=A.level;let i,n;for(i=A.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(LD("--indent-marker-bg-color",i,e,s,c)),a.push(LD("--indent-marker-active-bg-color",n,e,r-1,1)),r!==o&&a.push(LD("--indent-marker-bg-color",i,e,r,o-r))}else a.push(LD("--indent-marker-bg-color",i,e,s,o-s));return a.join(",")}var uN=class{constructor(e){this.view=e,this.unitWidth=ul(e.state),this.currentLineNumber=hN(e.state).number,this.generate(e.state)}update(e){let A=ul(e.state),i=A!==this.unitWidth;i&&(this.unitWidth=A);let n=hN(e.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=e.state.facet(xD).highlightActiveBlock&&o;(e.docChanged||e.viewportChanged||i||r)&&this.generate(e.state)}generate(e){let A=new os,i=t_A(this.view,e),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=e.facet(xD),a=new QN(i,e,this.unitWidth,o);for(let c of i){let l=a.get(c.number);if(!l?.level)continue;let I=n_A(l,this.unitWidth,n,r,s);A.add(c.from,c.from,rt.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${I}`}}))}this.decorations=A.finish()}};function IoA(t={}){return[xD.of(t),i_A(t.colors),Xn.fromClass(uN,{decorations:e=>e.decorations})]}var o_A=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],r_A=["mainAxis","crossAxis","limiter"];function frA(t,e){if(t==null)return{};var A,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function B_A(t){return t()}function WD(t){for(var e=0;e1&&arguments[1]!==void 0&&arguments[1])&&(Bn.l={s:null,u:null,r1:[],r2:NC(!1)}),x_(()=>{e.d=!0})}function at(t){var e=Bn;if(e!==null){t!==void 0&&(e.x=t);var A=e.e;if(A!==null){var i=eo,n=Io;e.e=null;try{for(var o=0;o{var a=Io;Ug(o);var c=s();return Ug(a),c};return i&&A.set("length",T0(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var l=A.get(a);return l===void 0?(l=r(()=>T0(c.value)),A.set(a,l)):b(l,r(()=>vC(c.value))),!0},deleteProperty(s,a){var c=A.get(a);if(c===void 0)a in s&&(A.set(a,r(()=>T0(Hs))),pN(n));else{if(i&&typeof a=="string"){var l=A.get("length"),I=Number(a);Number.isInteger(I)&&IT0(vC(C?s[a]:Hs))),A.set(a,I)),I!==void 0){var d=g(I);return d===Hs?void 0:d}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var l=A.get(a);l&&(c.value=g(l))}else if(c===void 0){var I=A.get(a),C=I?.v;if(I!==void 0&&C!==Hs)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===G1)return!0;var l=A.get(a),I=l!==void 0&&l.v!==Hs||Reflect.has(s,a);return(l!==void 0||eo!==null&&(!I||(c=j0(s,a))!==null&&c!==void 0&&c.writable))&&(l===void 0&&(l=r(()=>T0(I?vC(s[a]):Hs)),A.set(a,l)),g(l)===Hs)?!1:I},set(s,a,c,l){var I,C=A.get(a),d=a in s;if(i&&a==="length")for(var B=c;BT0(Hs)),A.set(B+"",E))}C===void 0?(!d||(I=j0(s,a))!==null&&I!==void 0&&I.writable)&&(b(C=r(()=>T0(void 0)),r(()=>vC(c))),A.set(a,C)):(d=C.v!==Hs,b(C,r(()=>vC(c))));var Q=Reflect.getOwnPropertyDescriptor(s,a);if(Q!=null&&Q.set&&Q.set.call(l,c),!d){if(i&&typeof a=="string"){var u=A.get("length"),v=Number(a);Number.isInteger(v)&&v>=u.v&&b(u,v+1)}pN(n)}return!0},ownKeys(s){g(n);var a=Reflect.ownKeys(s).filter(I=>{var C=A.get(I);return C===void 0||C.v!==Hs});for(var[c,l]of A)l.v===Hs||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function pN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;b(t,t.v+e)}function ZE(t){var e=2050,A=Io!==null&&2&Io.f?Io:null;return eo===null||A!==null&&(A.f&yl)!==0?e|=yl:eo.f|=h_A,{ctx:Bn,deps:null,effects:null,equals:yrA,f:e,fn:t,reactions:null,rv:0,v:null,wv:0,parent:A??eo}}function ba(t){var e=ZE(t);return TrA(e),e}function PA(t){var e=ZE(t);return e.equals=L_,e}function brA(t){var e=t.effects;if(e!==null){t.effects=null;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],n=NC(t);return i||(n.equals=L_),ih&&Bn!==null&&Bn.l!==null&&((A=(e=Bn.l).s)!==null&&A!==void 0?A:e.s=[]).push(n),n}function lc(t,e){return b(t,Kg(()=>g(t))),e}function b(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return Io!==null&&!xg&&nh()&&18&Io.f&&((A=V0)===null||A===void 0||!A.includes(t))&&function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),$N(t,i?vC(e):e)}function $N(t,e){if(!t.equals(e)){var A=t.v;z3?v3.set(t,e):v3.set(t,A),t.v=e,2&t.f&&((t.f&FC)!==0&&MrA(t),Jc(t,(t.f&yl)===0?ka:TC)),t.wv=HrA(),SrA(t,FC),!nh()||eo===null||(eo.f&ka)===0||96&eo.f||(Gc===null?function(i){Gc=i}([t]):Gc.push(t))}return e}function foA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=g(t),i=e===1?A++:A--;return b(t,A),i}function SrA(t,e){var A=t.reactions;if(A!==null)for(var i=nh(),n=A.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function gc(t){return LrA.call(t)}function uy(t){return xrA.call(t)}function $(t,e){return gc(t)}function Bt(t,e){var A=gc(t);return A instanceof Comment&&A.data===""?uy(A):A}function gA(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=t;e--;)A=uy(A);return A}function FrA(t){eo===null&&Io===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),Io!==null&&(Io.f&yl)!==0&&eo===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),z3&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function oh(t,e,A){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=eo,o={ctx:Bn,deps:null,nodes_start:null,nodes_end:null,f:t|FC,first:null,fn:e,last:null,next:null,parent:n,prev:null,teardown:null,transitions:null,wv:0};if(A)try{py(o),o.f|=32768}catch(a){throw Gg(o),a}else e!==null&&wy(o);if(!(A&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(1048704&o.f))&&i&&(n!==null&&function(a,c){var l=c.last;l===null?c.last=c.first=a:(l.next=a,a.prev=l,c.last=a)}(o,n),Io!==null&&2&Io.f)){var r,s=Io;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function x_(t){var e=oh(8,null,!1);return Jc(e,ka),e.teardown=t,e}function A_(t){if(FrA(),!(eo!==null&&(eo.f&hy)!==0&&Bn!==null&&!Bn.m))return Nr(t);var e,A=Bn;((e=A.e)!==null&&e!==void 0?e:A.e=[]).push({fn:t,effect:eo,reaction:Io})}function Nr(t){return oh(4,t,!1)}function fA(t,e){var A=Bn,i={effect:null,ran:!1};A.l.r1.push(i),i.effect=rh(()=>{t(),i.ran||(i.ran=!0,b(A.l.r2,!0),Kg(e))})}function nn(){var t=Bn;rh(()=>{if(g(t.l.r2)){for(var e of t.l.r1){var A=e.effect;(A.f&ka)!==0&&Jc(A,TC),sh(A)&&py(A),e.ran=!1}t.l.r2.v=!1}})}function rh(t){return oh(8,t,!0)}function Ee(t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ZE,A=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(e);return zC(()=>t(...A.map(g)))}function zC(t){return oh(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function $0(t){return oh(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function NrA(t){var e=t.teardown;if(e!==null){var A=z3,i=Io;moA(!0),Ug(null);try{e.call(null)}finally{moA(A),Ug(i)}}}function _rA(t){var e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],A=t.first;for(t.first=t.last=null;A!==null;){var i=A.next;(A.f&wrA)!==0?A.parent=null:Gg(A,e),A=i}}function Gg(t){var e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],A=!1;(e||524288&t.f)&&t.nodes_start!==null&&(GrA(t.nodes_start,t.nodes_end),A=!0),_rA(t,e&&!A),ty(t,0),Jc(t,S_);var i=t.transitions;if(i!==null)for(var n of i)n.stop();NrA(t);var o=t.parent;o!==null&&o.first!==null&&UrA(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=null}function GrA(t,e){for(;t!==null;){var A=t===e?null:uy(t);t.remove(),t=A}}function UrA(t){var e=t.parent,A=t.prev,i=t.next;A!==null&&(A.next=i),i!==null&&(i.prev=A),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=A))}function WE(t,e){var A=[];F_(t,A,!0),KrA(A,()=>{Gg(t),e&&e()})}function KrA(t,e){var A=t.length;if(A>0){var i=()=>--A||e();for(var n of t)n.out(i)}else e()}function F_(t,e,A){if((t.f&_1)===0){if(t.f^=_1,t.transitions!==null)for(var i of t.transitions)(i.is_global||A)&&e.push(i);for(var n=t.first;n!==null;){var o=n.next;F_(n,e,((n.f&J3)!==0||(n.f&hy)!==0)&&A),n=o}}}function XD(t){YrA(t,!0)}function YrA(t,e){if((t.f&_1)!==0){t.f^=_1,(t.f&ka)===0&&(t.f^=ka),sh(t)&&(Jc(t,FC),wy(t));for(var A=t.first;A!==null;){var i=A.next;YrA(A,((A.f&J3)!==0||(A.f&hy)!==0)&&e),A=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||e)&&n.in()}}var b3=[],wN=[];function JrA(){var t=b3;b3=[],WD(t)}function fy(t){b3.length===0&&queueMicrotask(JrA),b3.push(t)}function f_A(){var t;b3.length>0&&JrA(),wN.length>0&&(t=wN,wN=[],WD(t))}var FD=!1,$D=!1,Ay=null,MC=!1,z3=!1;function moA(t){z3=t}var D3=[],Io=null,xg=!1;function Ug(t){Io=t}var eo=null;function J1(t){eo=t}var V0=null;function TrA(t){Io!==null&&Io.f&XN&&(V0===null?V0=[t]:V0.push(t))}var Os=null,ac=0,Gc=null,zrA=1,ey=0,x1=!1,e_=null;function HrA(){return++zrA}function sh(t){var e=t.f;if((e&FC)!==0)return!0;if((e&TC)!==0){var A=t.deps,i=(e&yl)!==0;if(A!==null){var n,o,r=(e&WN)!==0,s=i&&eo!==null&&!x1,a=A.length;if(r||s){var c=t,l=c.parent;for(n=0;nt.wv)return!0}i&&(eo===null||x1)||Jc(t,ka)}return!1}function poA(t){return(t.f&S_)===0&&(t.parent===null||(t.parent.f&ZN)===0)}function my(t,e,A,i){if(FD){if(A===null&&(FD=!1),poA(e))throw t}else if(A!==null&&(FD=!0),function(n,o){for(var r=o;r!==null;){if((r.f&ZN)!==0)try{return void r.fn(n)}catch{r.f^=ZN}r=r.parent}throw FD=!1,n}(t,e),poA(e))throw t}function OrA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=t.reactions;if(i!==null)for(var n=0;n0)for(I.length=ac+Os.length,C=0;C0;){e++>1e3&&p_A();var A=D3,i=A.length;D3=[];for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||e.has(t))){for(var A in e.add(t),t instanceof Date&&t.getTime(),t)try{t_(t[A],e)}catch{}var i=k_(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=prA(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var woA=!1;function VrA(t){var e=Io,A=eo;Ug(null),J1(null);try{return t()}finally{Ug(e),J1(A)}}function v_A(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:A;t.addEventListener(e,()=>VrA(A));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),woA||(woA=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var ZrA=new Set,i_=new Set;function WrA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||f3.call(e,o),!o.cancelBubble)return VrA(()=>A?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?fy(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function re(t,e,A,i,n){var o={capture:i,passive:n},r=WrA(t,e,A,o);e!==document.body&&e!==window&&e!==document||x_(()=>{e.removeEventListener(t,r,o)})}function H3(t){for(var e=0;er||i});var I=Io,C=eo;Ug(null),J1(null);try{for(var d,B=[];r!==null;){var E=r.assignedSlot||r.parentNode||r.host||null;try{var Q=r["__"+n];if(Q!=null&&(!r.disabled||t.target===r))if(Y3(Q)){var[u,...v]=Q;u.apply(r,[t,...v])}else Q.call(r,t)}catch(y){d?B.push(y):d=y}if(t.cancelBubble||E===A||E===null)break;r=E}if(d){var L=function(y){queueMicrotask(()=>{throw y})};for(var x of B)L(x);throw d}}finally{t.__root=A,delete t.currentTarget,Ug(I),J1(C)}}}function N_(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function _C(t,e){var A=eo;A.nodes_start===null&&(A.nodes_start=t,A.nodes_end=e)}function pA(t,e){var A,i=!!(1&e),n=!!(2&e),o=!t.startsWith("");return()=>{A===void 0&&(A=N_(o?t:""+t),i||(A=gc(A)));var r=n||RrA?document.importNode(A,!0):A.cloneNode(!0);return i?_C(gc(r),r.lastChild):_C(r,r),r}}function O1(t,e){return function(A,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!A.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?A:""+A,"");return()=>{if(!n){var c=gc(N_(a));if(s)for(n=document.createDocumentFragment();gc(c);)n.appendChild(gc(c));else n=gc(c)}var l=n.cloneNode(!0);return s?_C(gc(l),l.lastChild):_C(l,l),l}}(t,e,"svg")}function _r(){var t=Qy((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return _C(t,t),t}function po(){var t=document.createDocumentFragment(),e=document.createComment(""),A=Qy();return t.append(e,A),_C(e,A),t}function iA(t,e){t!==null&&t.before(e)}var b_A=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],M_A={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},k_A=["touchstart","touchmove"];function S_A(t){return k_A.includes(t)}function Et(t,e){var A,i=e==null?"":typeof e=="object"?e+"":e;i!==((A=t.__t)!==null&&A!==void 0?A:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function R_A(t,e){return function(A,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(q0===void 0){q0=window,RrA=/Firefox/.test(navigator.userAgent);var B=Element.prototype,E=Node.prototype,Q=Text.prototype;LrA=j0(E,"firstChild").get,xrA=j0(E,"nextSibling").get,hoA(B)&&(B.__click=void 0,B.__className=void 0,B.__attributes=null,B.__style=void 0,B.__e=void 0),hoA(Q)&&(Q.__t=void 0)}})();var l=new Set,I=B=>{for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(u=>{Q.outro?WE(E,()=>{Gg(E),u(void 0)}):(Gg(E),u(void 0))})}}(()=>{var B=o??n.appendChild(Qy());return $0(()=>{a&&(st({}),Bn.c=a),s&&(r.$$events=s),C=A(B,r)||{},a&&at()}),()=>{for(var E of l){n.removeEventListener(E,f3);var Q=_E.get(E);--Q===0?(document.removeEventListener(E,f3),_E.delete(E)):_E.set(E,Q)}var u;i_.delete(I),B!==o&&((u=B.parentNode)===null||u===void 0||u.removeChild(B))}});return n_.set(C,d),C}(t,e)}var _E=new Map,n_=new WeakMap;function ls(t){Bn===null&&T3(),ih&&Bn.l!==null?XrA(Bn).m.push(t):A_(()=>{var e=Kg(t);if(typeof e=="function")return e})}function Tc(t){Bn===null&&T3(),ls(()=>()=>Kg(t))}function L_A(){var t=Bn;return t===null&&T3(),(e,A,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[e];if(o){var r=Y3(o)?o.slice():[o],s=function(c,l){var{bubbles:I=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:l,bubbles:I,cancelable:C})}(e,A,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function x_A(t){Bn===null&&T3(),Bn.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),XrA(Bn).b.push(t)}function XrA(t){var e,A=t.l;return(e=A.u)!==null&&e!==void 0?e:A.u={a:[],b:[],m:[]}}function MA(t,e){var[A,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Hs,a=!1,c=function(I){a=!0,l(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],I)},l=(I,C)=>{s!==(s=I)&&(s?(o?XD(o):C&&(o=$0(()=>C(n))),r&&WE(r,()=>{r=null})):(r?XD(r):C&&(r=$0(()=>C(n,[A+1,i]))),o&&WE(o,()=>{o=null})))};zC(()=>{a=!1,e(c),a||l(null,null)},A>0?J3:0)}function $rA(t,e,A){var i,n=t,o=Hs,r=nh()?u_A:R_;zC(()=>{r(o,o=e())&&(i&&WE(i),i=$0(()=>A(n)))})}function Zo(t,e){return e}function Fo(t,e,A,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:e,items:new Map,first:null};!(4&e)||(r=t.appendChild(Qy()));var a=null,c=!1,l=PA(()=>{var I=A();return Y3(I)?I:I==null?[]:VN(I)});zC(()=>{var I=g(l),C=I.length;c&&C===0||(c=C===0,function(d,B,E,Q,u,v,L){var x,y,F,U,T,N,K=!!(8&u),H=!!(3&u),j=d.length,IA=B.items,lA=B.first,uA=lA,p=null,V=[],cA=[];if(K)for(N=0;N0){var Re=4&u&&j===0?E:null;if(K){for(N=0;N0&&f.length===0&&ne!==null;if(O){var Z=ne.parentNode;Z.textContent="",Z.append(ne),h.clear(),k1(RA,oA[0].prev,oA[w-1].next)}KrA(f,()=>{for(var q=0;q{if(y!==void 0)for(T of y){var RA;(RA=T.a)===null||RA===void 0||RA.apply()}}),eo.first=B.first&&B.first.e,eo.last=p&&p.e}(I,s,r,n,e,i,A),o!==null&&(C===0?a?XD(a):a=$0(()=>o(r)):a!==null&&WE(a,()=>{a=null})),g(l))})}function F_A(t,e,A,i){1&i&&$N(t.v,e),2&i?$N(t.i,A):t.i=A}function N_A(t,e,A,i,n,o,r,s,a,c){var l=1&a?16&a?NC(n):X(n):n,I=2&a?NC(r):r,C={i:I,v:l,k:o,a:null,e:null,prev:A,next:i};try{return C.e=$0(()=>s(t,l,I,c),!1),C.e.prev=A&&A.e,C.e.next=i&&i.e,A===null?e.first=C:(A.next=C,A.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function DoA(t,e,A){for(var i=t.next?t.next.e.nodes_start:A,n=e?e.e.nodes_start:A,o=t.e.nodes_start;o!==i;){var r=uy(o);n.before(o),o=r}}function k1(t,e,A){e===null?t.first=A:(e.next=A,e.e.next=A&&A.e),A!==null&&(A.prev=e,A.e.prev=e&&e.e)}function AsA(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";Ee(()=>{var r,s=eo;if(o!==(o=(r=e())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(GrA(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";A?a="".concat(a,""):i&&(a="".concat(a,""));var c=N_(a);if((A||i)&&(c=gc(c)),_C(gc(c),c.lastChild),A||i)for(;gc(c);)n.before(gc(c));else n.before(c)}})}function xo(t,e,A,i,n){var o,r=(o=e.$$slots)===null||o===void 0?void 0:o[A],s=!1;r===!0&&(r=e[A==="default"?"children":A],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function esA(t,e,A){var i,n,o=t;zC(()=>{i!==(i=e())&&(n&&(WE(n),n=null),i&&(n=$0(()=>A(o,i))))},J3)}function bs(t,e,A){Nr(()=>{var i=Kg(()=>e(t,A?.())||{});if(A&&i!=null&&i.update){var n=!1,o={};rh(()=>{var r=A();W(r),n&&R_(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function tsA(t){var e,A,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(e=0;e1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",A="";for(var i in t){var n=t[i];n!=null&&n!==""&&(A+=" "+i+": "+n+e)}return A}function DN(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function xt(t,e,A,i,n,o){var r=t.__className;if(r!==A||r===void 0){var s=function(l,I,C){var d=l==null?"":""+l;if(I&&(d=d?d+" "+I:I),C){for(var B in C)if(C[B])d=d?d+" "+B:B;else if(d.length)for(var E=B.length,Q=0;(Q=d.indexOf(B,Q))>=0;){var u=Q+E;Q!==0&&!yoA.includes(d[Q-1])||u!==d.length&&!yoA.includes(d[u])?Q=u:d=(Q===0?"":d.substring(0,Q))+d.substring(u+1)}}return d===""?null:d}(A,i,o);s==null?t.removeAttribute("class"):e?t.className=s:t.setAttribute("class",s),t.__className=A}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function yN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in A){var o=A[n];e[n]!==o&&(A[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function vl(t,e,A,i){if(t.__style!==e){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var l=!1,I=0,C=!1,d=[];s&&d.push(...Object.keys(s).map(DN)),a&&d.push(...Object.keys(a).map(DN));for(var B=0,E=-1,Q=o.length,u=0;u{document.activeElement===cA&&p.focus()})}})(t,!!U);else if(r||F!=="__value"&&(F!=="value"||U==null))if(F==="selected"&&c)(function(p,V){V?p.hasAttribute("selected")||p.setAttribute("selected",""):p.removeAttribute("selected")})(t,U);else if(E=F,s||(E=function(p){var V;return p=p.toLowerCase(),(V=M_A[p])!==null&&V!==void 0?V:p}(E)),Q=E==="defaultValue"||E==="defaultChecked",U!=null||r||Q)Q||u.includes(E)&&(r||typeof U!="string")?t[E]=U:typeof U!="function"&&en(t,E,U);else if(o[F]=null,E==="value"||E==="checked"){var H=t,j=e===void 0;if(E==="value"){var IA=H.defaultValue;H.removeAttribute(E),H.defaultValue=IA,H.value=H.__value=j?IA:null}else{var lA=H.defaultChecked;H.removeAttribute(E),H.defaultChecked=lA,H.checked=!!j&&lA}}else t.removeAttribute(F);else t.value=t.__value=U};for(var L in A)v(L);var x=function(F){var U,T,N,K;F.description==="@attach"&&(U=t,T=()=>A[F],K=void 0,zC(()=>{K!==(K=T())&&(N&&(Gg(N),N=null),K&&(N=$0(()=>{Nr(()=>K(U))})))}))};for(var y of Object.getOwnPropertySymbols(A))x(y);return a}function __(t){var e;return(e=t.__attributes)!==null&&e!==void 0?e:t.__attributes={[isA]:t.nodeName.includes("-"),[nsA]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var boA=new Map;function osA(t){var e,A=boA.get(t.nodeName);if(A)return A;boA.set(t.nodeName,A=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in e=prA(i))e[o].set&&A.push(o);i=k_(i)}return A}function iy(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,i=nh();v_A(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=vN(t)?bN(o):o,A(o),i&&o!==(o=e())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),Kg(e)==null&&t.value&&A(vN(t)?bN(t.value):t.value),rh(()=>{var n=e();vN(t)&&n===bN(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function vN(t){var e=t.type;return e==="number"||e==="range"}function bN(t){return t===""?null:+t}function kt(t,e,A){var i=j0(t,e);i&&i.set&&(t[e]=A,x_(()=>{t[e]=null}))}function MoA(t,e){return t===e||t?.[G1]===e}function to(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,A=arguments.length>2?arguments[2]:void 0;return Nr(()=>{var i,n;return rh(()=>{i=n,n=[],Kg(()=>{t!==A(...n)&&(e(t,...n),i&&MoA(A(...i),t)&&e(null,...i))})}),()=>{fy(()=>{n&&MoA(A(...n),t)&&e(null,...n)})}}),t}function z0(t){return function(){for(var e=arguments.length,A=new Array(e),i=0;i0&&arguments[0]!==void 0&&arguments[0],e=Bn,A=e.l.u;if(A){var i,n=()=>W(e.s);if(t){var o=0,r={},s=ZE(()=>{var a=!1,c=e.s;for(var l in c)c[l]!==r[l]&&(r[l]=c[l],a=!0);return a&&o++,o});n=()=>g(s)}A.b.length&&(i=()=>{koA(e,n),WD(A.b)},FrA(),rh(i)),A_(()=>{var a=Kg(()=>A.m.map(B_A));return()=>{for(var c of a)typeof c=="function"&&c()}}),A.a.length&&A_(()=>{koA(e,n),WD(A.a)})}}function koA(t,e){if(t.l.s)for(var A of t.l.s)g(A);e()}function Dy(t){var e=NC(0);return function(){return arguments.length===1?(b(e,g(e)+1),arguments[0]):(g(e),t())}}function m3(t,e){var A,i=(A=t.$$events)===null||A===void 0?void 0:A[e.type],n=Y3(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,e)}var ND=!1,__A={get(t,e){if(!t.exclude.includes(e))return g(t.version),e in t.special?t.special[e]():t.props[e]},set:(t,e,A)=>(e in t.special||(t.special[e]=k({get[e](){return t.props[e]}},e,4)),t.special[e](A),foA(t.version),!0),getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e))return e in t.props?{enumerable:!0,configurable:!0,value:t.props[e]}:void 0},deleteProperty:(t,e)=>(t.exclude.includes(e)||(t.exclude.push(e),foA(t.version)),!0),has:(t,e)=>!t.exclude.includes(e)&&e in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))};function _D(t,e){return new Proxy({props:t,exclude:e,special:{},version:NC(0)},__A)}var G_A={get(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(E3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,A){for(var i=t.props.length;i--;){var n=t.props[i];E3(n)&&(n=n());var o=j0(n,e);if(o&&o.set)return o.set(A),!0}return!1},getOwnPropertyDescriptor(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(E3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){var n=j0(i,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,e){if(e===G1||e===DrA)return!1;for(var A of t.props)if(E3(A)&&(A=A()),A!=null&&e in A)return!0;return!1},ownKeys(t){var e=[];for(var A of t.props)if(E3(A)&&(A=A()),A){for(var i in A)e.includes(i)||e.push(i);for(var n of Object.getOwnPropertySymbols(A))e.includes(n)||e.push(n)}return e}};function U1(){for(var t=arguments.length,e=new Array(t),A=0;At[e]):r=t[e];var C,d=G1 in t||DrA in t,B=c&&((n=(o=j0(t,e))===null||o===void 0?void 0:o.set)!==null&&n!==void 0?n:d&&e in t&&(N=>t[e]=N))||void 0,E=i,Q=!0,u=!1,v=()=>(u=!0,Q&&(Q=!1,E=l?Kg(i):i),E);if(r===void 0&&i!==void 0&&(B&&a&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),r=v(),B&&B(r)),a)C=()=>{var N=t[e];return N===void 0?v():(Q=!0,u=!1,N)};else{var L=(s?ZE:PA)(()=>t[e]);L.f|=E_A,C=()=>{var N=g(L);return N!==void 0&&(E=void 0),N===void 0?E:N}}if(!(4&A))return C;if(B){var x=t.$$legacy;return function(N,K){return arguments.length>0?(a&&K&&!x&&!I||B(K?C():N),N):C()}}var y=!1,F=!1,U=X(r),T=ZE(()=>{var N=C(),K=g(U);return y?(y=!1,F=!0,K):(F=!1,U.v=N)});return c&&g(T),s||(T.equals=L_),function(N,K){if(e_!==null&&(y=F,C(),g(U)),arguments.length>0){var H=K?g(T):a&&c?vC(N):N;if(!T.equals(H)){if(y=!0,b(U,H),u&&E!==void 0&&(E=H),SoA(T))return N;Kg(()=>g(T))}return N}return SoA(T)?T.v:g(T)}}function wr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!e)return U_A;var A=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return o_(Number(t));try{var e=t&&t.valueOf();if(e!==t)return o_(e)}catch{return!1}return!1}function rsA(t){(GD=GD||window.document.createElement("div")).style.color="",GD.style.color=t;var e=GD.style.color;return e!==""?e.replace(/\s+/g,"").toLowerCase():void 0}var GD=void 0;function T_A(t){return typeof t=="string"&&t.length<99&&!!rsA(t)}function U_(t,e){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(tn(t))return"object";var A=e.stringify(t);return A&&G_(A)?"number":A==="true"||A==="false"?"boolean":A==="null"?"null":"unknown"}var z_A=/^https?:\/\/\S+$/;function yy(t){return typeof t=="string"&&z_A.test(t)}function ah(t,e){if(t==="")return"";var A=t.trim();return A==="null"?null:A==="true"||A!=="false"&&(G_(A)?e.parse(A):t)}var H_A=[];function LoA(t,e){if(t.length!==e.length)return!1;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],A={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!tn(r)||e&&s.length>0)&&(A[nt(s)]=!0),tn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oe?t.slice(0,e):t}function xoA(t){return Be({},t)}function FoA(t){return Object.values(t)}function NoA(t,e,A,i){var n=t.slice(0),o=n.splice(e,A);return n.splice.apply(n,[e+i,0,...o]),n}function O_A(t,e,A){return t.slice(0,e).concat(A).concat(t.slice(e))}function O3(t,e){try{return e.parse(t)}catch{return e.parse(yc(t))}}function csA(t,e){try{return O3(t,e)}catch{return}}function P3(t,e){t=t.replace(gsA,"");try{return e(t)}catch{}try{return e("{"+t+"}")}catch{}try{return e("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function lsA(t){t=t.replace(gsA,"");try{return yc(t)}catch{}try{var e=yc("["+t+"]");return e.substring(1,e.length-1)}catch{}try{var A=yc("{"+t+"}");return A.substring(1,A.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var gsA=/,\s*$/;function XE(t,e){var A=GoA.exec(e);if(A){var i=jr(A[2]),n=function(d,B){for(var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,Q=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d.length,u=0,v=E;v"line ".concat(n+1," column ").concat(o+1))}}var r=V_A.exec(e),s=r?jr(r[1]):void 0,a=s!==void 0?s-1:void 0,c=Z_A.exec(e),l=c?jr(c[1]):void 0,I=l!==void 0?l-1:void 0,C=a!==void 0&&I!==void 0?function(d,B,E){for(var Q=d.indexOf(` +`),u=1;u1&&arguments[1]!==void 0?arguments[1]:void 0,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return M3(t)?t:{text:A.stringify(t.json,null,e)}}function _oA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return k3(t)?t:{json:e.parse(t.text)}}function s_(t,e,A){return P_A(t,e,A).text}function j_A(t,e){return q_A(t,e)>e}function q_A(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(M3(t))return t.text.length;var A=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>e)return;for(var r=0;re)return}else if(tn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;aCsA(EsA(String(t))),unescapeValue:t=>hsA(dsA(t))},$_A={escapeValue:t=>EsA(String(t)),unescapeValue:t=>hsA(t)},AGA={escapeValue:t=>CsA(String(t)),unescapeValue:t=>dsA(t)},eGA={escapeValue:t=>String(t),unescapeValue:t=>t};function CsA(t){return t.replace(/[^\x20-\x7F]/g,e=>{var A;return e==="\b"||e==="\f"||e===` +`||e==="\r"||e===" "?e:"\\u"+("000"+((A=e.codePointAt(0))===null||A===void 0?void 0:A.toString(16))).slice(-4)})}function dsA(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,e=>{try{var A=JSON.parse('"'+e+'"');return BsA[A]||A}catch{return e}})}var BsA={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},tGA={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "};function EsA(t){return t.replace(/["\b\f\n\r\t\\]/g,e=>BsA[e]||e)}function hsA(t){return t.replace(/\\["bfnrt\\]/g,e=>tGA[e]||e)}function vy(t){return typeof t!="string"?String(t):t.endsWith(` +`)?t+` +`:t}function QsA(t,e){return ch(t,A=>A.nodeName.toUpperCase()===e.toUpperCase())}function F1(t,e,A){return ch(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,e,A))}function ch(t,e){return!!Y_(t,e)}function Y_(t,e){for(var A=t;A&&!e(A);)A=A.parentNode;return A}function j3(t){var e,A;return(e=t==null||(A=t.ownerDocument)===null||A===void 0?void 0:A.defaultView)!==null&&e!==void 0?e:void 0}function J_(t){var e=j3(t),A=e?.document.activeElement;return!!A&&ch(A,i=>i===t)}function usA(t,e){return Y_(t,A=>A.nodeName===e)}function kN(t){return F1(t,"data-type","selectable-key")?wn.key:F1(t,"data-type","selectable-value")?wn.value:F1(t,"data-type","insert-selection-area-inside")?wn.inside:F1(t,"data-type","insert-selection-area-after")?wn.after:wn.multi}function a_(t){return encodeURIComponent(nt(t))}function fsA(t){var e,A=Y_(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(e=A?.getAttribute("data-path"))!==null&&e!==void 0?e:void 0;return i?da(decodeURIComponent(i)):void 0}function iGA(t){var{allElements:e,currentElement:A,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=fS(e.filter(function(u){var v=u.getBoundingClientRect();return v.width>0&&v.height>0}),a),s=a(A);function a(u){var v=u.getBoundingClientRect();return{x:v.left+v.width/2,y:v.top+v.height/2,rect:v,element:u}}function c(u,v){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,x=u.x-v.x,y=(u.y-v.y)*L;return Math.sqrt(x*x+y*y)}var l=u=>c(u,s);if(i==="Left"||i==="Right"){var I=i==="Left"?r.filter(u=>{return v=s,u.rect.left+o{return v=s,u.rect.right>v.rect.right+o;var v}),C=I.filter(u=>{return v=u,L=s,Math.abs(v.y-L.y)c(u,s,10));return d?.element}if(i==="Up"||i==="Down"){var B=i==="Up"?r.filter(u=>{return v=s,u.y+o{return v=s,u.y>v.y+o;var v}),E=B.filter(u=>n(u.element)),Q=jB(E,l)||jB(B,l);return Q?.element}}function T_(){var t,e,A,i;return typeof navigator<"u"&&(t=(e=(A=navigator)===null||A===void 0||(A=A.platform)===null||A===void 0?void 0:A.toUpperCase().includes("MAC"))!==null&&e!==void 0?e:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function A2(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",A=[];z_(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:T_)&&A.push("Ctrl"),t.altKey&&A.push("Alt"),t.shiftKey&&A.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in nGA||A.push(i),A.join(e)}function z_(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:T_;return t.ctrlKey||t.metaKey&&e()}var nGA={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function vt(t,e){e===void 0&&(e={});var A=e.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",A==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}vt(`.jse-absolute-popup.svelte-1r8q3m8 { + position: relative; + left: 0; + top: 0; + width: 0; + height: 0; + z-index: 1001; +} +.jse-absolute-popup.svelte-1r8q3m8 .jse-hidden-input:where(.svelte-1r8q3m8) { + position: fixed; + left: 0; + top: 0; + width: 0; + height: 0; + padding: 0; + margin: 0; + border: none; + outline: none; + overflow: hidden; +} +.jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content:where(.svelte-1r8q3m8) { + position: absolute; +}`);var oGA=pA('
    '),rGA=pA('
    ');function sGA(t,e){st(e,!1);var A=k(e,"popup",8),i=k(e,"closeAbsolutePopup",8),n=X(),o=X();function r(I){A().options&&A().options.closeOnOuterClick&&!ch(I.target,C=>C===g(n))&&i()(A().id)}function s(I){A2(I)==="Escape"&&(I.preventDefault(),I.stopPropagation(),i()(A().id))}ls(function(){g(o)&&g(o).focus()}),Rt();var a=rGA();re("mousedown",q0,function(I){r(I)},!0),re("keydown",q0,s,!0),re("wheel",q0,function(I){r(I)},!0);var c=$(a),l=I=>{var C=oGA(),d=$(C);to(d,B=>b(o,B),()=>g(o)),esA(gA(d,2),()=>A().component,(B,E)=>{E(B,U1(()=>A().props))}),Ee(B=>vl(C,B),[()=>function(B,E){var Q=B.getBoundingClientRect(),{left:u,top:v,positionAbove:L,positionLeft:x}=function(){if(E.anchor){var{anchor:y,width:F=0,height:U=0,offsetTop:T=0,offsetLeft:N=0,position:K}=E,{left:H,top:j,bottom:IA,right:lA}=y.getBoundingClientRect(),uA=K==="top"||j+U>window.innerHeight&&j>U,p=K==="left"||H+F>window.innerWidth&&H>F;return{left:p?lA-N:H+N,top:uA?j-T:IA+T,positionAbove:uA,positionLeft:p}}if(typeof E.left=="number"&&typeof E.top=="number"){var{left:V,top:cA,width:aA=0,height:jA=0}=E;return{left:V,top:cA,positionAbove:cA+jA>window.innerHeight&&cA>jA,positionLeft:V+aA>window.innerWidth&&V>aA}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(L?"bottom: ".concat(Q.top-v,"px;"):"top: ".concat(v-Q.top,"px;"))+(x?"right: ".concat(Q.left-u,"px;"):"left: ".concat(u-Q.left,"px;"))}(g(n),A().options)],PA),iA(I,C)};MA(c,I=>{g(n)&&I(l)}),to(a,I=>b(n,I),()=>g(n)),re("mousedown",a,function(I){I.stopPropagation()}),re("keydown",a,s),iA(t,a),at()}var aGA=pA(" ",1);function c_(t,e){st(e,!1);var A,i,n=wr("jsoneditor:AbsolutePopup"),o=X([],!0);function r(c){var l=g(o).findIndex(C=>C.id===c);if(l!==-1){var I=g(o)[l];I.options.onClose&&I.options.onClose(),b(o,g(o).filter(C=>C.id!==c))}}A="absolute-popup",i={openAbsolutePopup:function(c,l,I){n("open...",l,I);var C={id:TE(),component:c,props:l||{},options:I||{}};return b(o,[...g(o),C]),C.id},closeAbsolutePopup:r},vrA().set(A,i),fA(()=>g(o),()=>{n("popups",g(o))}),nn(),Rt(!0);var s=aGA(),a=Bt(s);Fo(a,1,()=>g(o),Zo,(c,l)=>{sGA(c,{get popup(){return g(l)},closeAbsolutePopup:r})}),xo(gA(a,2),e,"default",{},null),iA(t,s),at()}function q3(t,e){for(var A=new Set(e),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;A.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function S3(t,e){var A=e-3;return t.length>e?t.substring(0,A)+"...":t}function cGA(t){if(t==="")return"";var e=t.toLowerCase();if(e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(e!=="undefined"){var A=Number(t),i=parseFloat(t);return isNaN(A)||isNaN(i)?t:A}}var lGA={id:"jsonquery",name:"JSONQuery",description:` +

    + Enter a JSON Query function to filter, sort, or transform the data. + You can use functions like get, filter, + sort, pick, groupBy, uniq, etcetera. + Example query: filter(.age >= 18) +

    +`,createQuery:function(t,e){var{filter:A,sort:i,projection:n}=e,o=[];A&&A.path&&A.relation&&A.value&&o.push(["filter",[(r=A.relation,kS("1 ".concat(r," 1"))[0]),UD(A.path),cGA(A.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",UD(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(UD)]):o.push(["map",UD(n.paths[0])])),dW(["pipe",...o])},executeQuery:function(t,e,A){var i=IsA(A,JSON)?t:function(n){var o=A.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return e.trim()!==""?BW(i,e):i}};function UD(t){return["get",...t]}var gGA=O1("");function IGA(t,e){st(e,!1);var A=870711,i=X(""),n=k(e,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(l,I)=>{var C="fa-".concat((A+=1).toString(16));return c[I]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(l,I,C,d)=>{var B=I||d;return B&&c[B]?"#".concat(c[B]):l}),a}fA(()=>W(n()),()=>{b(i,o(n()))}),nn();var r=gGA();AsA($(r),()=>g(i),!0),iA(t,r),at()}vt(` + .fa-icon.svelte-1mc5hvj { + display: inline-block; + fill: currentColor; + } + .fa-flip-horizontal.svelte-1mc5hvj { + transform: scale(-1, 1); + } + .fa-flip-vertical.svelte-1mc5hvj { + transform: scale(1, -1); + } + .fa-spin.svelte-1mc5hvj { + animation: svelte-1mc5hvj-fa-spin 1s 0s infinite linear; + } + .fa-inverse.svelte-1mc5hvj { + color: #fff; + } + .fa-pulse.svelte-1mc5hvj { + animation: svelte-1mc5hvj-fa-spin 1s infinite steps(8); + } + @keyframes svelte-1mc5hvj-fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } +`);var CGA=O1(""),dGA=O1(""),BGA=O1(""),EGA=O1("",1);function Si(t,e){var A=_D(e,["children","$$slots","$$events","$$legacy"]),i=_D(A,["class","data","scale","spin","inverse","pulse","flip","label","style"]);st(e,!1);var n=k(e,"class",8,""),o=k(e,"data",8),r=X(),s=k(e,"scale",8,1),a=k(e,"spin",8,!1),c=k(e,"inverse",8,!1),l=k(e,"pulse",8,!1),I=k(e,"flip",8,void 0),C=k(e,"label",8,""),d=k(e,"style",8,""),B=X(10),E=X(10),Q=X(),u=X();function v(){var x=1;return s()!==void 0&&(x=Number(s())),isNaN(x)||x<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*x}function L(){return g(r)?Math.max(g(r).width,g(r).height)/16:1}fA(()=>(W(o()),W(d()),W(s())),()=>{b(r,function(x){var y;if(x){if(!("definition"in x)){if("iconName"in x&&"icon"in x){x.iconName;var[F,U,,,T]=x.icon;y={width:F,height:U,paths:(Array.isArray(T)?T:[T]).map(N=>({d:N}))}}else y=x[Object.keys(x)[0]];return y}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),d(),s(),b(B,g(r)?g(r).width/L()*v():0),b(E,g(r)?g(r).height/L()*v():0),b(Q,function(){var x="";d()!==null&&(x+=d());var y=v();return y===1?x.length===0?"":x:(x===""||x.endsWith(";")||(x+="; "),"".concat(x,"font-size: ").concat(y,"em"))}()),b(u,g(r)?"0 0 ".concat(g(r).width," ").concat(g(r).height):"0 0 ".concat(g(B)," ").concat(g(E)))}),nn(),Rt(),function(x,y){var F,U=_D(y,["children","$$slots","$$events","$$legacy"]),T=_D(U,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),N=k(y,"class",8,""),K=k(y,"width",8),H=k(y,"height",8),j=k(y,"box",8,"0 0 0 0"),IA=k(y,"spin",8,!1),lA=k(y,"inverse",8,!1),uA=k(y,"pulse",8,!1),p=k(y,"flip",8,"none"),V=k(y,"style",8,""),cA=k(y,"label",8,""),aA=CGA();xo($(aA),y,"default",{},null),Ee(jA=>{var VA;return F=jD(aA,F,Be(Be({version:"1.1",class:"fa-icon ".concat((VA=N())!==null&&VA!==void 0?VA:""),width:K(),height:H(),"aria-label":cA(),role:cA()?"img":"presentation",viewBox:j(),style:V()},T),{},{[YE]:jA}),"svelte-1mc5hvj")},[()=>({"fa-spin":IA(),"fa-pulse":uA(),"fa-inverse":lA(),"fa-flip-horizontal":p()==="horizontal","fa-flip-vertical":p()==="vertical"})],PA),iA(x,aA)}(t,U1({get label(){return C()},get width(){return g(B)},get height(){return g(E)},get box(){return g(u)},get style(){return g(Q)},get spin(){return a()},get flip(){return I()},get inverse(){return c()},get pulse(){return l()},get class(){return n()}},()=>i,{children:(x,y)=>{var F=po();xo(Bt(F),e,"default",{},U=>{var T=EGA(),N=Bt(T);Fo(N,1,()=>{var IA;return((IA=g(r))===null||IA===void 0?void 0:IA.paths)||[]},Zo,(IA,lA)=>{var uA,p=dGA();Ee(()=>uA=jD(p,uA,Be({},g(lA)))),iA(IA,p)});var K=gA(N);Fo(K,1,()=>{var IA;return((IA=g(r))===null||IA===void 0?void 0:IA.polygons)||[]},Zo,(IA,lA)=>{var uA,p=BGA();Ee(()=>uA=jD(p,uA,Be({},g(lA)))),iA(IA,p)});var H=gA(K),j=IA=>{IGA(IA,{get data(){return g(r)},set data(lA){b(r,lA)},$$legacy:!0})};MA(H,IA=>{var lA;(lA=g(r))!==null&&lA!==void 0&&lA.raw&&IA(j)}),iA(U,T)}),iA(x,F)},$$slots:{default:!0}})),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-boolean-toggle.svelte-1ryp01u { + padding: 0; + margin: 1px 0 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-value-color-boolean, #ff8c00); +} + +.jse-boolean-toggle.svelte-1ryp01u:not(.jse-readonly) { + cursor: pointer; +}`);var hGA=pA('
    ');function QGA(t,e){st(e,!1);var A=k(e,"path",9),i=k(e,"value",9),n=k(e,"readOnly",9),o=k(e,"onPatch",9),r=k(e,"focus",9);Rt(!0);var s,a=hGA(),c=$(a),l=PA(()=>i()===!0?SS:RS);Si(c,{get data(){return g(l)}}),Ee(I=>{en(a,"aria-checked",i()===!0),s=xt(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,I),en(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],PA),re("mousedown",a,function(I){I.stopPropagation(),n()||(o()([{op:"replace",path:nt(A()),value:!i()}]),r()())}),iA(t,a),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup, +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::before, +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::after { + background: var(--jse-color-picker-background, var(--jse-panel-background, #ebebeb)); + line-height: normal; +} +.jse-color-picker-popup.svelte-s1wu8v .picker_slider, +.jse-color-picker-popup.svelte-s1wu8v .picker_sl, +.jse-color-picker-popup.svelte-s1wu8v .picker_editor input, +.jse-color-picker-popup.svelte-s1wu8v .picker_sample, +.jse-color-picker-popup.svelte-s1wu8v .picker_done button { + box-shadow: var(--jse-color-picker-border-box-shadow, #cbcbcb 0 0 0 1px); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_editor input { + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_done button { + background: var(--jse-button-background, #e0e0e0); + color: var(--jse-button-color, var(--jse-text-color, #4d4d4d)); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_done button:hover { + background: var(--jse-button-background-highlight, #e7e7e7); +}`);var uGA=pA('
    ');function fGA(t,e){st(e,!1);var A=k(e,"color",8),i=k(e,"onChange",8),n=k(e,"showOnTop",8),o=X(),r=()=>{};ls(yt(function*(){var a,c=new((a=yield import("./chunk-TXJFAAIW.js"))===null||a===void 0?void 0:a.default)({parent:g(o),color:A(),popup:n()?"top":"bottom",onDone(l){var I=l.rgba[3]===1?l.hex.substring(0,7):l.hex;i()(I)}});c.show(),r=()=>{c.destroy()}})),Tc(()=>{r()}),Rt();var s=uGA();to(s,a=>b(o,a),()=>g(o)),iA(t,s),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-color-picker-button.svelte-xeg9n6 { + font-size: var(--jse-font-size-mono, 14px); + width: var(--jse-color-picker-button-size, 1em); + height: var(--jse-color-picker-button-size, 1em); + box-sizing: border-box; + padding: 0; + margin: 2px 0 0 calc(0.5 * var(--jse-padding, 10px)); + display: inline-flex; + vertical-align: top; + border: 1px solid var(--jse-text-color, #4d4d4d); + border-radius: 2px; + background: inherit; + outline: none; +} + +.jse-color-picker-button.svelte-xeg9n6:not(.jse-readonly) { + cursor: pointer; +}`);var mGA=pA('');function pGA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),{openAbsolutePopup:n}=H1("absolute-popup"),o=k(e,"path",9),r=k(e,"value",9),s=k(e,"readOnly",9),a=k(e,"onPatch",9),c=k(e,"focus",9);function l(B){a()([{op:"replace",path:nt(o()),value:B}]),I()}function I(){c()()}fA(()=>W(r()),()=>{b(A,rsA(r()))}),fA(()=>(W(s()),W(r())),()=>{b(i,s()?"Color ".concat(r()):"Click to open a color picker")}),nn(),Rt(!0);var C,d=mGA();Ee(B=>{var E;C=xt(d,1,"jse-color-picker-button svelte-xeg9n6",null,C,B),vl(d,"background: ".concat((E=g(A))!==null&&E!==void 0?E:"")),en(d,"title",g(i)),en(d,"aria-label",g(i))},[()=>({"jse-readonly":s()})],PA),re("click",d,function(B){var E,Q;if(!s()){var u=B.target,v=u.getBoundingClientRect().top,L=((E=(Q=j3(u))===null||Q===void 0?void 0:Q.innerHeight)!==null&&E!==void 0?E:0)-v<300&&v>300,x={color:r(),onChange:l,showOnTop:L};n(fGA,x,{anchor:u,closeOnOuterClick:!0,onClose:I,offsetTop:18,offsetLeft:-8,height:300})}}),iA(t,d),at()}var SN=1e3,R3=100,l_=2e4,PE=[{start:0,end:R3}],wGA=1048576,DGA=1048576,UoA=10485760,RN="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",H_="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",Q3="hover-insert-inside",LN="hover-insert-after",KoA="hover-collection",xN="valid",YoA="repairable",H0=336,O0=260,p3=100,JoA={[ml.asc]:"ascending",[ml.desc]:"descending"};function msA(t){for(var e=DS(t,s=>s.start),A=[e[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:PE,items:[]}}function j_(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var q_={createObjectDocumentState:j_,createArrayDocumentState:P_,createValueDocumentState:function(){return{type:"value"}}};function wsA(t,e,A,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,l){if(Array.isArray(a)){var I=cs(c)?c:o();if(l.length===0)return I;var C=jr(l[0]),d=s(a[C],I.items[C],l.slice(1));return As(I,["items",l[0]],d)}if(tn(a)){var B=kl(c)?c:n();if(l.length===0)return B;var E=l[0],Q=s(a[E],B.properties[E],l.slice(1));return As(B,["properties",E],Q)}return O_(c)?c:r()}(t,e,A)}function cc(t,e){return L3(t,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(A,i)=>{if(A!==void 0&&i!==void 0)return Array.isArray(A)?cs(i)?i:P_({expanded:!!UC(i)&&i.expanded}):tn(A)?kl(i)?i:j_({expanded:!!UC(i)&&i.expanded}):O_(i)?i:void 0},()=>!0)}function L3(t,e,A,i,n){var o=i(t,e,A);if(Array.isArray(t)&&cs(o)&&n(o)){var r=[];return V_(t,o.visibleSections,a=>{var c=A.concat(String(a)),l=L3(t[a],o.items[a],c,i,n);l!==void 0&&(r[a]=l)}),LoA(r,o.items)?o:Be(Be({},o),{},{items:r})}if(tn(t)&&kl(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=A.concat(a),l=L3(t[a],o.properties[a],c,i,n);l!==void 0&&(s[a]=l)}),LoA(Object.values(s),Object.values(o.properties))?o:Be(Be({},o),{},{properties:s})}return o}function V_(t,e,A){e.forEach(i=>{var{start:n,end:o}=i;ssA(n,Math.min(t.length,o),A)})}function x3(t,e){for(var A=t,i=[],n=0;n{var I=UC(l)&&!l.expanded?Be(Be({},l),{},{expanded:!0}):l;return cs(I)?function(C,d){if(function(Q,u){return Q.some(v=>u>=v.start&&ufunction(c,l,I,C){return L3(c,l,I,(d,B,E)=>Array.isArray(d)&&C(E)?cs(B)?B.expanded?B:Be(Be({},B),{},{expanded:!0}):P_({expanded:!0}):tn(d)&&C(E)?kl(B)?B.expanded?B:Be(Be({},B),{},{expanded:!0}):j_({expanded:!0}):B,d=>UC(d)&&d.expanded)}(s,a,[],i))}function PoA(t,e,A,i){return $E(t,e,A,(n,o)=>i?function(r,s,a){return L3(r,s,a,(c,l)=>joA(l),()=>!0)}(n,o,A):joA(o))}function joA(t){return cs(t)&&t.expanded?Be(Be({},t),{},{expanded:!1,visibleSections:PE}):kl(t)&&t.expanded?Be(Be({},t),{},{expanded:!1}):t}function DsA(t,e,A){var i={json:t,documentState:e},n=A.reduce((o,r)=>({json:Ba(o.json,[r]),documentState:LGA(o.json,o.documentState,r)}),i);return{json:n.json,documentState:cc(n.json,n.documentState)}}function LGA(t,e,A){if(Vk(A))return qoA(t,e,A,void 0);if(Zk(A))return VoA(t,e,A);if(Q8(A)){var i=Ea(t,A.path),n=Z0(t,e,i);return n?by(t,e,i,{type:"value",enforceString:n}):e}return u8(A)||HI(A)?function(o,r,s){if(HI(s)&&s.from===s.path)return r;var a=r,c=Ea(o,s.from),l=kC(o,a,c);return HI(s)&&(a=VoA(o,a,{path:s.from})),a=qoA(o,a,{path:s.path},l),a}(t,e,A):e}function kC(t,e,A){try{return Fe(e,x3(t,A))}catch{return}}function Z_(t,e,A,i,n){var o=wsA(t,e,A,n);return Lu(o,x3(t,A),r=>{var s=Fe(t,A);return i(s,r)})}function by(t,e,A,i){return function(n,o,r,s,a){var c=wsA(n,o,r,a);return As(c,x3(n,r),s)}(t,e,A,i,q_)}function $E(t,e,A,i){return Z_(t,e,A,i,q_)}function qoA(t,e,A,i){var n=Ea(t,A.path),o=e;return o=$E(t,o,pi(n),(r,s)=>{if(!cs(s))return s;var a=jr(ri(n)),{items:c,visibleSections:l}=s;return Be(Be({},s),{},{items:a{if(!cs(s))return s;var a=jr(ri(i)),{items:c,visibleSections:l}=s;return Be(Be({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:ysA(l,a,-1)})}):function(r,s,a){var c=x3(r,a);return Qs(s,c)?OI(s,x3(r,a)):s}(t,e,i)}function ysA(t,e,A){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>e?i.start+A:i.start,end:i.end>e?i.end+A:i.end})))}function Z0(t,e,A){var i,n=Fe(t,A),o=kC(t,e,A),r=O_(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof ah(i,JSON)!="string"}function V3(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(e);return i!==-1?A?t.slice(i):t.slice(i+1):[]}function W_(t,e){var A=[];return function i(n,o,r){A.push(r),ao(n)&&cs(o)&&o.expanded&&V_(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),Mo(n)&&kl(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,e,[]),A}function vsA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:wl.value});var s=kC(t,e,r);if(o&&UC(s)&&s.expanded){if(A&&i.push({path:r,type:wl.inside}),ao(o)){var a=cs(s)?s.visibleSections:PE;V_(o,a,c=>{var l=r.concat(String(c));n(o[c],l),A&&i.push({path:l,type:wl.after})})}Mo(o)&&Object.keys(o).forEach(c=>{var l=r.concat(c);i.push({path:l,type:wl.key}),n(o[c],l),A&&i.push({path:l,type:wl.after})})}}(t,[]),i}function NN(t,e,A){var i=W_(t,e),n=i.map(nt).indexOf(nt(A));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return pl(t,e,A,j_A({json:Fe(t,A)},i)?w3:X_)}function _N(t,e,A){var i=kC(t,e,A);return UC(i)&&i.expanded?e:KC(t,e,A)}function w3(t){return t.length===0||t.length===1&&t[0]==="0"}function ZoA(t){return t.length===0}function X_(){return!0}function VD(){return!1}function Yc(t){return t&&t.type===wn.after||!1}function as(t){return t&&t.type===wn.inside||!1}function pr(t){return t&&t.type===wn.key||!1}function dn(t){return t&&t.type===wn.value||!1}function Ao(t){return t&&t.type===wn.multi||!1}function My(t){return Ao(t)&&Ei(t.focusPath,t.anchorPath)}function F3(t){return Ao(t)||Yc(t)||as(t)||pr(t)||dn(t)}function GN(t){return t&&t.type===wn.text||!1}function z1(t,e){var A=[];return function(i,n,o){if(n){var r=SC(n),s=je(n);if(Ei(r,s))return o(r);if(i!==void 0){var a=MsA(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=ys(r,s),l=P0(i,c),I=Y1(i,c),C=X0(i,c,l),d=X0(i,c,I);if(!(C===-1||d===-1)){var B=Fe(i,a);if(Mo(B)){for(var E=Object.keys(B),Q=C;Q<=d;Q++){var u=o(a.concat(E[Q]));if(u!==void 0)return u}return}if(ao(B)){for(var v=C;v<=d;v++){var L=o(a.concat(String(v)));if(L!==void 0)return L}return}throw new Error("Failed to create selection")}}}}(t,e,i=>{A.push(i)}),A}function bsA(t){return as(t)?t.path:pi(je(t))}function P0(t,e){if(!Ao(e))return e.path;var A=X0(t,e,e.anchorPath);return X0(t,e,e.focusPath)A?e.focusPath:e.anchorPath}function WoA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(A){var n=i?je(A):P0(t,A),o=function(a,c,l){var I=W_(a,c),C=I.map(nt),d=nt(l),B=C.indexOf(d);if(B!==-1&&B>0)return I[B-1]}(t,e,n);if(i)return as(A)||Yc(A)?o!==void 0?ys(n,n):void 0:o!==void 0?ys(SC(A),o):void 0;if(Yc(A)||as(A))return hi(n);if(pr(A)){if(o===void 0||o.length===0)return;var r=pi(o),s=Fe(t,r);return Array.isArray(s)||sn(o)?hi(o):t2(o)}return dn(A),o!==void 0?hi(o):void 0}}function XoA(t,e,A,i){if(!A)return{caret:void 0,previous:void 0,next:void 0};var n=vsA(t,e,i),o=n.findIndex(r=>Ei(r.path,je(A))&&String(r.type)===String(A.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oA[i].length;)i++;var n=A[i];return n===void 0||n.length===0||Array.isArray(Fe(t,pi(n)))?hi(n):t2(n)}function Ah(t,e){if(e.length===1){var A=Mc(e);if(A.op==="replace")return hi(Ea(t,A.path))}if(!sn(e)&&e.every(r=>r.op==="move")){var i=Mc(e),n=e.slice(1);if((u8(i)||HI(i))&&i.from!==i.path&&n.every(r=>(u8(r)||HI(r))&&r.from===r.path))return t2(Ea(t,i.path))}var o=e.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>Ea(t,r.path));if(!sn(o))return{type:wn.multi,anchorPath:Mc(o),focusPath:ri(o)}}function MsA(t,e){for(var A=0;AA.length&&e.length>A.length;return{type:wn.multi,anchorPath:i?A.concat(t[A.length]):A,focusPath:i?A.concat(e[A.length]):A}}function ksA(t,e,A,i){if(pr(e))return String(ri(e.path));if(dn(e)){var n=Fe(t,e.path);return typeof n=="string"?n:i.stringify(n,null,A)}if(Ao(e)){if(sn(e.focusPath))return i.stringify(t,null,A);var o=bsA(e),r=Fe(t,o);if(Array.isArray(r)){if(My(e)){var s=Fe(t,e.focusPath);return i.stringify(s,null,A)}return z1(t,e).map(a=>{var c=Fe(t,a);return"".concat(i.stringify(c,null,A),",")}).join(` +`)}return z1(t,e).map(a=>{var c=ri(a),l=Fe(t,a);return"".concat(i.stringify(c),": ").concat(i.stringify(l,null,A),",")}).join(` +`)}}function Ma(t){return(pr(t)||dn(t))&&t.edit===!0}function zE(t){return pr(t)||dn(t)||Ao(t)}function KD(t){return pr(t)||dn(t)||My(t)}function C_(t){switch(t.type){case wl.key:return t2(t.path);case wl.value:return hi(t.path);case wl.after:return W0(t.path);case wl.inside:return i2(t.path)}}function ArA(t,e){switch(t){case wn.key:return t2(e);case wn.value:return hi(e);case wn.after:return W0(e);case wn.inside:return i2(e);case wn.multi:case wn.text:return ys(e,e)}}function erA(t,e,A){if(e)return N3(t,e,A)||e2(Ao(e)?pi(e.focusPath):e.path,A)?e:void 0}function N3(t,e,A){if(t===void 0||!e)return!1;if(pr(e)||as(e)||Yc(e))return Ei(e.path,A);if(dn(e))return e2(A,e.path);if(Ao(e)){var i=P0(t,e),n=Y1(t,e),o=pi(e.focusPath);if(!e2(A,o)||A.length<=o.length)return!1;var r=X0(t,e,i),s=X0(t,e,n),a=X0(t,e,A);return a!==-1&&a>=r&&a<=s}return!1}function X0(t,e,A){var i=pi(e.focusPath);if(!e2(A,i)||A.length<=i.length)return-1;var n=A[i.length],o=Fe(t,i);if(Mo(o))return Object.keys(o).indexOf(n);if(ao(o)){var r=jr(n);if(r');function RsA(t,e){st(e,!1);var A=wr("jsoneditor:EditableDiv"),i=k(e,"value",9),n=k(e,"initialValue",9),o=k(e,"shortText",9,!1),r=k(e,"label",9),s=k(e,"onChange",9),a=k(e,"onCancel",9),c=k(e,"onFind",9),l=k(e,"onPaste",9,Jo),I=k(e,"onValueClass",9,()=>""),C=X(void 0,!0),d=X(void 0,!0),B=!1;function E(){return g(C)?function(v){return v.replace(/\n$/,"")}(g(C).innerText):""}function Q(v){g(C)&&lc(C,g(C).innerText=vy(v))}ls(()=>{A("onMount",{value:i(),initialValue:n()}),Q(n()!==void 0?n():i()),g(C)&&function(v){if(v.firstChild!=null){var L=document.createRange(),x=window.getSelection();L.setStart(v,1),L.collapse(!0),x?.removeAllRanges(),x?.addRange(L)}else v.focus()}(g(C))}),Tc(()=>{var v=E();A("onDestroy",{closed:B,value:i(),newValue:v}),B||v===i()||s()(v,K1.no)}),fA(()=>(W(I()),W(i())),()=>{b(d,I()(i()))}),nn(),Rt(!0);var u=xGA();to(u,v=>b(C,v),()=>g(C)),Ee(v=>{en(u,"aria-label",r()),xt(u,1,v,"svelte-f9kmxj")},[()=>T1(lh("jse-editable-div",g(d),{"jse-short-text":o()}))],PA),re("input",u,function(){var v=E();v===""&&Q(""),b(d,I()(v))}),re("keydown",u,function(v){v.stopPropagation();var L=A2(v);if(L==="Escape"&&(v.preventDefault(),B=!0,a()()),L==="Enter"||L==="Tab"){v.preventDefault(),B=!0;var x=E();s()(x,K1.nextInside)}L==="Ctrl+F"&&(v.preventDefault(),c()(!1)),L==="Ctrl+H"&&(v.preventDefault(),c()(!0))}),re("paste",u,function(v){if(v.stopPropagation(),l()&&v.clipboardData){var L=v.clipboardData.getData("text/plain");l()(L)}}),re("blur",u,function(){var v=document.hasFocus(),L=E();A("handleBlur",{hasFocus:v,closed:B,value:i(),newValue:L}),document.hasFocus()&&!B&&(B=!0,L!==i()&&s()(L,K1.self))}),iA(t,u),at()}function FGA(t,e){st(e,!1);var A=k(e,"path",9),i=k(e,"value",9),n=k(e,"selection",9),o=k(e,"mode",9),r=k(e,"parser",9),s=k(e,"normalization",9),a=k(e,"enforceString",9),c=k(e,"onPatch",9),l=k(e,"onPasteJson",9),I=k(e,"onSelect",9),C=k(e,"onFind",9),d=k(e,"focus",9),B=k(e,"findNextInside",9);function E(L){return a()?L:ah(L,r())}function Q(){I()(hi(A())),d()()}Rt(!0);var u=PA(()=>s().escapeValue(i())),v=PA(()=>Ma(n())?n().initialValue:void 0);RsA(t,{get value(){return g(u)},get initialValue(){return g(v)},label:"Edit value",onChange:function(L,x){c()([{op:"replace",path:nt(A()),value:E(s().unescapeValue(L))}],(y,F,U)=>{if(!U||Ei(A(),je(U)))return{state:F,selection:x===K1.nextInside?B()(A()):hi(A())}}),d()()},onCancel:Q,onPaste:function(L){try{var x=r().parse(L);zo(x)&&l()({path:A(),contents:x,onPasteAsJson:()=>{Q();var y=[{op:"replace",path:nt(A()),value:x}];c()(y,(F,U)=>({state:KC(F,U,A())}))}})}catch{}},get onFind(){return C()},onValueClass:function(L){return SsA(E(s().unescapeValue(L)),o(),r())}}),at()}function HE(t,e,A){var i=pi(e),n=Fe(t,i);if(ao(n)){var o=jr(ri(e));return A.map((c,l)=>({op:"add",path:nt(i.concat(String(o+l))),value:c.value}))}if(Mo(n)){var r=ri(e),s=Object.keys(n),a=r!==void 0?V3(s,r,!0):[];return[...A.map(c=>{var l=q3(c.key,s);return{op:"add",path:nt(i.concat(l)),value:c.value}}),...a.map(c=>YC(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function d_(t,e,A){var i=Fe(t,e);if(Array.isArray(i)){var n=i.length;return A.map((o,r)=>({op:"add",path:nt(e.concat(String(n+r))),value:o.value}))}return A.map(o=>{var r=q3(o.key,Object.keys(i));return{op:"add",path:nt(e.concat(r)),value:o.value}})}function Z3(t,e,A,i){var n=q3(i,e.filter(r=>r!==A)),o=V3(e,A,!1);return[{op:"move",from:nt(t.concat(A)),path:nt(t.concat(n))},...o.map(r=>YC(t,r))]}function LsA(t,e){var A=ri(e);if(sn(A))throw new Error("Cannot duplicate root object");var i=pi(A),n=ri(A),o=Fe(t,i);if(ao(o)){var r=ri(e),s=r?jr(ri(r))+1:0;return[...e.map((l,I)=>({op:"copy",from:nt(l),path:nt(i.concat(String(I+s)))}))]}if(Mo(o)){var a=Object.keys(o),c=n!==void 0?V3(a,n,!1):[];return[...e.map(l=>{var I=q3(ri(l),a);return{op:"copy",from:nt(l),path:nt(i.concat(I))}}),...c.map(l=>YC(i,l))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function xsA(t,e){if(dn(e))return[{op:"move",from:nt(e.path),path:""}];if(!Ao(e))throw new Error("Cannot create extract operations: parent must be an Object or Array");var A=pi(e.focusPath),i=Fe(t,A);if(ao(i)){var n=z1(t,e).map(r=>{var s=jr(ri(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(Mo(i)){var o={};return z1(t,e).forEach(r=>{var s=String(ri(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(e))}function FsA(t,e,A,i){if(pr(e)){var n=csA(A,i),o=pi(e.path),r=Fe(t,o);return Z3(o,Object.keys(r),ri(e.path),typeof n=="string"?n:A)}if(dn(e)||Ao(e)&&sn(e.focusPath))try{return[{op:"replace",path:nt(je(e)),value:P3(A,F=>O3(F,i))}]}catch{return[{op:"replace",path:nt(je(e)),value:A}]}if(Ao(e)){var s=UN(A,i);return function(F,U,T){var N=Mc(U),K=pi(N),H=Fe(F,K);if(ao(H)){var j=Mc(U),IA=j?jr(ri(j)):0;return[...ay(U),...T.map((VA,ce)=>({op:"add",path:nt(K.concat(String(ce+IA))),value:VA.value}))]}if(Mo(H)){var lA=ri(U),uA=pi(lA),p=ri(lA),V=Object.keys(H),cA=p!==void 0?V3(V,p,!1):[],aA=new Set(U.map(VA=>ri(VA))),jA=V.filter(VA=>!aA.has(VA));return[...ay(U),...T.map(VA=>{var ce=q3(VA.key,jA);return{op:"add",path:nt(uA.concat(ce)),value:VA.value}}),...cA.map(VA=>YC(uA,VA))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,z1(t,e),s)}if(Yc(e)){var a=UN(A,i),c=e.path,l=pi(c),I=Fe(t,l);if(ao(I)){var C=jr(ri(c));return HE(t,l.concat(String(C+1)),a)}if(Mo(I)){var d=String(ri(c)),B=Object.keys(I);if(sn(B)||ri(B)===d)return d_(t,l,a);var E=B.indexOf(d),Q=B[E+1];return HE(t,l.concat(Q),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(as(e)){var u=UN(A,i),v=e.path,L=Fe(t,v);if(ao(L))return HE(t,v.concat("0"),u);if(Mo(L)){var x=Object.keys(L);if(sn(x))return d_(t,v,u);var y=Mc(x);return HE(t,v.concat(y),u)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(e))}function ay(t){return t.map(e=>({op:"remove",path:nt(e)})).reverse()}function YC(t,e){return{op:"move",from:nt(t.concat(e)),path:nt(t.concat(e))}}function UN(t,e){var A=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=csA(t,e),o=n!==void 0?n:P3(t,r=>O3(r,e));return A&&tn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):tn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function NsA(t,e){if(pr(e)){var A=pi(e.path),i=Fe(t,A),n=Z3(A,Object.keys(i),ri(e.path),"");return{operations:n,newSelection:Ah(t,n)}}if(dn(e))return{operations:[{op:"replace",path:nt(e.path),value:""}],newSelection:e};if(Ao(e)){var o=z1(t,e),r=ay(o),s=ri(o);if(sn(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:hi([])};var a=pi(s),c=Fe(t,a);if(ao(c)){var l=Mc(o),I=jr(ri(l));return{operations:r,newSelection:I===0?i2(a):W0(a.concat(String(I-1)))}}if(Mo(c)){var C=Object.keys(c),d=Mc(o),B=ri(d),E=C.indexOf(B),Q=C[E-1];return{operations:r,newSelection:E===0?i2(a):W0(a.concat(Q))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(e))}function _sA(t,e){return function(A){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ei;return A.filter((n,o)=>{for(var r=o+1;r{if(Zk(i)){var o=da(i.path);return{revertOperations:[...n,...KN(A,o)]}}if(HI(i)){var r=da(i.from);return{revertOperations:i.from===i.path?[i,...KN(A,r)]:[...n,...KN(A,r)]}}return{document:A}}}))}function KN(t,e){var A=pi(e),i=ri(e),n=Fe(t,A);return Mo(n)?V3(Object.keys(n),i,!1).map(o=>YC(A,o)):[]}function trA(t){var e=t.activeIndex0?0:-1,A=t.items[e],i=t.items.map((n,o)=>Be(Be({},n),{},{active:o===e}));return Be(Be({},t),{},{items:i,activeItem:A,activeIndex:e})}function irA(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(A=i?.maxResults)!==null&&A!==void 0?A:1/0,r=i?.columns,s=[],a=[];function c(Q){s.length>=o||s.push(Q)}function l(Q,u){if(ao(u)){var v=a.length;a.push("0");for(var L=0;L=o)return;a.pop()}else if(Mo(u)){var x=Object.keys(u),y=a.length;for(var F of(a.push(""),x))if(a[y]=F,nrA(F,Q,a,Ml.key,c),l(Q,u[F]),s.length>=o)return;a.pop()}else nrA(String(u),Q,a,Ml.value,c)}if(t==="")return[];if(r){if(!Array.isArray(e))throw new Error("json must be an Array when option columns is defined");for(var I=0;IB.length+1;)a.pop();l(n,Fe(C,B))}if(s.length>=o)break}return s}return l(n,e),s}function nrA(t,e,A,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(e,s))!==-1&&(s=a+e.length,n({path:A.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function B_(t,e,A,i){return t.substring(0,A)+e+t.substring(i)}function orA(t,e,A){var i=t;return uS(A,n=>{i=B_(i,e,n.start,n.end)}),i}function NGA(t,e,A,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===Ml.key){var c=pi(r),l=Fe(t,c),I=ri(r),C=Z3(c,Object.keys(l),I,B_(I,A,s,a));return{newSelection:Ah(t,C),operations:C}}if(o===Ml.value){var d=Fe(t,r);if(d===void 0)throw new Error("Cannot replace: path not found ".concat(nt(r)));var B=typeof d=="string"?d:String(d),E=Z0(t,e,r),Q=B_(B,A,s,a),u=[{op:"replace",path:nt(r),value:E?Q:ah(Q,n)}];return{newSelection:Ah(t,u),operations:u}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function rrA(t){return t.path.concat(t.field,String(t.fieldIndex))}var _GA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function GsA(t,e){return e.reduce((A,i)=>function(n,o,r,s){return Z_(n,o,r,s,_GA)}(t,A,i.path,(n,o)=>Be(Be({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function E_(t){var e,A=(e=t?.searchResults)!==null&&e!==void 0?e:[],i=kl(t)?Object.values(t.properties).flatMap(E_):cs(t)?t.items.flatMap(E_):[];return A.concat(i)}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-highlight.svelte-5fb7bl { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-highlight.jse-active.svelte-5fb7bl { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +}`);var GGA=pA(" ");function UsA(t,e){st(e,!1);var A=X(),i=k(e,"text",8),n=k(e,"searchResultItems",8);fA(()=>(W(i()),W(n())),()=>{b(A,function(r,s){var a=[],c=0;for(var l of s){var I=r.slice(c,l.start);I!==""&&a.push({resultIndex:void 0,type:"normal",text:I,active:!1});var C=r.slice(l.start,l.end);a.push({resultIndex:l.resultIndex,type:"highlight",text:C,active:l.active}),c=l.end}var d=ri(s);return d&&d.endg(A),Zo,(r,s)=>{var a=po(),c=Bt(a),l=C=>{var d=_r();Ee(()=>Et(d,g(s).text)),iA(C,d)},I=C=>{var d,B=GGA(),E=$(B);Ee((Q,u,v)=>{d=xt(B,1,"jse-highlight svelte-5fb7bl",null,d,Q),en(B,"data-search-result-index",u),Et(E,v)},[()=>({"jse-active":g(s).active}),()=>String(g(s).resultIndex),()=>vy(g(s).text)],PA),iA(C,B)};MA(c,C=>{g(s).type==="normal"?C(l):C(I,!1)}),iA(r,a)}),iA(t,o),at()}function h_(t){var e=1e3;if(t<900)return t.toFixed()+" B";var A=t/e;if(A<900)return A.toFixed(1)+" KB";var i=A/e;if(i<900)return i.toFixed(1)+" MB";var n=i/e;return n<900?n.toFixed(1)+" GB":(n/e).toFixed(1)+" TB"}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tag.svelte-tqwlgz { + border: none; + font-size: 80%; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + border-radius: 2px; + cursor: pointer; + display: inline-block; + padding: 0 4px; + line-height: normal; + margin: 1px 0; +} +.jse-tag.svelte-tqwlgz:hover { + opacity: 0.8; +} +.jse-tag.svelte-tqwlgz:disabled { + opacity: 0.7; + cursor: inherit; +}`);var UGA=pA('');function ZD(t,e){st(e,!0);var A=ba(()=>e.onclick?n=>{n.preventDefault(),n.stopPropagation(),e.onclick()}:void 0),i=UGA();i.__click=function(){for(var n,o=arguments.length,r=new Array(o),s=0;s2?r-2:0),a=2;a{I!==(I=o())&&(c&&(Gg(c),c=null),c=$0(()=>I(l,...s)))},J3)}($(i),()=>{var n;return(n=e.children)!==null&&n!==void 0?n:QoA}),Ee(()=>i.disabled=!e.onclick),iA(t,i),at()}H3(["click"]);function KGA(t,e,A){typeof e.value=="string"&&g(A)&&z_(t)&&(t.preventDefault(),t.stopPropagation(),window.open(e.value,"_blank"))}function YGA(t,e){e.readOnly||(t.preventDefault(),e.onSelect(sy(e.path)))}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-value.jse-string.svelte-c0g9qz { + color: var(--jse-value-color-string, #008000); +} +.jse-value.jse-object.svelte-c0g9qz, .jse-value.jse-array.svelte-c0g9qz { + min-width: 16px; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-value.jse-number.svelte-c0g9qz { + color: var(--jse-value-color-number, #ee422e); +} +.jse-value.jse-boolean.svelte-c0g9qz { + color: var(--jse-value-color-boolean, #ff8c00); +} +.jse-value.jse-null.svelte-c0g9qz { + color: var(--jse-value-color-null, #004ed0); +} +.jse-value.jse-invalid.svelte-c0g9qz { + color: var(--jse-text-color, #4d4d4d); +} +.jse-value.jse-url.svelte-c0g9qz { + color: var(--jse-value-color-url, #008000); + text-decoration: underline; +} + +.jse-value.svelte-c0g9qz { + display: inline-block; + min-width: 2em; + padding: 0 5px; + box-sizing: border-box; + outline: none; + border-radius: 1px; + vertical-align: top; + word-break: normal; + overflow-wrap: anywhere; + white-space: pre-wrap; +} +.jse-value.jse-table-cell.svelte-c0g9qz { + overflow-wrap: normal; + white-space: nowrap; +} +.jse-value.jse-empty.svelte-c0g9qz { + min-width: 4em; + outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + -moz-outline-radius: 2px; +} +.jse-value.jse-empty.svelte-c0g9qz::after { + pointer-events: none; + color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + content: "value"; +}`);var JGA=pA('
    ');function TGA(t,e){st(e,!0);var A=T0(!0),i=ba(()=>g(A)&&typeof e.value=="string"&&e.value.length>e.truncateTextSize&&(!e.searchResultItems||!e.searchResultItems.some(d=>d.active&&d.end>e.truncateTextSize))),n=ba(()=>g(i)&&typeof e.value=="string"?e.value.substring(0,e.truncateTextSize).trim():e.value),o=ba(()=>yy(e.value));function r(){b(A,!1)}var s=JGA();s.__click=[KGA,e,o],s.__dblclick=[YGA,e];var a=$(s),c=d=>{var B=ba(()=>e.normalization.escapeValue(g(n)));UsA(d,{get text(){return g(B)},get searchResultItems(){return e.searchResultItems}})},l=d=>{var B=_r();Ee(E=>Et(B,E),[()=>vy(e.normalization.escapeValue(g(n)))]),iA(d,B)};MA(a,d=>{e.searchResultItems?d(c):d(l,!1)});var I=gA(a,2),C=d=>{ZD(d,{onclick:r,children:(B,E)=>{var Q=_r();Ee(u=>Et(Q,"Show more (".concat(u??"",")")),[()=>h_(e.value.length)]),iA(B,Q)},$$slots:{default:!0}})};MA(I,d=>{g(i)&&typeof e.value=="string"&&d(C)}),Ee(d=>{xt(s,1,d,"svelte-c0g9qz"),en(s,"title",g(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>T1(SsA(e.value,e.mode,e.parser))]),iA(t,s),at()}H3(["click","dblclick"]);vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tooltip.svelte-14y3y8t { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + border-radius: 3px; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + white-space: nowrap; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +}`);var zGA=pA('
    ');function HGA(t,e){var A=k(e,"text",8),i=zGA(),n=$(i);Ee(()=>Et(n,A())),iA(t,i)}function eh(t,e){var A,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=e;function r(){A=n(HGA,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(A)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-timestamp.svelte-1jla5ec { + padding: 0; + margin: 0; + vertical-align: middle; + display: inline-flex; + color: var(--jse-value-color-number, #ee422e); +}`);var OGA=pA('
    ');function PGA(t,e){st(e,!1);var A=X(void 0,!0),i=H1("absolute-popup"),n=k(e,"value",9);fA(()=>W(n()),()=>{b(A,"Time: ".concat(new Date(n()).toString()))}),nn(),Rt(!0);var o=OGA();Si($(o),{data:hW}),bs(o,(r,s)=>eh?.(r,s),()=>Be({text:g(A)},i)),iA(t,o),at()}function jGA(t){var e=[];return!t.isEditing&&J_A(t.value)&&e.push({component:QGA,props:t}),!t.isEditing&&T_A(t.value)&&e.push({component:pGA,props:t}),t.isEditing&&e.push({component:FGA,props:t}),t.isEditing||e.push({component:TGA,props:t}),!t.isEditing&&o_(t.value)&&e.push({component:PGA,props:t}),e}function Dl(t){return t.map((e,A)=>VGA.test(e)?"["+e+"]":/[.[\]]/.test(e)||e===""?'["'+function(i){return i.replace(/"/g,'\\"')}(e)+'"]':(A>0?".":"")+e).join("")}function qGA(t){for(var e=[],A=0;Ao==='"',!0)),n('"')):e.push(i(o=>o==="]")),n("]")):e.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";A({x:t,y:t}),XGA={left:"right",right:"left",bottom:"top",top:"bottom"},$GA={start:"end",end:"start"};function srA(t,e,A){return RC(t,cy(e,A))}function ky(t,e){return typeof t=="function"?t(e):t}function LC(t){return t.split("-")[0]}function gy(t){return t.split("-")[1]}function KsA(t){return t==="x"?"y":"x"}function YsA(t){return t==="y"?"height":"width"}function xC(t){return["top","bottom"].includes(LC(t))?"y":"x"}function JsA(t){return KsA(xC(t))}function YN(t){return t.replace(/start|end/g,e=>$GA[e])}function JD(t){return t.replace(/left|right|bottom|top/g,e=>XGA[e])}function AUA(t){return typeof t!="number"?function(e){return Be({top:0,right:0,bottom:0,left:0},e)}(t):{top:t,right:t,bottom:t,left:t}}function Iy(t){var{x:e,y:A,width:i,height:n}=t;return{width:i,height:n,top:A,left:e,right:e+i,bottom:A+n,x:e,y:A}}function arA(t,e,A){var i,{reference:n,floating:o}=t,r=xC(e),s=JsA(e),a=YsA(s),c=LC(e),l=r==="y",I=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,d=n[a]/2-o[a]/2;switch(c){case"top":i={x:I,y:n.y-o.height};break;case"bottom":i={x:I,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(gy(e)){case"start":i[s]-=d*(A&&l?-1:1);break;case"end":i[s]+=d*(A&&l?-1:1)}return i}var eUA=function(){var t=yt(function*(e,A,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(A),l=yield s.getElementRects({reference:e,floating:A,strategy:o}),{x:I,y:C}=arA(l,n,c),d=n,B={},E=0,Q=0;Q"u")&&(t instanceof ShadowRoot||t instanceof Ic(t).ShadowRoot)}function _3(t){var{overflow:e,overflowX:A,overflowY:i,display:n}=Rl(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+A)&&!["inline","contents"].includes(n)}function tUA(t){return["table","td","th"].includes(th(t))}function Cy(t){return[":popover-open",":modal"].some(e=>{try{return t.matches(e)}catch{return!1}})}function f_(t){var e=AG(),A=Sl(t)?Rl(t):t;return["transform","translate","scale","rotate","perspective"].some(i=>!!A[i]&&A[i]!=="none")||!!A.containerType&&A.containerType!=="normal"||!e&&!!A.backdropFilter&&A.backdropFilter!=="none"||!e&&!!A.filter&&A.filter!=="none"||["transform","translate","scale","rotate","perspective","filter"].some(i=>(A.willChange||"").includes(i))||["paint","layout","strict","content"].some(i=>(A.contain||"").includes(i))}function AG(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function jE(t){return["html","body","#document"].includes(th(t))}function Rl(t){return Ic(t).getComputedStyle(t)}function Ry(t){return Sl(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function N1(t){if(th(t)==="html")return t;var e=t.assignedSlot||t.parentNode||crA(t)&&t.host||_g(t);return crA(e)?e.host:e}function HsA(t){var e=N1(t);return jE(e)?t.ownerDocument?t.ownerDocument.body:t.body:Yg(e)&&_3(e)?e:HsA(e)}function G3(t,e,A){var i;e===void 0&&(e=[]),A===void 0&&(A=!0);var n=HsA(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=Ic(n);if(o){var s=m_(r);return e.concat(r,r.visualViewport||[],_3(n)?n:[],s&&A?G3(s):[])}return e.concat(n,G3(n,[],A))}function m_(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function OsA(t){var e=Rl(t),A=parseFloat(e.width)||0,i=parseFloat(e.height)||0,n=Yg(t),o=n?t.offsetWidth:A,r=n?t.offsetHeight:i,s=ly(A)!==o||ly(i)!==r;return s&&(A=o,i=r),{width:A,height:i,$:s}}function eG(t){return Sl(t)?t:t.contextElement}function qE(t){var e=eG(t);if(!Yg(e))return Ng(1);var A=e.getBoundingClientRect(),{width:i,height:n,$:o}=OsA(e),r=(o?ly(A.width):A.width)/i,s=(o?ly(A.height):A.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var iUA=Ng(0);function PsA(t){var e=Ic(t);return AG()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:iUA}function JC(t,e,A,i){e===void 0&&(e=!1),A===void 0&&(A=!1);var n=t.getBoundingClientRect(),o=eG(t),r=Ng(1);e&&(i?Sl(i)&&(r=qE(i)):r=qE(t));var s=function(y,F,U){return F===void 0&&(F=!1),!(!U||F&&U!==Ic(y))&&F}(o,A,i)?PsA(o):Ng(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,l=n.width/r.x,I=n.height/r.y;if(o)for(var C=Ic(o),d=i&&Sl(i)?Ic(i):i,B=C,E=m_(B);E&&i&&d!==B;){var Q=qE(E),u=E.getBoundingClientRect(),v=Rl(E),L=u.left+(E.clientLeft+parseFloat(v.paddingLeft))*Q.x,x=u.top+(E.clientTop+parseFloat(v.paddingTop))*Q.y;a*=Q.x,c*=Q.y,l*=Q.x,I*=Q.y,a+=L,c+=x,E=m_(B=Ic(E))}return Iy({width:l,height:I,x:a,y:c})}function tG(t,e){var A=Ry(t).scrollLeft;return e?e.left+A:JC(_g(t)).left+A}function jsA(t,e,A){A===void 0&&(A=!1);var i=t.getBoundingClientRect();return{x:i.left+e.scrollLeft-(A?0:tG(t,i)),y:i.top+e.scrollTop}}function lrA(t,e,A){var i;if(e==="viewport")i=function(o,r){var s=Ic(o),a=_g(o),c=s.visualViewport,l=a.clientWidth,I=a.clientHeight,C=0,d=0;if(c){l=c.width,I=c.height;var B=AG();(!B||B&&r==="fixed")&&(C=c.offsetLeft,d=c.offsetTop)}return{width:l,height:I,x:C,y:d}}(t,A);else if(e==="document")i=function(o){var r=_g(o),s=Ry(o),a=o.ownerDocument.body,c=RC(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),l=RC(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),I=-s.scrollLeft+tG(o),C=-s.scrollTop;return Rl(a).direction==="rtl"&&(I+=RC(r.clientWidth,a.clientWidth)-c),{width:c,height:l,x:I,y:C}}(_g(t));else if(Sl(e))i=function(o,r){var s=JC(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,l=Yg(o)?qE(o):Ng(1);return{width:o.clientWidth*l.x,height:o.clientHeight*l.y,x:c*l.x,y:a*l.y}}(e,A);else{var n=PsA(t);i={x:e.x-n.x,y:e.y-n.y,width:e.width,height:e.height}}return Iy(i)}function qsA(t,e){var A=N1(t);return!(A===e||!Sl(A)||jE(A))&&(Rl(A).position==="fixed"||qsA(A,e))}function nUA(t,e,A){var i=Yg(e),n=_g(e),o=A==="fixed",r=JC(t,!0,o,e),s={scrollLeft:0,scrollTop:0},a=Ng(0);function c(){a.x=tG(n)}if(i||!i&&!o)if((th(e)!=="body"||_3(n))&&(s=Ry(e)),i){var l=JC(e,!0,o,e);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else n&&c();o&&!i&&n&&c();var I=!n||i||o?Ng(0):jsA(n,s);return{x:r.left+s.scrollLeft-a.x-I.x,y:r.top+s.scrollTop-a.y-I.y,width:r.width,height:r.height}}function JN(t){return Rl(t).position==="static"}function grA(t,e){if(!Yg(t)||Rl(t).position==="fixed")return null;if(e)return e(t);var A=t.offsetParent;return _g(t)===A&&(A=A.ownerDocument.body),A}function IrA(t,e){var A=Ic(t);if(Cy(t))return A;if(!Yg(t)){for(var i=N1(t);i&&!jE(i);){if(Sl(i)&&!JN(i))return i;i=N1(i)}return A}for(var n=grA(t,e);n&&tUA(n)&&JN(n);)n=grA(n,e);return n&&jE(n)&&JN(n)&&!f_(n)?A:n||function(o){for(var r=N1(o);Yg(r)&&!jE(r);){if(f_(r))return r;if(Cy(r))return null;r=N1(r)}return null}(t)||A}var oUA={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:e,rect:A,offsetParent:i,strategy:n}=t,o=n==="fixed",r=_g(i),s=!!e&&Cy(e.floating);if(i===r||s&&o)return A;var a={scrollLeft:0,scrollTop:0},c=Ng(1),l=Ng(0),I=Yg(i);if((I||!I&&!o)&&((th(i)!=="body"||_3(r))&&(a=Ry(i)),Yg(i))){var C=JC(i);c=qE(i),l.x=C.x+i.clientLeft,l.y=C.y+i.clientTop}var d=!r||I||o?Ng(0):jsA(r,a,!0);return{width:A.width*c.x,height:A.height*c.y,x:A.x*c.x-a.scrollLeft*c.x+l.x+d.x,y:A.y*c.y-a.scrollTop*c.y+l.y+d.y}},getDocumentElement:_g,getClippingRect:function(t){var{element:e,boundary:A,rootBoundary:i,strategy:n}=t,o=[...A==="clippingAncestors"?Cy(e)?[]:function(a,c){var l=c.get(a);if(l)return l;for(var I=G3(a,[],!1).filter(u=>Sl(u)&&th(u)!=="body"),C=null,d=Rl(a).position==="fixed",B=d?N1(a):a;Sl(B)&&!jE(B);){var E=Rl(B),Q=f_(B);Q||E.position!=="fixed"||(C=null),(d?!Q&&!C:!Q&&E.position==="static"&&C&&["absolute","fixed"].includes(C.position)||_3(B)&&!Q&&qsA(a,B))?I=I.filter(u=>u!==B):C=E,B=N1(B)}return c.set(a,I),I}(e,this._c):[].concat(A),i],r=o[0],s=o.reduce((a,c)=>{var l=lrA(e,c,n);return a.top=RC(l.top,a.top),a.right=cy(l.right,a.right),a.bottom=cy(l.bottom,a.bottom),a.left=RC(l.left,a.left),a},lrA(e,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:IrA,getElementRects:function(){var t=yt(function*(e){var A=this.getOffsetParent||IrA,i=this.getDimensions,n=yield i(e.floating);return{reference:nUA(e.reference,yield A(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(e){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:e,height:A}=OsA(t);return{width:e,height:A}},getScale:qE,isElement:Sl,isRTL:function(t){return Rl(t).direction==="rtl"}};function CrA(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function rUA(t,e,A,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=eG(t),l=n||o?[...c?G3(c):[],...G3(e)]:[];l.forEach(Q=>{n&&Q.addEventListener("scroll",A,{passive:!0}),o&&Q.addEventListener("resize",A)});var I,C=c&&s?function(Q,u){var v,L=null,x=_g(Q);function y(){var F;clearTimeout(v),(F=L)==null||F.disconnect(),L=null}return function F(U,T){U===void 0&&(U=!1),T===void 0&&(T=1),y();var N=Q.getBoundingClientRect(),{left:K,top:H,width:j,height:IA}=N;if(U||u(),j&&IA){var lA={rootMargin:-YD(H)+"px "+-YD(x.clientWidth-(K+j))+"px "+-YD(x.clientHeight-(H+IA))+"px "+-YD(K)+"px",threshold:RC(0,cy(1,T))||1},uA=!0;try{L=new IntersectionObserver(p,Be(Be({},lA),{},{root:x.ownerDocument}))}catch{L=new IntersectionObserver(p,lA)}L.observe(Q)}function p(V){var cA=V[0].intersectionRatio;if(cA!==T){if(!uA)return F();cA?F(!1,cA):v=setTimeout(()=>{F(!1,1e-7)},1e3)}cA!==1||CrA(N,Q.getBoundingClientRect())||F(),uA=!1}}(!0),y}(c,A):null,d=-1,B=null;r&&(B=new ResizeObserver(Q=>{var[u]=Q;u&&u.target===c&&B&&(B.unobserve(e),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var v;(v=B)==null||v.observe(e)})),A()}),c&&!a&&B.observe(c),B.observe(e));var E=a?JC(t):null;return a&&function Q(){var u=JC(t);E&&!CrA(E,u)&&A(),E=u,I=requestAnimationFrame(Q)}(),A(),()=>{var Q;l.forEach(u=>{n&&u.removeEventListener("scroll",A),o&&u.removeEventListener("resize",A)}),C?.(),(Q=B)==null||Q.disconnect(),B=null,a&&cancelAnimationFrame(I)}}var sUA=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:e=>yt(function*(){var A,i,{x:n,y:o,placement:r,middlewareData:s}=e,a=yield function(c,l){return u_.apply(this,arguments)}(e,t);return r===((A=s.offset)==null?void 0:A.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:Be(Be({},a),{},{placement:r})}})()}},aUA=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:e=>yt(function*(){var{x:A,y:i,placement:n}=e,o=ky(t,e),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:L=>{var{x,y}=L;return{x,y}}}}=o,c=frA(o,r_A),l={x:A,y:i},I=yield TsA(e,c),C=xC(LC(n)),d=KsA(C),B=l[d],E=l[C];if(r){var Q=d==="y"?"bottom":"right";B=srA(B+I[d==="y"?"top":"left"],B,B-I[Q])}if(s){var u=C==="y"?"bottom":"right";E=srA(E+I[C==="y"?"top":"left"],E,E-I[u])}var v=a.fn(Be(Be({},e),{},{[d]:B,[C]:E}));return Be(Be({},v),{},{data:{x:v.x-A,y:v.y-i,enabled:{[d]:r,[C]:s}}})})()}},cUA=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:e=>yt(function*(){var A,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=e,l=ky(t,e),{mainAxis:I=!0,crossAxis:C=!0,fallbackPlacements:d,fallbackStrategy:B="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:Q=!0}=l,u=frA(l,o_A);if((A=o.arrow)!=null&&A.alignmentOffset)return{};var v=LC(n),L=xC(s),x=LC(s)===s,y=yield a.isRTL==null?void 0:a.isRTL(c.floating),F=d||(x||!Q?[JD(s)]:function(EA){var sA=JD(EA);return[YN(EA),sA,YN(sA)]}(s)),U=E!=="none";!d&&U&&F.push(...function(EA,sA,TA,Ke){var Re=gy(EA),hA=function(eA,RA,oA){var ne=["left","right"],h=["right","left"];switch(eA){case"top":case"bottom":return oA?RA?h:ne:RA?ne:h;case"left":case"right":return RA?["top","bottom"]:["bottom","top"];default:return[]}}(LC(EA),TA==="start",Ke);return Re&&(hA=hA.map(eA=>eA+"-"+Re),sA&&(hA=hA.concat(hA.map(YN)))),hA}(s,Q,E,y));var T=[s,...F],N=yield TsA(e,u),K=[],H=((i=o.flip)==null?void 0:i.overflows)||[];if(I&&K.push(N[v]),C){var j=function(EA,sA,TA){TA===void 0&&(TA=!1);var Ke=gy(EA),Re=JsA(EA),hA=YsA(Re),eA=Re==="x"?Ke===(TA?"end":"start")?"right":"left":Ke==="start"?"bottom":"top";return sA.reference[hA]>sA.floating[hA]&&(eA=JD(eA)),[eA,JD(eA)]}(n,r,y);K.push(N[j[0]],N[j[1]])}if(H=[...H,{placement:n,overflows:K}],!K.every(EA=>EA<=0)){var IA,lA,uA=(((IA=o.flip)==null?void 0:IA.index)||0)+1,p=T[uA];if(p){var V,cA=C==="alignment"&&L!==xC(p),aA=((V=H[0])==null?void 0:V.overflows[0])>0;if(!cA||aA)return{data:{index:uA,overflows:H},reset:{placement:p}}}var jA=(lA=H.filter(EA=>EA.overflows[0]<=0).sort((EA,sA)=>EA.overflows[1]-sA.overflows[1])[0])==null?void 0:lA.placement;if(!jA)switch(B){case"bestFit":var VA,ce=(VA=H.filter(EA=>{if(U){var sA=xC(EA.placement);return sA===L||sA==="y"}return!0}).map(EA=>[EA.placement,EA.overflows.filter(sA=>sA>0).reduce((sA,TA)=>sA+TA,0)]).sort((EA,sA)=>EA[1]-sA[1])[0])==null?void 0:VA[0];ce&&(jA=ce);break;case"initialPlacement":jA=s}if(n!==jA)return{reset:{placement:jA}}}return{}})()}};function lUA(t){var e,A,i={autoUpdate:!0},n=t,o=a=>Be(Be(Be({},i),t||{}),a||{}),r=a=>{e&&A&&(n=o(a),((c,l,I)=>{var C=new Map,d=Be({platform:oUA},I),B=Be(Be({},d.platform),{},{_c:C});return eUA(c,l,Be(Be({},d),{},{platform:B}))})(e,A,n).then(c=>{var l;Object.assign(A.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((l=n)===null||l===void 0)&&l.onComputed&&n.onComputed(c)}))},s=a=>{Tc(a.subscribe(c=>{e===void 0?(e=c,r()):(Object.assign(e,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};e=a,r()},(a,c)=>{var l;A=a,n=o(c),setTimeout(()=>r(c),0),r(c);var I=()=>{l&&(l(),l=void 0)},C=function(){var{autoUpdate:d}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};I(),d!==!1&&function(){return qrA.apply(this,arguments)}().then(()=>rUA(e,A,()=>r(n),d===!0?{}:d))};return l=C(),{update(d){r(d),l=C(d)},destroy(){I()}}},r]}function gUA(t){var{loadOptions:e,filterText:A,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:l,filterGroupedItems:I,label:C}=t;if(i&&e)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=l(i));var d=i.filter(B=>{var E=c(B[C],A,B);return E&&n&&o!=null&&o.length&&(E=!o.some(Q=>!!a&&Q[r]===B[r])),E});return s&&(d=I(d)),d}function IUA(t){return VsA.apply(this,arguments)}function VsA(){return(VsA=yt(function*(t){var{dispatch:e,loadOptions:A,convertStringItemsToObjects:i,filterText:n}=t,o=yield A(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),e("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),e("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}vt(` + svg.svelte-qbd276 { + width: var(--chevron-icon-width, 20px); + height: var(--chevron-icon-width, 20px); + color: var(--chevron-icon-colour, currentColor); + } +`);var CUA=O1(``);vt(` + svg.svelte-whdbu1 { + width: var(--clear-icon-width, 20px); + height: var(--clear-icon-width, 20px); + color: var(--clear-icon-color, currentColor); + } +`);var dUA=O1(``);function TN(t){iA(t,dUA())}vt(` + .loading.svelte-1p3nqvd { + width: var(--spinner-width, 20px); + height: var(--spinner-height, 20px); + color: var(--spinner-color, var(--icons-color)); + animation: svelte-1p3nqvd-rotate 0.75s linear infinite; + transform-origin: center center; + transform: none; + } + + .circle_path.svelte-1p3nqvd { + stroke-dasharray: 90; + stroke-linecap: round; + } + + @keyframes svelte-1p3nqvd-rotate { + 100% { + transform: rotate(360deg); + } + } +`);var BUA=O1('');vt(` + .svelte-select.svelte-82qwg8 { + /* deprecating camelCase custom props in favour of kebab-case for v5 */ + --borderRadius: var(--border-radius); + --clearSelectColor: var(--clear-select-color); + --clearSelectWidth: var(--clear-select-width); + --disabledBackground: var(--disabled-background); + --disabledBorderColor: var(--disabled-border-color); + --disabledColor: var(--disabled-color); + --disabledPlaceholderColor: var(--disabled-placeholder-color); + --disabledPlaceholderOpacity: var(--disabled-placeholder-opacity); + --errorBackground: var(--error-background); + --errorBorder: var(--error-border); + --groupItemPaddingLeft: var(--group-item-padding-left); + --groupTitleColor: var(--group-title-color); + --groupTitleFontSize: var(--group-title-font-size); + --groupTitleFontWeight: var(--group-title-font-weight); + --groupTitlePadding: var(--group-title-padding); + --groupTitleTextTransform: var(--group-title-text-transform); + --groupTitleBorderColor: var(--group-title-border-color); + --groupTitleBorderWidth: var(--group-title-border-width); + --groupTitleBorderStyle: var(--group-title-border-style); + --indicatorColor: var(--chevron-color); + --indicatorHeight: var(--chevron-height); + --indicatorWidth: var(--chevron-width); + --inputColor: var(--input-color); + --inputLeft: var(--input-left); + --inputLetterSpacing: var(--input-letter-spacing); + --inputMargin: var(--input-margin); + --inputPadding: var(--input-padding); + --itemActiveBackground: var(--item-active-background); + --itemColor: var(--item-color); + --itemFirstBorderRadius: var(--item-first-border-radius); + --itemHoverBG: var(--item-hover-bg); + --itemHoverColor: var(--item-hover-color); + --itemIsActiveBG: var(--item-is-active-bg); + --itemIsActiveColor: var(--item-is-active-color); + --itemIsNotSelectableColor: var(--item-is-not-selectable-color); + --itemPadding: var(--item-padding); + --listBackground: var(--list-background); + --listBorder: var(--list-border); + --listBorderRadius: var(--list-border-radius); + --listEmptyColor: var(--list-empty-color); + --listEmptyPadding: var(--list-empty-padding); + --listEmptyTextAlign: var(--list-empty-text-align); + --listMaxHeight: var(--list-max-height); + --listPosition: var(--list-position); + --listShadow: var(--list-shadow); + --listZIndex: var(--list-z-index); + --multiItemBG: var(--multi-item-bg); + --multiItemBorderRadius: var(--multi-item-border-radius); + --multiItemDisabledHoverBg: var(--multi-item-disabled-hover-bg); + --multiItemDisabledHoverColor: var(--multi-item-disabled-hover-color); + --multiItemHeight: var(--multi-item-height); + --multiItemMargin: var(--multi-item-margin); + --multiItemPadding: var(--multi-item-padding); + --multiSelectInputMargin: var(--multi-select-input-margin); + --multiSelectInputPadding: var(--multi-select-input-padding); + --multiSelectPadding: var(--multi-select-padding); + --placeholderColor: var(--placeholder-color); + --placeholderOpacity: var(--placeholder-opacity); + --selectedItemPadding: var(--selected-item-padding); + --spinnerColor: var(--spinner-color); + --spinnerHeight: var(--spinner-height); + --spinnerWidth: var(--spinner-width); + + --internal-padding: 0 0 0 16px; + + border: var(--border, 1px solid #d8dbdf); + border-radius: var(--border-radius, 6px); + min-height: var(--height, 42px); + position: relative; + display: flex; + align-items: stretch; + padding: var(--padding, var(--internal-padding)); + background: var(--background, #fff); + margin: var(--margin, 0); + width: var(--width, 100%); + font-size: var(--font-size, 16px); + max-height: var(--max-height); + } + + .svelte-82qwg8 { + box-sizing: var(--box-sizing, border-box); + } + + .svelte-select.svelte-82qwg8:hover { + border: var(--border-hover, 1px solid #b2b8bf); + } + + .value-container.svelte-82qwg8 { + display: flex; + flex: 1 1 0%; + flex-wrap: wrap; + align-items: center; + gap: 5px 10px; + padding: var(--value-container-padding, 5px 0); + position: relative; + overflow: var(--value-container-overflow, hidden); + align-self: stretch; + } + + .prepend.svelte-82qwg8, + .indicators.svelte-82qwg8 { + display: flex; + flex-shrink: 0; + align-items: center; + } + + .indicators.svelte-82qwg8 { + position: var(--indicators-position); + top: var(--indicators-top); + right: var(--indicators-right); + bottom: var(--indicators-bottom); + } + + input.svelte-82qwg8 { + position: absolute; + cursor: default; + border: none; + color: var(--input-color, var(--item-color)); + padding: var(--input-padding, 0); + letter-spacing: var(--input-letter-spacing, inherit); + margin: var(--input-margin, 0); + min-width: 10px; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: transparent; + font-size: var(--font-size, 16px); + } + + .svelte-82qwg8:not(.multi) > .value-container:where(.svelte-82qwg8) > input:where(.svelte-82qwg8) { + width: 100%; + height: 100%; + } + + input.svelte-82qwg8::placeholder { + color: var(--placeholder-color, #78848f); + opacity: var(--placeholder-opacity, 1); + } + + input.svelte-82qwg8:focus { + outline: none; + } + + .svelte-select.focused.svelte-82qwg8 { + border: var(--border-focused, 1px solid #006fe8); + border-radius: var(--border-radius-focused, var(--border-radius, 6px)); + } + + .disabled.svelte-82qwg8 { + background: var(--disabled-background, #ebedef); + border-color: var(--disabled-border-color, #ebedef); + color: var(--disabled-color, #c1c6cc); + } + + .disabled.svelte-82qwg8 input:where(.svelte-82qwg8)::placeholder { + color: var(--disabled-placeholder-color, #c1c6cc); + opacity: var(--disabled-placeholder-opacity, 1); + } + + .selected-item.svelte-82qwg8 { + position: relative; + overflow: var(--selected-item-overflow, hidden); + padding: var(--selected-item-padding, 0 20px 0 0); + text-overflow: ellipsis; + white-space: nowrap; + color: var(--selected-item-color, inherit); + font-size: var(--font-size, 16px); + } + + .multi.svelte-82qwg8 .selected-item:where(.svelte-82qwg8) { + position: absolute; + line-height: var(--height, 42px); + height: var(--height, 42px); + } + + .selected-item.svelte-82qwg8:focus { + outline: none; + } + + .hide-selected-item.svelte-82qwg8 { + opacity: 0; + } + + .icon.svelte-82qwg8 { + display: flex; + align-items: center; + justify-content: center; + } + + .clear-select.svelte-82qwg8 { + all: unset; + display: flex; + align-items: center; + justify-content: center; + width: var(--clear-select-width, 40px); + height: var(--clear-select-height, 100%); + color: var(--clear-select-color, var(--icons-color)); + margin: var(--clear-select-margin, 0); + pointer-events: all; + flex-shrink: 0; + } + + .clear-select.svelte-82qwg8:focus { + outline: var(--clear-select-focus-outline, 1px solid #006fe8); + } + + .loading.svelte-82qwg8 { + width: var(--loading-width, 40px); + height: var(--loading-height); + color: var(--loading-color, var(--icons-color)); + margin: var(--loading--margin, 0); + flex-shrink: 0; + } + + .chevron.svelte-82qwg8 { + width: var(--chevron-width, 40px); + height: var(--chevron-height, 40px); + background: var(--chevron-background, transparent); + pointer-events: var(--chevron-pointer-events, none); + color: var(--chevron-color, var(--icons-color)); + border: var(--chevron-border, 0 0 0 1px solid #d8dbdf); + flex-shrink: 0; + } + + .multi.svelte-82qwg8 { + padding: var(--multi-select-padding, var(--internal-padding)); + } + + .multi.svelte-82qwg8 input:where(.svelte-82qwg8) { + padding: var(--multi-select-input-padding, 0); + position: relative; + margin: var(--multi-select-input-margin, 5px 0); + flex: 1 1 40px; + } + + .svelte-select.error.svelte-82qwg8 { + border: var(--error-border, 1px solid #ff2d55); + background: var(--error-background, #fff); + } + + .a11y-text.svelte-82qwg8 { + z-index: 9999; + border: 0px; + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + width: 1px; + position: absolute; + overflow: hidden; + padding: 0px; + white-space: nowrap; + } + + .multi-item.svelte-82qwg8 { + background: var(--multi-item-bg, #ebedef); + margin: var(--multi-item-margin, 0); + outline: var(--multi-item-outline, 1px solid #ddd); + border-radius: var(--multi-item-border-radius, 4px); + height: var(--multi-item-height, 25px); + line-height: var(--multi-item-height, 25px); + display: flex; + cursor: default; + padding: var(--multi-item-padding, 0 5px); + overflow: hidden; + gap: var(--multi-item-gap, 4px); + outline-offset: -1px; + max-width: var(--multi-max-width, none); + color: var(--multi-item-color, var(--item-color)); + } + + .multi-item.disabled.svelte-82qwg8:hover { + background: var(--multi-item-disabled-hover-bg, #ebedef); + color: var(--multi-item-disabled-hover-color, #c1c6cc); + } + + .multi-item-text.svelte-82qwg8 { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .multi-item-clear.svelte-82qwg8 { + display: flex; + align-items: center; + justify-content: center; + --clear-icon-color: var(--multi-item-clear-icon-color, #000); + } + + .multi-item.active.svelte-82qwg8 { + outline: var(--multi-item-active-outline, 1px solid #006fe8); + } + + .svelte-select-list.svelte-82qwg8 { + box-shadow: var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24)); + border-radius: var(--list-border-radius, 4px); + max-height: var(--list-max-height, 252px); + overflow-y: auto; + background: var(--list-background, #fff); + position: var(--list-position, absolute); + z-index: var(--list-z-index, 2); + border: var(--list-border); + } + + .prefloat.svelte-82qwg8 { + opacity: 0; + pointer-events: none; + } + + .list-group-title.svelte-82qwg8 { + color: var(--group-title-color, #8f8f8f); + cursor: default; + font-size: var(--group-title-font-size, 16px); + font-weight: var(--group-title-font-weight, 600); + height: var(--height, 42px); + line-height: var(--height, 42px); + padding: var(--group-title-padding, 0 20px); + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; + text-transform: var(--group-title-text-transform, uppercase); + border-width: var(--group-title-border-width, medium); + border-style: var(--group-title-border-style, none); + border-color: var(--group-title-border-color, color); + } + + .empty.svelte-82qwg8 { + text-align: var(--list-empty-text-align, center); + padding: var(--list-empty-padding, 20px 0); + color: var(--list-empty-color, #78848f); + } + + .item.svelte-82qwg8 { + cursor: default; + height: var(--item-height, var(--height, 42px)); + line-height: var(--item-line-height, var(--height, 42px)); + padding: var(--item-padding, 0 20px); + color: var(--item-color, inherit); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + transition: var(--item-transition, all 0.2s); + align-items: center; + width: 100%; + } + + .item.group-item.svelte-82qwg8 { + padding-left: var(--group-item-padding-left, 40px); + } + + .item.svelte-82qwg8:active { + background: var(--item-active-background, #b9daff); + } + + .item.active.svelte-82qwg8 { + background: var(--item-is-active-bg, #007aff); + color: var(--item-is-active-color, #fff); + } + + .item.first.svelte-82qwg8 { + border-radius: var(--item-first-border-radius, 4px 4px 0 0); + } + + .item.hover.svelte-82qwg8:not(.active) { + background: var(--item-hover-bg, #e7f2ff); + color: var(--item-hover-color, inherit); + } + + .item.not-selectable.svelte-82qwg8, + .item.hover.item.not-selectable.svelte-82qwg8, + .item.active.item.not-selectable.svelte-82qwg8, + .item.not-selectable.svelte-82qwg8:active { + color: var(--item-is-not-selectable-color, #999); + background: transparent; + } + + .required.svelte-82qwg8 { + opacity: 0; + z-index: -1; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + } +`);var EUA=pA('
    '),hUA=pA('
    No options
    '),QUA=pA('
    '),uUA=pA(' ',1),fUA=pA('
    '),mUA=pA('
    '),pUA=pA("
    "),wUA=pA(''),DUA=pA(''),yUA=pA(''),vUA=pA(''),bUA=pA(''),MUA=pA('
    ');function bC(t,e){var A=function(QA){var _A={};for(var Ce in QA.children&&(_A.default=!0),QA.$$slots)_A[Ce]=!0;return _A}(e);st(e,!1);var i,n=X(),o=X(),r=X(),s=X(),a=X(),c=X(),l=X(),I=X(),C=X(),d=L_A(),B=k(e,"justValue",12,null),E=k(e,"filter",8,gUA),Q=k(e,"getItems",8,IUA),u=k(e,"id",8,null),v=k(e,"name",8,null),L=k(e,"container",12,void 0),x=k(e,"input",12,void 0),y=k(e,"multiple",8,!1),F=k(e,"multiFullItemClearable",8,!1),U=k(e,"disabled",8,!1),T=k(e,"focused",12,!1),N=k(e,"value",12,null),K=k(e,"filterText",12,""),H=k(e,"placeholder",8,"Please select"),j=k(e,"placeholderAlwaysShow",8,!1),IA=k(e,"items",12,null),lA=k(e,"label",8,"label"),uA=k(e,"itemFilter",8,(QA,_A,Ce)=>"".concat(QA).toLowerCase().includes(_A.toLowerCase())),p=k(e,"groupBy",8,void 0),V=k(e,"groupFilter",8,QA=>QA),cA=k(e,"groupHeaderSelectable",8,!1),aA=k(e,"itemId",8,"value"),jA=k(e,"loadOptions",8,void 0),VA=k(e,"containerStyles",8,""),ce=k(e,"hasError",8,!1),EA=k(e,"filterSelectedItems",8,!0),sA=k(e,"required",8,!1),TA=k(e,"closeListOnChange",8,!0),Ke=k(e,"clearFilterTextOnBlur",8,!0),Re=k(e,"createGroupHeaderItem",8,(QA,_A)=>({value:QA,[lA()]:QA})),hA=()=>g(l),eA=k(e,"searchable",8,!0),RA=k(e,"inputStyles",8,""),oA=k(e,"clearable",8,!0),ne=k(e,"loading",12,!1),h=k(e,"listOpen",12,!1),f=k(e,"debounce",8,function(QA){var _A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(QA,_A)}),w=k(e,"debounceWait",8,300),D=k(e,"hideEmptyState",8,!1),O=k(e,"inputAttributes",24,()=>({})),Z=k(e,"listAutoWidth",8,!0),q=k(e,"showChevron",8,!1),CA=k(e,"listOffset",8,5),kA=k(e,"hoverItemIndex",12,0),KA=k(e,"floatingConfig",24,()=>({})),Ie=k(e,"class",8,""),GA=X(),oe=X(),M=X(),G=X(),Y=X();function AA(QA){return QA.map((_A,Ce)=>({index:Ce,value:_A,label:"".concat(_A)}))}function dA(QA){var _A=[],Ce={};QA.forEach(Li=>{var ai=p()(Li);_A.includes(ai)||(_A.push(ai),Ce[ai]=[],ai&&Ce[ai].push(Object.assign(Re()(ai,Li),{id:ai,groupHeader:!0,selectable:cA()}))),Ce[ai].push(Object.assign({groupItem:!!ai},Li))});var Pt=[];return V()(_A).forEach(Li=>{Ce[Li]&&Pt.push(...Ce[Li])}),Pt}function WA(){var QA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,_A=arguments.length>1?arguments[1]:void 0;kA(QA<0?0:QA),!_A&&p()&&g(l)[kA()]&&!g(l)[kA()].selectable&&ei(1)}function Qe(){var QA=!0;if(N()){var _A=[],Ce=[];N().forEach(Pt=>{_A.includes(Pt[aA()])?QA=!1:(_A.push(Pt[aA()]),Ce.push(Pt))}),QA||N(Ce)}return QA}function yA(QA){var _A=QA?QA[aA()]:N()[aA()];return IA().find(Ce=>Ce[aA()]===_A)}function DA(QA){return We.apply(this,arguments)}function We(){return(We=yt(function*(QA){var _A=N()[QA];N().length===1?N(void 0):N(N().filter(Ce=>Ce!==_A)),d("clear",_A)})).apply(this,arguments)}function be(QA){if(T())switch(QA.stopPropagation(),QA.key){case"Escape":QA.preventDefault(),Ci();break;case"Enter":if(QA.preventDefault(),h()){if(g(l).length===0)break;var _A=g(l)[kA()];if(N()&&!y()&&N()[aA()]===_A[aA()]){Ci();break}Ye(g(l)[kA()])}break;case"ArrowDown":QA.preventDefault(),h()?ei(1):(h(!0),b(GA,void 0));break;case"ArrowUp":QA.preventDefault(),h()?ei(-1):(h(!0),b(GA,void 0));break;case"Tab":if(h()&&T()){if(g(l).length===0||N()&&N()[aA()]===g(l)[kA()][aA()])return Ci();QA.preventDefault(),Ye(g(l)[kA()]),Ci()}break;case"Backspace":if(!y()||K().length>0)return;if(y()&&N()&&N().length>0){if(DA(g(GA)!==void 0?g(GA):N().length-1),g(GA)===0||g(GA)===void 0)break;b(GA,N().length>g(GA)?g(GA)-1:void 0)}break;case"ArrowLeft":if(!N()||!y()||K().length>0)return;g(GA)===void 0?b(GA,N().length-1):N().length>g(GA)&&g(GA)!==0&&b(GA,g(GA)-1);break;case"ArrowRight":if(!N()||!y()||K().length>0||g(GA)===void 0)return;g(GA)===N().length-1?b(GA,void 0):g(GA)0?h(!0):void h(!h())}function Hi(){d("clear",N()),N(void 0),Ci(),qA()}function Ci(){Ke()&&K(""),h(!1)}x_A(yt(function*(){b(oe,N()),b(M,K()),b(G,y())})),ls(()=>{h()&&T(!0),T()&&x()&&x().focus()});var Zi=k(e,"ariaValues",8,QA=>"Option ".concat(QA,", selected.")),Qi=k(e,"ariaListOpen",8,(QA,_A)=>"You are currently focused on option ".concat(QA,". There are ").concat(_A," results available.")),Ft=k(e,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Tt,Ht=X(null);function zi(){clearTimeout(Tt),Tt=setTimeout(()=>{ui=!1},100)}Tc(()=>{var QA;(QA=g(Ht))===null||QA===void 0||QA.remove()});var ui=!1;function Ye(QA){QA&&QA.selectable!==!1&&function(_A){if(_A){K("");var Ce=Object.assign({},_A);if(Ce.groupHeader&&!Ce.selectable)return;N(y()?N()?N().concat([Ce]):[Ce]:N(Ce)),setTimeout(()=>{TA()&&Ci(),b(GA,void 0),d("change",N()),d("select",_A)})}}(QA)}function Ai(QA){ui||kA(QA)}function ei(QA){if(g(l).filter(Ce=>!Object.hasOwn(Ce,"selectable")||Ce.selectable===!0).length===0)return kA(0);QA>0&&kA()===g(l).length-1?kA(0):QA<0&&kA()===0?kA(g(l).length-1):kA(kA()+QA);var _A=g(l)[kA()];_A&&_A.selectable===!1&&(QA!==1&&QA!==-1||ei(QA))}function Oi(QA,_A,Ce){if(!y())return _A&&_A[Ce]===QA[Ce]}var Yn=Ho,Dn=Ho;function Ho(QA){return{update(_A){_A.scroll&&(zi(),QA.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var Sn=X({strategy:"absolute",placement:"bottom-start",middleware:[sUA(CA()),cUA(),aUA()],autoUpdate:!1}),[io,Wo,No]=lUA(g(Sn)),Jn=X(!0);fA(()=>(W(IA()),W(N())),()=>{IA(),N()&&function(){if(typeof N()=="string"){var QA=(IA()||[]).find(_A=>_A[aA()]===N());N(QA||{[aA()]:N(),label:N()})}else y()&&Array.isArray(N())&&N().length>0&&N(N().map(_A=>typeof _A=="string"?{value:_A,label:_A}:_A))}()}),fA(()=>(W(O()),W(eA())),()=>{!O()&&eA()||(b(Y,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},O())),u()&&lc(Y,g(Y).id=u()),eA()||lc(Y,g(Y).readonly=!0))}),fA(()=>W(y()),()=>{y()&&N()&&(Array.isArray(N())?N([...N()]):N([N()]))}),fA(()=>(g(G),W(y())),()=>{g(G)&&!y()&&N()&&N(null)}),fA(()=>(W(y()),W(N())),()=>{y()&&N()&&N().length>1&&Qe()}),fA(()=>W(N()),()=>{N()&&(y()?JSON.stringify(N())!==JSON.stringify(g(oe))&&Qe()&&d("input",N()):g(oe)&&JSON.stringify(N()[aA()])===JSON.stringify(g(oe)[aA()])||d("input",N()))}),fA(()=>(W(N()),W(y()),g(oe)),()=>{!N()&&y()&&g(oe)&&d("input",N())}),fA(()=>(W(T()),W(x())),()=>{!T()&&x()&&Ci()}),fA(()=>(W(K()),g(M)),()=>{K()!==g(M)&&(jA()||K().length!==0)&&(jA()?f()(yt(function*(){ne(!0);var QA=yield Q()({dispatch:d,loadOptions:jA(),convertStringItemsToObjects:AA,filterText:K()});QA?(ne(QA.loading),h(h()?QA.listOpen:K().length>0),T(h()&&QA.focused),IA(p()?dA(QA.filteredItems):QA.filteredItems)):(ne(!1),T(!0),h(!0))}),w()):(h(!0),y()&&b(GA,void 0)))}),fA(()=>(W(E()),W(jA()),W(K()),W(IA()),W(y()),W(N()),W(aA()),W(p()),W(lA()),W(EA()),W(uA())),()=>{b(l,E()({loadOptions:jA(),filterText:K(),items:IA(),multiple:y(),value:N(),itemId:aA(),groupBy:p(),label:lA(),filterSelectedItems:EA(),itemFilter:uA(),convertStringItemsToObjects:AA,filterGroupedItems:dA}))}),fA(()=>(W(y()),W(h()),W(N()),g(l)),()=>{!y()&&h()&&N()&&g(l)&&WA(g(l).findIndex(QA=>QA[aA()]===N()[aA()]),!0)}),fA(()=>(W(h()),W(y())),()=>{h()&&y()&&kA(0)}),fA(()=>W(K()),()=>{K()&&kA(0)}),fA(()=>W(kA()),()=>{var QA;QA=kA(),d("hoverItem",QA)}),fA(()=>(W(y()),W(N())),()=>{b(n,y()?N()&&N().length>0:N())}),fA(()=>(g(n),W(K())),()=>{b(o,g(n)&&K().length>0)}),fA(()=>(g(n),W(oA()),W(U()),W(ne())),()=>{b(r,g(n)&&oA()&&!U()&&!ne())}),fA(()=>(W(j()),W(y()),W(H()),W(N())),()=>{var QA;b(s,j()&&y()||y()&&((QA=N())===null||QA===void 0?void 0:QA.length)===0?H():N()?"":H())}),fA(()=>(W(N()),W(y())),()=>{var QA,_A;b(a,N()?(QA=y(),_A=void 0,_A=QA&&N().length>0?N().map(Ce=>Ce[lA()]).join(", "):N()[lA()],Zi()(_A)):"")}),fA(()=>(g(l),W(kA()),W(T()),W(h())),()=>{b(c,function(){if(!g(l)||g(l).length===0)return"";var QA=g(l)[kA()];if(h()&&QA){var _A=g(l)?g(l).length:0;return Qi()(QA[lA()],_A)}return Ft()()}((g(l),kA(),T(),h())))}),fA(()=>W(IA()),()=>{(function(QA){QA&&QA.length!==0&&!QA.some(_A=>typeof _A!="object")&&N()&&(y()?!N().some(_A=>!_A||!_A[aA()]):N()[aA()])&&(Array.isArray(N())?N(N().map(_A=>yA(_A)||_A)):N(yA()||N()))})(IA())}),fA(()=>(W(y()),W(N()),W(aA())),()=>{B((y(),N(),aA(),y()?N()?N().map(QA=>QA[aA()]):null:N()?N()[aA()]:N()))}),fA(()=>(W(y()),g(oe),W(N())),()=>{y()||!g(oe)||N()||d("input",N())}),fA(()=>(W(h()),g(l),W(y()),W(N())),()=>{h()&&g(l)&&!y()&&!N()&&WA()}),fA(()=>g(l),()=>{(function(QA){h()&&d("filter",QA)})(g(l))}),fA(()=>(W(L()),W(KA()),g(Sn)),()=>{L()&&KA()&&No(Object.assign(g(Sn),KA()))}),fA(()=>g(Ht),()=>{b(I,!!g(Ht))}),fA(()=>(g(Ht),W(h())),()=>{(function(QA,_A){if(!QA||!_A)return b(Jn,!0);setTimeout(()=>{b(Jn,!1)},0)})(g(Ht),h())}),fA(()=>(W(h()),W(L()),g(Ht)),()=>{h()&&L()&&g(Ht)&&function(){var{width:QA}=L().getBoundingClientRect();lc(Ht,g(Ht).style.width=Z()?QA+"px":"auto")}()}),fA(()=>W(kA()),()=>{b(C,kA())}),fA(()=>(W(x()),W(h()),W(T())),()=>{x()&&h()&&!T()&&qA()}),fA(()=>(W(L()),W(KA())),()=>{var QA;L()&&((QA=KA())===null||QA===void 0?void 0:QA.autoUpdate)===void 0&&lc(Sn,g(Sn).autoUpdate=!0)}),nn(),Rt();var hn,wo=MUA();re("click",q0,function(QA){var _A;h()||T()||!L()||L().contains(QA.target)||(_A=g(Ht))!==null&&_A!==void 0&&_A.contains(QA.target)||It()}),re("keydown",q0,be);var se=$(wo),fi=QA=>{var _A,Ce=QUA(),Pt=$(Ce),Li=jt=>{var Nn=po();xo(Bt(Nn),e,"list-prepend",{},null),iA(jt,Nn)};MA(Pt,jt=>{A["list-prepend"]&&jt(Li)});var ai=gA(Pt,2),Fn=jt=>{var Nn=po();xo(Bt(Nn),e,"list",{get filteredItems(){return g(l)}},null),iA(jt,Nn)},Co=(jt,Nn)=>{var ut=Oe=>{var ni=po();Fo(Bt(ni),1,()=>g(l),Zo,(fn,Yi,ir)=>{var Xi,ks=EUA(),La=$(ks);xo($(La),e,"item",{get item(){return g(Yi)},index:ir},_o=>{var yn=_r();Ee(()=>{var Gr;return Et(yn,(Gr=g(Yi))===null||Gr===void 0?void 0:Gr[lA()])}),iA(_o,yn)}),bs(La,(_o,yn)=>Yn?.(_o),()=>({scroll:Oi(g(Yi),N(),aA()),listDom:g(I)})),bs(La,(_o,yn)=>Dn?.(_o),()=>({scroll:g(C)===ir,listDom:g(I)})),Ee(_o=>Xi=xt(La,1,"item svelte-82qwg8",null,Xi,_o),[()=>{var _o,yn;return{"list-group-title":g(Yi).groupHeader,active:Oi(g(Yi),N(),aA()),first:(yn=ir,yn===0),hover:kA()===ir,"group-item":g(Yi).groupItem,"not-selectable":((_o=g(Yi))===null||_o===void 0?void 0:_o.selectable)===!1}}],PA),re("mouseover",ks,()=>Ai(ir)),re("focus",ks,()=>Ai(ir)),re("click",ks,z0(()=>function(_o){var{item:yn,i:Gr}=_o;if(yn?.selectable!==!1)return N()&&!y()&&N()[aA()]===yn[aA()]?Ci():void(function(z){return z.groupHeader&&z.selectable||z.selectable||!z.hasOwnProperty("selectable")}(yn)&&(kA(Gr),Ye(yn)))}({item:g(Yi),i:ir}))),re("keydown",ks,S1(z0(function(_o){m3.call(this,e,_o)}))),iA(fn,ks)}),iA(Oe,ni)},Xo=(Oe,ni)=>{var fn=Yi=>{var ir=po();xo(Bt(ir),e,"empty",{},Xi=>{iA(Xi,hUA())}),iA(Yi,ir)};MA(Oe,Yi=>{D()||Yi(fn)},ni)};MA(jt,Oe=>{g(l).length>0?Oe(ut):Oe(Xo,!1)},Nn)};MA(ai,jt=>{A.list?jt(Fn):jt(Co,!1)});var Qn=gA(ai,2),un=jt=>{var Nn=po();xo(Bt(Nn),e,"list-append",{},null),iA(jt,Nn)};MA(Qn,jt=>{A["list-append"]&&jt(un)}),bs(Ce,jt=>Wo?.(jt)),to(Ce,jt=>b(Ht,jt),()=>g(Ht)),Nr(()=>re("scroll",Ce,zi)),Nr(()=>re("pointerup",Ce,S1(z0(function(jt){m3.call(this,e,jt)})))),Nr(()=>re("mousedown",Ce,S1(z0(function(jt){m3.call(this,e,jt)})))),Ee(jt=>_A=xt(Ce,1,"svelte-select-list svelte-82qwg8",null,_A,jt),[()=>({prefloat:g(Jn)})],PA),iA(QA,Ce)};MA(se,QA=>{h()&&QA(fi)});var bA=gA(se,2),fe=$(bA),it=QA=>{var _A=uUA(),Ce=Bt(_A),Pt=$(Ce),Li=$(gA(Ce,2));Ee(()=>{Et(Pt,g(a)),Et(Li,g(c))}),iA(QA,_A)};MA(fe,QA=>{T()&&QA(it)});var Gt=gA(bA,2);xo($(Gt),e,"prepend",{},null);var Xe=gA(Gt,2),Ot=$(Xe),Pi=QA=>{var _A=po(),Ce=Bt(_A),Pt=ai=>{var Fn=po();Fo(Bt(Fn),1,N,Zo,(Co,Qn,un)=>{var jt,Nn=mUA(),ut=$(Nn);xo($(ut),e,"selection",{get selection(){return g(Qn)},index:un},ni=>{var fn=_r();Ee(()=>Et(fn,g(Qn)[lA()])),iA(ni,fn)});var Xo=gA(ut,2),Oe=ni=>{var fn=fUA();xo($(fn),e,"multi-clear-icon",{},Yi=>{TN(Yi)}),re("pointerup",fn,S1(z0(()=>DA(un)))),iA(ni,fn)};MA(Xo,ni=>{U()||F()||!TN||ni(Oe)}),Ee(ni=>jt=xt(Nn,1,"multi-item svelte-82qwg8",null,jt,ni),[()=>({active:g(GA)===un,disabled:U()})],PA),re("click",Nn,S1(()=>F()?DA(un):{})),re("keydown",Nn,S1(z0(function(ni){m3.call(this,e,ni)}))),iA(Co,Nn)}),iA(ai,Fn)},Li=ai=>{var Fn,Co=pUA();xo($(Co),e,"selection",{get selection(){return N()}},Qn=>{var un=_r();Ee(()=>Et(un,N()[lA()])),iA(Qn,un)}),Ee(Qn=>Fn=xt(Co,1,"selected-item svelte-82qwg8",null,Fn,Qn),[()=>({"hide-selected-item":g(o)})],PA),iA(ai,Co)};MA(Ce,ai=>{y()?ai(Pt):ai(Li,!1)}),iA(QA,_A)};MA(Ot,QA=>{g(n)&&QA(Pi)});var Jt,Ki=gA(Ot,2);to(Ki,QA=>x(QA),()=>x());var Ct=gA(Xe,2),ti=$(Ct),$e=QA=>{var _A=wUA();xo($(_A),e,"loading-icon",{},Ce=>{(function(Pt){iA(Pt,BUA())})(Ce)}),iA(QA,_A)};MA(ti,QA=>{ne()&&QA($e)});var Nt=gA(ti,2),Wi=QA=>{var _A=DUA();xo($(_A),e,"clear-icon",{},Ce=>{TN(Ce)}),re("click",_A,Hi),iA(QA,_A)};MA(Nt,QA=>{g(r)&&QA(Wi)});var Tn=gA(Nt,2),ii=QA=>{var _A=yUA();xo($(_A),e,"chevron-icon",{get listOpen(){return h()}},Ce=>{(function(Pt){iA(Pt,CUA())})(Ce)}),iA(QA,_A)};MA(Tn,QA=>{q()&&QA(ii)});var Ri=gA(Ct,2);xo(Ri,e,"input-hidden",{get value(){return N()}},QA=>{var _A=vUA();Ee(Ce=>{en(_A,"name",v()),GC(_A,Ce)},[()=>N()?JSON.stringify(N()):null],PA),iA(QA,_A)});var dt=gA(Ri,2),zn=QA=>{var _A=po();xo(Bt(_A),e,"required",{get value(){return N()}},Ce=>{iA(Ce,bUA())}),iA(QA,_A)};return MA(dt,QA=>{!sA()||N()&&N().length!==0||QA(zn)}),Nr(()=>re("pointerup",wo,S1(on))),to(wo,QA=>L(QA),()=>L()),bs(wo,QA=>io?.(QA)),Ee(QA=>{var _A;hn=xt(wo,1,"svelte-select ".concat((_A=Ie())!==null&&_A!==void 0?_A:""),"svelte-82qwg8",hn,QA),vl(wo,VA()),Jt=jD(Ki,Jt,Be(Be({readOnly:!eA()},g(Y)),{},{placeholder:g(s),style:RA(),disabled:U()}),"svelte-82qwg8")},[()=>({multi:y(),disabled:U(),focused:T(),"list-open":h(),"show-chevron":q(),error:ce()})],PA),re("keydown",Ki,be),re("blur",Ki,It),re("focus",Ki,qA),iy(Ki,K),iA(t,wo),kt(e,"getFilteredItems",hA),kt(e,"handleClear",Hi),at({getFilteredItems:hA,handleClear:Hi})}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +table.jse-transform-wizard.svelte-qbze6z { + border-collapse: collapse; + border-spacing: 0; + width: 100%; +} +table.jse-transform-wizard.svelte-qbze6z input:where(.svelte-qbze6z) { + font-family: inherit; + font-size: inherit; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) th:where(.svelte-qbze6z) { + font-weight: normal; + text-align: left; + width: 60px; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) { + width: 100%; + display: flex; + flex-direction: row; + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .multi-item { + align-items: center; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .value-container { + gap: 0 !important; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-path { + flex: 4; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-relation { + flex: 1.5; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-path { + flex: 3; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-direction { + flex: 1; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-projection-paths { + flex: 1; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select input { + box-sizing: border-box; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z) { + flex: 4; + padding: 4px 8px; + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: var(--jse-input-radius, 3px); + outline: none; + background: var(--jse-input-background, var(--jse-background-color, #fff)); + color: inherit; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +}`);var kUA=pA('
    Filter
    Sort
    Pick
    ');function SUA(t,e){var A,i,n,o,r;st(e,!1);var s=X(void 0,!0),a=X(void 0,!0),c=X(void 0,!0),l=X(void 0,!0),I=X(void 0,!0),C=X(void 0,!0),d=wr("jsoneditor:TransformWizard"),B=k(e,"json",9),E=k(e,"queryOptions",29,()=>({})),Q=k(e,"onChange",9),u=["==","!=","<","<=",">",">="].map(EA=>({value:EA,label:EA})),v=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],L=X((A=E())!==null&&A!==void 0&&(A=A.filter)!==null&&A!==void 0&&A.path?L1(E().filter.path):void 0,!0),x=X((i=u.find(EA=>{var sA;return EA.value===((sA=E().filter)===null||sA===void 0?void 0:sA.relation)}))!==null&&i!==void 0?i:u[0],!0),y=X(((n=E())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),F=X((o=E())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?L1(E().sort.path):void 0,!0),U=X((r=v.find(EA=>{var sA;return EA.value===((sA=E().sort)===null||sA===void 0?void 0:sA.direction)}))!==null&&r!==void 0?r:v[0],!0);fA(()=>W(B()),()=>{b(s,Array.isArray(B()))}),fA(()=>(g(s),W(B())),()=>{b(a,g(s)?r_(B()):[])}),fA(()=>(g(s),W(B())),()=>{b(c,g(s)?r_(B(),!0):[])}),fA(()=>(g(a),L1),()=>{b(l,g(a).map(L1))}),fA(()=>(g(c),L1),()=>{b(I,g(c)?g(c).map(L1):[])}),fA(()=>(W(E()),g(I),Ei),()=>{var EA;b(C,(EA=E())!==null&&EA!==void 0&&(EA=EA.projection)!==null&&EA!==void 0&&EA.paths&&g(I)?E().projection.paths.map(sA=>g(I).find(TA=>Ei(TA.value,sA))).filter(sA=>!!sA):void 0)}),fA(()=>g(L),()=>{var EA,sA,TA;sA=(EA=g(L))===null||EA===void 0?void 0:EA.value,Ei((TA=E())===null||TA===void 0||(TA=TA.filter)===null||TA===void 0?void 0:TA.path,sA)||(d("changeFilterPath",sA),E(As(E(),["filter","path"],sA,!0)),Q()(E()))}),fA(()=>g(x),()=>{var EA,sA,TA;sA=(EA=g(x))===null||EA===void 0?void 0:EA.value,Ei((TA=E())===null||TA===void 0||(TA=TA.filter)===null||TA===void 0?void 0:TA.relation,sA)||(d("changeFilterRelation",sA),E(As(E(),["filter","relation"],sA,!0)),Q()(E()))}),fA(()=>g(y),()=>{var EA,sA;EA=g(y),Ei((sA=E())===null||sA===void 0||(sA=sA.filter)===null||sA===void 0?void 0:sA.value,EA)||(d("changeFilterValue",EA),E(As(E(),["filter","value"],EA,!0)),Q()(E()))}),fA(()=>g(F),()=>{var EA,sA,TA;sA=(EA=g(F))===null||EA===void 0?void 0:EA.value,Ei((TA=E())===null||TA===void 0||(TA=TA.sort)===null||TA===void 0?void 0:TA.path,sA)||(d("changeSortPath",sA),E(As(E(),["sort","path"],sA,!0)),Q()(E()))}),fA(()=>g(U),()=>{var EA,sA,TA;sA=(EA=g(U))===null||EA===void 0?void 0:EA.value,Ei((TA=E())===null||TA===void 0||(TA=TA.sort)===null||TA===void 0?void 0:TA.direction,sA)||(d("changeSortDirection",sA),E(As(E(),["sort","direction"],sA,!0)),Q()(E()))}),fA(()=>g(C),()=>{(function(EA){var sA;Ei((sA=E())===null||sA===void 0||(sA=sA.projection)===null||sA===void 0?void 0:sA.paths,EA)||(d("changeProjectionPaths",EA),E(As(E(),["projection","paths"],EA,!0)),Q()(E()))})(g(C)?g(C).map(EA=>EA.value):void 0)}),nn(),Rt(!0);var T=kUA(),N=$(T),K=$(N),H=gA($(K)),j=$(H),IA=$(j);bC(IA,{class:"jse-filter-path",showChevron:!0,get items(){return g(l)},get value(){return g(L)},set value(EA){b(L,EA)},$$legacy:!0});var lA=gA(IA,2);bC(lA,{class:"jse-filter-relation",showChevron:!0,clearable:!1,items:u,get value(){return g(x)},set value(EA){b(x,EA)},$$legacy:!0});var uA=gA(lA,2),p=gA(K),V=gA($(p)),cA=$(V),aA=$(cA);bC(aA,{class:"jse-sort-path",showChevron:!0,get items(){return g(l)},get value(){return g(F)},set value(EA){b(F,EA)},$$legacy:!0}),bC(gA(aA,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,items:v,get value(){return g(U)},set value(EA){b(U,EA)},$$legacy:!0});var jA=gA(p),VA=gA($(jA)),ce=$(VA);bC($(ce),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return g(I)},get value(){return g(C)},set value(EA){b(C,EA)},$$legacy:!0}),iy(uA,()=>g(y),EA=>b(y,EA)),iA(t,T),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-select-query-language.svelte-atm4um { + position: relative; + width: 32px; +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) { + position: absolute; + top: 0; + right: 0; + display: flex; + flex-direction: column; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + text-align: left; + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + white-space: nowrap; + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-context-menu-background, #656565); +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +}`);var RUA=pA(''),LUA=pA('
    ');function xUA(t,e){st(e,!1);var A=k(e,"queryLanguages",8),i=k(e,"queryLanguageId",12),n=k(e,"onChangeQueryLanguage",8);Rt();var o=LUA();Fo($(o),5,A,Zo,(r,s)=>{var a,c=RUA(),l=$(c),I=B=>{Si(B,{data:SS})},C=B=>{Si(B,{data:RS})};MA(l,B=>{g(s).id===i()?B(I):B(C,!1)});var d=gA(l);Ee(B=>{var E;a=xt(c,1,"jse-query-language svelte-atm4um",null,a,B),en(c,"title","Select ".concat(g(s).name," as query language")),Et(d," ".concat((E=g(s).name)!==null&&E!==void 0?E:""))},[()=>({selected:g(s).id===i()})],PA),re("click",c,()=>{return B=g(s).id,i(B),void n()(B);var B}),iA(r,c)}),iA(t,o),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-header.svelte-1y24war { + display: flex; + background: var(--jse-theme-color, #3883fa); + color: var(--jse-menu-color, var(--jse-text-color-inverse, #fff)); +} +.jse-header.svelte-1y24war .jse-title:where(.svelte-1y24war) { + flex: 1; + padding: 5px; + vertical-align: middle; +} +.jse-header.svelte-1y24war button:where(.svelte-1y24war) { + border: none; + background: transparent; + min-width: 32px; + color: inherit; + cursor: pointer; +} +.jse-header.svelte-1y24war button:where(.svelte-1y24war):hover { + background: rgba(255, 255, 255, 0.1); +}`);var FUA=pA(''),NUA=pA('
    ');function dy(t,e){st(e,!1);var A=k(e,"title",9,"Modal"),i=k(e,"fullScreenButton",9,!1),n=k(e,"fullscreen",13,!1),o=k(e,"onClose",9,void 0);Rt(!0);var r=NUA(),s=$(r),a=$(s),c=gA(s,2);xo(c,e,"actions",{},null);var l=gA(c,2),I=d=>{var B=FUA(),E=$(B),Q=PA(()=>n()?QW:FW);Si(E,{get data(){return g(Q)}}),re("click",B,()=>n(!n())),iA(d,B)};MA(l,d=>{i()&&d(I)});var C=gA(l,2);Si($(C),{data:Wu}),Ee(()=>Et(a,A())),re("click",C,()=>{var d;return(d=o())===null||d===void 0?void 0:d()}),iA(t,r),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-config.svelte-1kpylsp { + border: none; + background: transparent; + min-width: 32px; + color: inherit; + cursor: pointer; +} +.jse-config.svelte-1kpylsp:hover { + background: rgba(255, 255, 255, 0.1); +} +.jse-config.hide.svelte-1kpylsp { + display: none; +}`);var _UA=pA(''),zN=wr("jsoneditor:AutoScrollHandler");function drA(t){var e,A;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(e||0);t.scrollTop+=s}}function o(s){A&&s===e||(r(),zN("startAutoScroll",s),e=s,A=setInterval(n,50))}function r(){A&&(zN("stopAutoScroll"),clearInterval(A),A=void 0,e=void 0)}return zN("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:l}=t.getBoundingClientRect();al?o(i(a-l)):r()}},onDragEnd:function(){r()}}}var GUA=(t,e,A,i)=>(t/=i/2)<1?A/2*t*t+e:-A/2*(--t*(t-2)-1)+e,ZsA=()=>{var t,e,A,i,n,o,r,s,a,c,l,I,C;function d(Q){return Q.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+A}function B(Q){t.scrollTo?t.scrollTo(t.scrollLeft,Q):t.scrollTop=Q}function E(Q){c||(c=Q),B(o(l=Q-c,A,s,a)),C=!0,l1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=u.offset||0,I=u.callback,o=u.easing||GUA,r=u.a11y||!1,typeof u.container){case"object":t=u.container;break;case"string":t=document.querySelector(u.container);break;default:t=window.document.documentElement}switch(A=t.scrollTop,typeof Q){case"number":e=void 0,r=!1,i=A+Q;break;case"object":i=d(e=Q);break;case"string":e=document.querySelector(Q),i=d(e)}switch(s=i-A+n,typeof u.duration){case"number":a=u.duration;break;case"function":a=u.duration(s)}C?c=0:requestAnimationFrame(E)}};function OE(t,e){var A=Date.now(),i=t();return e(Date.now()-A),i}var JE=wr("validation"),UUA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function BrA(t,e,A,i){return Z_(t,e,A,i,UUA)}function WsA(t,e,A,i){if(JE("validateJSON"),!e)return[];if(A!==i){var n=A.stringify(t);return e(n!==void 0?i.parse(n):void 0)}return e(t)}function KUA(t,e,A,i){if(JE("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:bl.info}]};if(t.length!==0)try{var n=OE(()=>A.parse(t),a=>JE("validate: parsed json in ".concat(a," ms")));if(!e)return;var o=A===i?n:OE(()=>i.parse(t),a=>JE("validate: parsed json with the validationParser in ".concat(a," ms"))),r=OE(()=>e(o),a=>JE("validate: validated json in ".concat(a," ms")));return sn(r)?void 0:{validationErrors:r}}catch(a){var s=OE(()=>function(c,l){if(c.length>wGA)return!1;try{return l.parse(yc(c)),!0}catch{return!1}}(t,A),c=>JE("validate: checked whether repairable in ".concat(c," ms")));return{parseError:XE(t,a.message||a.toString()),isRepairable:s}}}var TD=wr("jsoneditor:FocusTracker");function iG(t){var e,{onMount:A,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var I=o();I&&(clearTimeout(e),a||(TD("focus"),r(),a=I))}function l(){a&&(clearTimeout(e),e=setTimeout(()=>{o()||(TD("blur"),a=!1,s())}))}A(()=>{TD("mount FocusTracker");var I=n();I&&(I.addEventListener("focusin",c,!0),I.addEventListener("focusout",l,!0))}),i(()=>{TD("destroy FocusTracker");var I=n();I&&(I.removeEventListener("focusin",c,!0),I.removeEventListener("focusout",l,!0))})}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-message.svelte-czprfx { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + padding: var(--jse-padding, 10px); + display: flex; + gap: var(--jse-padding, 10px); + flex-wrap: wrap; + align-items: stretch; +} +.jse-message.jse-success.svelte-czprfx { + background: var(--message-success-background, #9ac45d); + color: var(--jse-message-success-color, #fff); +} +.jse-message.svelte-czprfx .jse-text:where(.svelte-czprfx) { + display: flex; + flex: 1; + min-width: 60%; + align-items: center; +} +.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx) { + cursor: pointer; +} +.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx):hover { + background-color: rgba(255, 255, 255, 0.1); +} +.jse-message.jse-error.svelte-czprfx { + background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); + color: var(--jse-message-error-color, #fff); +} +.jse-message.jse-warning.svelte-czprfx { + background: var(--jse-message-warning-background, #ffde5c); + color: var(--jse-message-warning-color, #4d4d4d); +} +.jse-message.jse-info.svelte-czprfx { + background: var(--jse-message-info-background, #4f91ff); + color: var(--jse-message-info-color, #fff); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) { + display: flex; + gap: var(--jse-padding, 10px); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-message-action-background, rgba(255, 255, 255, 0.2)); + color: inherit; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx):hover { + background: var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3)); +}`);var YUA=pA(''),JUA=pA('
    ');function Cc(t,e){st(e,!1);var A=k(e,"type",9,"success"),i=k(e,"icon",9,void 0),n=k(e,"message",9,void 0),o=k(e,"actions",25,()=>[]),r=k(e,"onClick",9,void 0),s=k(e,"onClose",9,void 0);s()&&Tc(s()),Rt(!0);var a,c=JUA(),l=$(c),I=$(l),C=$(I),d=E=>{Si(E,{get data(){return i()}})};MA(C,E=>{i()&&E(d)});var B=gA(C);Fo(gA(l,2),5,o,Zo,(E,Q)=>{var u=YUA(),v=$(u),L=y=>{Si(y,{get data(){return g(Q).icon}})};MA(v,y=>{g(Q).icon&&y(L)});var x=gA(v);Ee(()=>{var y;en(u,"title",g(Q).title),u.disabled=g(Q).disabled,Et(x," ".concat((y=g(Q).text)!==null&&y!==void 0?y:""))}),re("click",u,()=>{g(Q).onClick&&g(Q).onClick()}),re("mousedown",u,()=>{g(Q).onMouseDown&&g(Q).onMouseDown()}),iA(E,u)}),Ee(E=>{var Q,u;xt(c,1,"jse-message jse-".concat((Q=A())!==null&&Q!==void 0?Q:""),"svelte-czprfx"),a=xt(l,1,"jse-text svelte-czprfx",null,a,E),Et(B," ".concat((u=n())!==null&&u!==void 0?u:""))},[()=>({"jse-clickable":!!r()})],PA),re("click",l,function(){r()&&r()()}),iA(t,c),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-validation-errors-overview.svelte-1uindol { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + overflow: auto; + max-height: 25%; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) { + border-collapse: collapse; + width: 100%; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) { + cursor: pointer; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-error:where(.svelte-1uindol) { + background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); + color: var(--jse-message-error-color, #fff); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol) { + background: var(--jse-message-warning-background, #ffde5c); + color: var(--jse-message-warning-color, #4d4d4d); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol):hover { + filter: brightness(105%); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-info:where(.svelte-1uindol) { + background: var(--jse-message-info-background, #4f91ff); + color: var(--jse-message-info-color, #fff); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol):hover { + filter: brightness(110%); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) { + padding: 4px var(--jse-padding, 10px); + vertical-align: middle; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-icon:where(.svelte-1uindol) { + width: 36px; + box-sizing: border-box; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) { + width: 36px; + box-sizing: border-box; + padding: 0; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 36px; + height: 26px; + cursor: pointer; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol):hover { + background-color: rgba(255, 255, 255, 0.2); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) div.jse-validation-errors-expand:where(.svelte-1uindol) { + display: inline-block; + position: relative; + top: 3px; +}`);var TUA=pA(''),zUA=pA(' '),HUA=pA(' '),OUA=pA('
    '),PUA=pA('
    '),jUA=pA('
    ');function nG(t,e){st(e,!1);var A=X(void 0,!0),i=k(e,"validationErrors",9),n=k(e,"selectError",9),o=X(!0,!0);function r(){b(o,!1)}function s(){b(o,!0)}fA(()=>W(i()),()=>{b(A,i().length)}),nn(),Rt(!0);var a=po(),c=Bt(a),l=I=>{var C=jUA(),d=$(C),B=Q=>{var u=OUA(),v=$(u),L=$(v);Fo(L,1,()=>asA(i(),100),Zo,(F,U,T)=>{var N=zUA(),K=$(N);Si($(K),{data:r1});var H=gA(K),j=$(H),IA=gA(H),lA=$(IA),uA=$(gA(IA)),p=V=>{var cA=TUA();Si($(cA),{data:kW}),re("click",cA,z0(r)),iA(V,cA)};MA(uA,V=>{T===0&&i().length>1&&V(p)}),Ee(V=>{var cA;xt(N,1,"jse-validation-".concat((cA=g(U).severity)!==null&&cA!==void 0?cA:""),"svelte-1uindol"),Et(j,V),Et(lA,g(U).message)},[()=>Dl(g(U).path)],PA),re("click",N,()=>{setTimeout(()=>n()(g(U)))}),iA(F,N)});var x=gA(L),y=F=>{var U=HUA(),T=gA($(U),2),N=$(T);Ee(()=>Et(N,"(and ".concat(g(A)-100," more errors)"))),iA(F,U)};MA(x,F=>{g(A)>100&&F(y)}),iA(Q,u)},E=Q=>{var u=PUA(),v=$(u),L=$(v),x=$(L);Si($(x),{data:r1});var y=$(gA(x));Si($(gA(y)),{data:FS}),Ee(F=>{var U;xt(L,1,"jse-validation-".concat(F??""),"svelte-1uindol"),Et(y,"".concat((U=g(A))!==null&&U!==void 0?U:""," validation errors "))},[()=>{return F=i(),[bl.error,bl.warning,bl.info].find(U=>F.some(T=>T.severity===U));var F}],PA),re("click",L,s),iA(Q,u)};MA(d,Q=>{g(o)||g(A)===1?Q(B):Q(E,!1)}),iA(I,C)};MA(c,I=>{sn(i())||I(l)}),iA(t,a),at()}function By(t,e){if(t)return t.addEventListener("keydown",A),{destroy(){t.removeEventListener("keydown",A)}};function A(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),e())}}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +dialog.jse-modal.svelte-1s9c2ql { + border-radius: 3px; + font-size: var(--jse-padding, 10px); + border: none; + padding: 0; + display: flex; + min-width: 0; + margin: auto; + overflow: visible; + transition: width 0.1s ease-in-out, height 0.1s ease-in-out; +} +dialog.jse-modal.jse-sort-modal.svelte-1s9c2ql { + width: 400px; +} +dialog.jse-modal.jse-repair-modal.svelte-1s9c2ql { + width: 600px; + height: 500px; +} +dialog.jse-modal.jse-jsoneditor-modal.svelte-1s9c2ql { + width: 800px; + height: 600px; +} +dialog.jse-modal.jse-transform-modal.svelte-1s9c2ql { + width: 1200px; + height: 800px; +} +dialog.jse-modal.jse-fullscreen.svelte-1s9c2ql { + width: 100%; + height: 100%; +} +dialog.jse-modal.svelte-1s9c2ql::backdrop { + background: var(--jse-overlay-background, rgba(0, 0, 0, 0.3)); +} +dialog.jse-modal[open].svelte-1s9c2ql { + animation: svelte-1s9c2ql-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); +} +dialog.jse-modal[open].svelte-1s9c2ql::backdrop { + animation: svelte-1s9c2ql-fade 0.2s ease-out; +} +dialog.jse-modal.svelte-1s9c2ql .jse-modal-inner:where(.svelte-1s9c2ql) { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; + padding: 0; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + background: var(--jse-modal-background, #f5f5f5); + color: var(--jse-text-color, #4d4d4d); +} +@keyframes svelte-1s9c2ql-zoom { + from { + transform: scale(0.95); + } + to { + transform: scale(1); + } +} +@keyframes svelte-1s9c2ql-fade { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +dialog.jse-modal.svelte-1s9c2ql .svelte-select { + --border: var(--jse-svelte-select-border, 1px solid #d8dbdf); + --item-is-active-bg: var(--jse-item-is-active-bg, #3883fa); + --border-radius: var(--jse-svelte-select-border-radius, 3px); + --background: var(--jse-svelte-select-background, #fff); + --padding: var(--jse-svelte-select-padding, 0 10px); + --multi-select-padding: var(--jse-svelte-select-multi-select-padding, 0 10px); + --font-size: var(--jse-svelte-select-font-size, var(--jse-font-size, 16px)); + --height: 36px; + --multi-item-height: 28px; + --multi-item-margin: 2px; + --multi-item-padding: 2px 8px; + --multi-item-border-radius: 6px; + --indicator-top: 8px; +}`);var qUA=pA('
    ');function U3(t,e){st(e,!1);var A=k(e,"className",8,void 0),i=k(e,"fullscreen",8,!1),n=k(e,"onClose",8),o=X();function r(){n()()}ls(()=>g(o).showModal()),Tc(()=>g(o).close()),Rt();var s,a=qUA(),c=$(a);xo($(c),e,"default",{},null),to(a,l=>b(o,l),()=>g(o)),Nr(()=>re("close",a,r)),Nr(()=>{return re("pointerdown",a,(l=r,function(){for(var I=arguments.length,C=new Array(I),d=0;dre("cancel",a,S1(function(l){m3.call(this,e,l)}))),bs(a,(l,I)=>By?.(l,I),()=>r),Ee((l,I)=>s=xt(a,1,l,"svelte-1s9c2ql",s,I),[()=>T1(lh("jse-modal",A())),()=>({"jse-fullscreen":i()})],PA),iA(t,a),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-contents.svelte-189qksl { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} + +.jse-shortcuts.svelte-189qksl { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin: calc(2 * var(--jse-padding, 10px)) 0; +} +.jse-shortcuts.svelte-189qksl .jse-shortcut:where(.svelte-189qksl) .jse-key:where(.svelte-189qksl) { + font-size: 200%; + color: var(--jse-theme-color, #3883fa); +}`);var VUA=pA('
    Clipboard permission is disabled by your browser. You can use:
    for copy
    for cut
    for paste
    ',1);function XsA(t,e){st(e,!1);var A=k(e,"onClose",9),i=T_()?"\u2318":"Ctrl";Rt(!0),U3(t,{get onClose(){return A()},className:"jse-copy-paste",children:(n,o)=>{var r=VUA(),s=Bt(r);dy(s,{title:"Copying and pasting",get onClose(){return A()}});var a=gA(s,2),c=gA($(a),2),l=$(c);$(l).textContent="".concat(i,"+C");var I=gA(l,2);$(I).textContent="".concat(i,"+X"),$(gA(I,2)).textContent="".concat(i,"+V"),re("click",$(gA(c,2)),function(){for(var C,d=arguments.length,B=new Array(d),E=0;E'),WUA=pA('
    '),XUA=pA(''),$UA=pA('
    ');function Ly(t,e){st(e,!1);var A=k(e,"items",25,()=>[]);Rt(!0);var i=$UA(),n=$(i);xo(n,e,"left",{},null);var o=gA(n,2);Fo(o,1,A,Zo,(r,s)=>{var a=po(),c=Bt(a),l=C=>{iA(C,ZUA())},I=(C,d)=>{var B=Q=>{iA(Q,WUA())},E=(Q,u)=>{var v=x=>{var y=XUA(),F=$(y),U=K=>{Si(K,{get data(){return g(s).icon}})};MA(F,K=>{g(s).icon&&K(U)});var T=gA(F,2),N=K=>{var H=_r();Ee(()=>Et(H,g(s).text)),iA(K,H)};MA(T,K=>{g(s).text&&K(N)}),Ee(()=>{var K;xt(y,1,"jse-button ".concat((K=g(s).className)!==null&&K!==void 0?K:""),"svelte-pf7s2l"),en(y,"title",g(s).title),y.disabled=g(s).disabled||!1}),re("click",y,function(){for(var K,H=arguments.length,j=new Array(H),IA=0;IA{var y=_r();Ee(F=>Et(y,F),[()=>function(F){return console.error("Unknown type of menu item",F),"???"}(g(s))],PA),iA(x,y)};MA(Q,x=>{y3(g(s))?x(v):x(L,!1)},u)};MA(C,Q=>{psA(g(s))?Q(B):Q(E,!1)},d)};MA(c,C=>{qD(g(s))?C(l):C(I,!1)}),iA(r,a)}),xo(gA(o,2),e,"right",{},null),iA(t,i),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-json-repair-component.svelte-3golau { + flex: 1; + display: flex; + flex-direction: column; + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); +} +.jse-json-repair-component.svelte-3golau .jse-info:where(.svelte-3golau) { + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + vertical-align: center; +} +.jse-json-repair-component.svelte-3golau .jse-json-text:where(.svelte-3golau) { + flex: 1; + border: none; + padding: 2px; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + background: var(--jse-input-background, var(--jse-background-color, #fff)); + color: var(--jse-text-color, #4d4d4d); + resize: none; + outline: none; +}`);var AKA=pA('
    Repair invalid JSON, then click apply
    '),eKA=pA('
    ');function tKA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=X(void 0,!0),o=X(void 0,!0),r=X(void 0,!0),s=X(void 0,!0),a=k(e,"text",13,""),c=k(e,"readOnly",9,!1),l=k(e,"onParse",9),I=k(e,"onRepair",9),C=k(e,"onChange",9,void 0),d=k(e,"onApply",9),B=k(e,"onCancel",9),E=wr("jsoneditor:JSONRepair"),Q=X(void 0,!0);function u(){if(g(Q)&&g(A)){var H=g(A).position!==void 0?g(A).position:0;g(Q).setSelectionRange(H,H),g(Q).focus()}}function v(){d()(a())}function L(){try{a(I()(a())),C()&&C()(a())}catch{}}var x=X(void 0,!0);fA(()=>W(a()),()=>{b(A,function(H){try{return void l()(H)}catch(j){return XE(H,j.message)}}(a()))}),fA(()=>W(a()),()=>{b(i,function(H){try{return I()(H),!0}catch{return!1}}(a()))}),fA(()=>g(A),()=>{E("error",g(A))}),fA(()=>W(B()),()=>{b(x,[{type:"space"},{type:"button",icon:Wu,title:"Cancel repair",className:"jse-cancel",onClick:B()}])}),fA(()=>GS,()=>{b(n,{icon:GS,text:"Show me",title:"Scroll to the error location",onClick:u})}),fA(()=>M0,()=>{b(o,{icon:M0,text:"Auto repair",title:"Automatically repair JSON",onClick:L})}),fA(()=>(g(i),g(n),g(o)),()=>{b(r,g(i)?[g(n),g(o)]:[g(n)])}),fA(()=>W(c()),()=>{b(s,[{icon:a5,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:v}])}),nn(),Rt(!0);var y=eKA(),F=$(y);Ly(F,{get items(){return g(x)},$$slots:{left:(H,j)=>{iA(H,AKA())}}});var U=gA(F,2),T=H=>{var j=PA(()=>"Cannot parse JSON: ".concat(g(A).message));Cc(H,{type:"error",icon:r1,get message(){return g(j)},get actions(){return g(r)}})},N=H=>{Cc(H,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return g(s)}})};MA(U,H=>{g(A)?H(T):H(N,!1)});var K=gA(U,2);to(K,H=>b(Q,H),()=>g(Q)),Ee(()=>{K.readOnly=c(),GC(K,a())}),re("input",K,function(H){E("handleChange");var j=H.target.value;a()!==j&&(a(j),C()&&C()(a()))}),iA(t,y),at()}function $sA(t,e){st(e,!1);var A=k(e,"text",13),i=k(e,"onParse",9),n=k(e,"onRepair",9),o=k(e,"onApply",9),r=k(e,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}Rt(!0),U3(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,l)=>{tKA(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return A()},set text(I){A(I)},$$legacy:!0})},$$slots:{default:!0}}),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +div.jse-collapsed-items.svelte-1h6hzoq { + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); + padding: calc(0.5 * var(--jse-padding, 10px)); + border: 8px solid transparent; + border-width: 8px 0; + background-color: var(--jse-contents-background-color, transparent); + background-image: linear-gradient(var(--jse-collapsed-items-background-color, #f5f5f5), var(--jse-collapsed-items-background-color, #f5f5f5)), linear-gradient(to bottom right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to bottom left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%); + background-repeat: repeat, repeat-x, repeat-x, repeat-x, repeat-x; + background-position: 0 0, 8px 0, 8px 0, 8px 100%, 8px 100%; + background-size: auto auto, 16px 16px, 16px 16px, 16px 16px, 16px 16px; + background-clip: padding-box, border-box, border-box, border-box, border-box; + background-origin: padding-box, border-box, border-box, border-box, border-box; + display: flex; +} +div.jse-collapsed-items.jse-selected.svelte-1h6hzoq { + background-color: var(--jse-selection-background-color, #d3d3d3); + --jse-collapsed-items-background-color: var(--jse-collapsed-items-selected-background-color, #c2c2c2); +} +div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq), +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { + margin: 0 calc(0.5 * var(--jse-padding, 10px)); +} +div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq) { + display: inline; +} +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { + font-family: inherit; + font-size: inherit; + color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); + background: none; + border: none; + padding: 0; + text-decoration: underline; + cursor: pointer; +} +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):hover, div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):focus { + color: var(--jse-collapsed-items-link-color-highlight, #ee5341); +}`);var iKA=pA(''),nKA=pA('
    ');function oKA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=X(void 0,!0),o=X(void 0,!0),r=X(void 0,!0),s=k(e,"visibleSections",9),a=k(e,"sectionIndex",9),c=k(e,"total",9),l=k(e,"path",9),I=k(e,"selection",9),C=k(e,"onExpandSection",9),d=k(e,"context",9);fA(()=>(W(s()),W(a())),()=>{b(A,s()[a()])}),fA(()=>g(A),()=>{b(i,g(A).end)}),fA(()=>(W(s()),W(a()),W(c())),()=>{b(n,s()[a()+1]?s()[a()+1].start:c())}),fA(()=>(W(d()),W(I()),W(l()),g(i)),()=>{b(o,N3(d().getJson(),I(),l().concat(String(g(i)))))}),fA(()=>(g(i),g(n)),()=>{b(r,function(x,y){var F={start:x,end:Math.min(g_(x),y)},U=Math.max(ny((x+y)/2),x),T={start:U,end:Math.min(g_(U),y)},N=ny(y),K=N===y?N-R3:N,H={start:Math.max(K,x),end:y},j=[F],IA=T.start>=F.end&&T.end<=H.start;return IA&&j.push(T),H.start>=(IA?T.end:F.end)&&j.push(H),j}(g(i),g(n)))}),nn(),Rt(!0);var B,E,Q=nKA(),u=$(Q),v=$(u),L=$(v);Fo(gA(v,2),1,()=>g(r),Zo,(x,y)=>{var F=iKA(),U=$(F);Ee(()=>{var T,N;return Et(U,"show ".concat((T=g(y).start)!==null&&T!==void 0?T:"","-").concat((N=g(y).end)!==null&&N!==void 0?N:""))}),re("click",F,()=>C()(l(),g(y))),iA(x,F)}),Ee(x=>{var y,F;B=xt(Q,1,"jse-collapsed-items svelte-1h6hzoq",null,B,x),E=vl(Q,"",E,{"--level":l().length+2}),Et(L,"Items ".concat((y=g(i))!==null&&y!==void 0?y:"","-").concat((F=g(n))!==null&&F!==void 0?F:""))},[()=>({"jse-selected":g(o)})],PA),re("mousemove",Q,function(x){x.stopPropagation()}),iA(t,Q),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-context-menu-pointer.svelte-137iwnw { + position: absolute; + top: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); + right: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); + width: var(--jse-context-menu-pointer-size, calc(1em + 4px)); + height: var(--jse-context-menu-pointer-size, calc(1em + 4px)); + padding: 0; + margin: 0; + cursor: pointer; + background: transparent; + border-radius: 2px; + background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); + color: var(--jse-context-menu-pointer-color, var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff))); + border: none; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-context-menu-pointer.jse-root.svelte-137iwnw { + top: 0; + right: calc(-2px - var(--jse-context-menu-pointer-size, calc(1em + 4px))); +} +.jse-context-menu-pointer.jse-insert.svelte-137iwnw { + right: -1px; +} +.jse-context-menu-pointer.svelte-137iwnw:hover { + background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); +} +.jse-context-menu-pointer.jse-selected.svelte-137iwnw { + background: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); +} +.jse-context-menu-pointer.jse-selected.svelte-137iwnw:hover { + background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); +}`);var rKA=pA('');function R1(t,e){st(e,!1);var A=k(e,"root",9,!1),i=k(e,"insert",9,!1),n=k(e,"selected",9),o=k(e,"onContextMenu",9);Rt(!0);var r,s=rKA();en(s,"title",H_),Si($(s),{data:k0}),Ee(a=>r=xt(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),[()=>({"jse-root":A(),"jse-insert":i(),"jse-selected":n()})],PA),re("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:O0,height:H0,offsetTop:2,offsetLeft:0,showTip:!0})}),iA(t,s),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-key.svelte-2iqnqn { + display: inline-block; + min-width: 2em; + padding: 0 5px; + box-sizing: border-box; + outline: none; + border-radius: 1px; + vertical-align: top; + color: var(--jse-key-color, #1a1a1a); + word-break: normal; + overflow-wrap: normal; + white-space: pre-wrap; +} +.jse-key.jse-empty.svelte-2iqnqn { + min-width: 3em; + outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + -moz-outline-radius: 2px; +} +.jse-key.jse-empty.svelte-2iqnqn::after { + pointer-events: none; + color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + content: "key"; +}`);var sKA=pA('
    '),aKA=pA(" ",1),cKA=pA('
    ');function AaA(t,e){st(e,!0);var A=ba(()=>dn(e.selection)&&Ma(e.selection)),i=ba(()=>e.context.onRenderValue({path:e.path,value:e.value,mode:e.context.mode,truncateTextSize:e.context.truncateTextSize,readOnly:e.context.readOnly,enforceString:e.enforceString,isEditing:g(A),parser:e.context.parser,normalization:e.context.normalization,selection:e.selection,searchResultItems:e.searchResultItems,onPatch:e.context.onPatch,onPasteJson:e.context.onPasteJson,onSelect:e.context.onSelect,onFind:e.context.onFind,findNextInside:e.context.findNextInside,focus:e.context.focus})),n=po();Fo(Bt(n),17,()=>g(i),Zo,(o,r)=>{var s=po(),a=Bt(s),c=I=>{var C=cKA(),d=ba(()=>g(r).action);bs(C,(B,E)=>{var Q;return(Q=g(d))===null||Q===void 0?void 0:Q(B,E)},()=>g(r).props),iA(I,C)},l=I=>{var C=po(),d=ba(()=>g(r).component);esA(Bt(C),()=>g(d),(B,E)=>{E(B,U1(()=>g(r).props))}),iA(I,C)};MA(a,I=>{RGA(g(r))?I(c):I(l,!1)}),iA(o,s)}),iA(t,n),at()}var lKA={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function HN(t){var{json:e,selection:A,deltaY:i,items:n}=t;if(!A)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(l){for(var{json:I,items:C,selection:d,deltaY:B}=l,E=P0(I,d),Q=C.findIndex(F=>Ei(F.path,E)),u=()=>{var F;return(F=C[v-1])===null||F===void 0?void 0:F.height},v=Q,L=0;u()!==void 0&&Math.abs(B)>L+u()/2;)L+=u(),v-=1;var x=C[v].path,y=v-Q;return v!==Q&&C[v]!==void 0?{beforePath:x,offset:y}:void 0}({json:e,selection:A,deltaY:i,items:n}):function(l){for(var I,{json:C,items:d,selection:B,deltaY:E}=l,Q=Y1(C,B),u=d.findIndex(K=>Ei(K.path,Q)),v=0,L=u,x=()=>{var K;return(K=d[L+1])===null||K===void 0?void 0:K.height};x()!==void 0&&Math.abs(E)>v+x()/2;)v+=x(),L+=1;var y=pi(Q),F=Fe(C,y),U=Array.isArray(F)?L:L+1,T=(I=d[U])===null||I===void 0?void 0:I.path,N=L-u;return T?{beforePath:T,offset:N}:{append:!0,offset:N}}({json:e,selection:A,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(l,I,C){if(!I)return[];var d="beforePath"in C?C.beforePath:void 0,B="append"in C?C.append:void 0,E=pi(je(I)),Q=Fe(l,E);if(!(B||d&&e2(d,E)&&d.length>E.length))return[];var u=P0(l,I),v=Y1(l,I),L=ri(u),x=ri(v),y=d?d[E.length]:void 0;if(!Mo(Q)){if(ao(Q)){var F=jr(L),U=jr(x),T=y!==void 0?jr(y):Q.length;return vS(U-F+1,T({op:"move",from:nt(E.concat(String(F+IA))),path:nt(E.concat(String(T+IA)))}):()=>({op:"move",from:nt(E.concat(String(F))),path:nt(E.concat(String(T)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var N=Object.keys(Q),K=N.indexOf(L),H=N.indexOf(x),j=B?N.length:y!==void 0?N.indexOf(y):-1;return K!==-1&&H!==-1&&j!==-1?j>K?[...N.slice(K,H+1),...N.slice(j,N.length)].map(IA=>YC(E,IA)):[...N.slice(j,K),...N.slice(H+1,N.length)].map(IA=>YC(E,IA)):[]}(e,A,o),s=pi(P0(e,A)),a=Fe(e,s);if(Array.isArray(a)){var c=function(l){var I,C,{items:d,json:B,selection:E,offset:Q}=l,u=P0(B,E),v=Y1(B,E),L=d.findIndex(U=>Ei(U.path,u)),x=d.findIndex(U=>Ei(U.path,v)),y=(I=d[L+Q])===null||I===void 0?void 0:I.path,F=(C=d[x+Q])===null||C===void 0?void 0:C.path;return ys(y,F)}({items:n,json:e,selection:A,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-validation-error.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-error-color, #ee5341); +} + +button.jse-validation-info.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-info-color, #4f91ff); +} + +button.jse-validation-warning.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-warning-color, #fdc539); +}`);var gKA=pA('');function VE(t,e){st(e,!1);var A=X(),i=H1("absolute-popup"),n=k(e,"validationError",8),o=k(e,"onExpand",8);fA(()=>W(n()),()=>{b(A,SGA(n())&&n().isChildError?"Contains invalid data":n().message)}),nn(),Rt();var r=gKA();Si($(r),{data:r1}),Nr(()=>re("click",r,function(){for(var s,a=arguments.length,c=new Array(a),l=0;leh?.(s,a),()=>Be({text:g(A)},i)),Ee(()=>{var s;return xt(r,1,"jse-validation-".concat((s=n().severity)!==null&&s!==void 0?s:""),"svelte-1a8aobl")}),iA(t,r),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-expand.svelte-oawf7x { + width: var(--jse-indent-size, calc(1em + 4px)); + padding: 0; + margin: 0; + border: none; + cursor: pointer; + background: transparent; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); + font-size: var(--jse-font-size-mono, 14px); + height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-expand.svelte-oawf7x:hover { + opacity: 0.8; +} + +.jse-meta.svelte-oawf7x, +.jse-separator.svelte-oawf7x, +.jse-index.svelte-oawf7x, +.jse-bracket.svelte-oawf7x { + vertical-align: top; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} + +.jse-index.svelte-oawf7x { + padding: 0 calc(0.5 * var(--jse-padding, 10px)); +} + +.jse-bracket.svelte-oawf7x { + padding: 0 2px; +} +.jse-bracket.jse-expanded.svelte-oawf7x { + padding-right: var(--jse-padding, 10px); +} + +.jse-identifier.svelte-oawf7x { + vertical-align: top; + position: relative; +} + +.jse-json-node.svelte-oawf7x { + position: relative; + color: var(--jse-text-color, #4d4d4d); +} +.jse-json-node.jse-root.svelte-oawf7x { + min-height: 100%; + padding-bottom: 2px; + box-sizing: border-box; +} +.jse-json-node.jse-root.svelte-oawf7x > .jse-contents-outer:where(.svelte-oawf7x) > .jse-contents:where(.svelte-oawf7x) { + padding-left: 0; +} +.jse-json-node.svelte-oawf7x .jse-props:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-items:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-header-outer:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-footer-outer:where(.svelte-oawf7x) { + display: flex; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) .jse-meta:where(.svelte-oawf7x) > .jse-meta-inner:where(.svelte-oawf7x) { + display: flex; + justify-content: center; +} +.jse-json-node.svelte-oawf7x .jse-contents-outer:where(.svelte-oawf7x) { + display: flex; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { + display: flex; + flex-direction: row; + align-items: flex-start; +} +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { + padding-left: var(--jse-indent-size, calc(1em + 4px)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) .jse-value-outer:where(.svelte-oawf7x) { + display: inline-flex; +} +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + display: inline-flex; + padding-left: calc(var(--jse-indent-size, calc(1em + 4px)) + 5px); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + background: var(--jse-contents-background-color, transparent); +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area:where(.svelte-oawf7x) { + padding: 0 calc(0.5 * var(--jse-padding, 10px)); + flex: 1; +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-inside:where(.svelte-oawf7x) { + display: inline-flex; + align-items: center; +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-after:where(.svelte-oawf7x) { + display: flex; + align-items: flex-end; +} +.jse-json-node.svelte-oawf7x .jse-context-menu-pointer-anchor:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-insert-area:where(.svelte-oawf7x) { + display: flex; + position: relative; + z-index: 1; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); + max-width: 250px; + min-width: 100px; + height: 0; + margin-right: calc(0.5 * var(--jse-padding, 10px)); + outline: 1px solid; +} +.jse-json-node.svelte-oawf7x .jse-insert-area.jse-hovered:where(.svelte-oawf7x) { + outline-color: var(--jse-context-menu-pointer-hover-background, #b2b2b2); +} +.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-meta { + background: none; +} +.jse-json-node.jse-selected.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.jse-selected.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), +.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { + background: inherit; + cursor: inherit; +} +.jse-json-node.svelte-oawf7x .jse-key-outer.jse-selected-key:where(.svelte-oawf7x) { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer .jse-key-outer:hover { + background: inherit; + cursor: inherit; +} +.jse-json-node.jse-readonly.svelte-oawf7x { + --jse-contents-selected-cursor: pointer; +} +.jse-json-node.svelte-oawf7x .jse-insert-area.jse-selected:where(.svelte-oawf7x) { + outline-color: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); +}`);var $n=Dy(()=>lKA),IKA=pA('
    :
    '),CKA=pA('
    [
     ',1),dKA=pA('
    [
    ]
    ',1),BKA=pA('
    '),EKA=pA('
    '),hKA=pA('
    '),QKA=pA('
    '),uKA=pA('
    '),fKA=pA(" ",1),mKA=pA('
    '),pKA=pA('
    ',1),wKA=pA('
    ',1),DKA=pA('
    :
    '),yKA=pA('
    {
    '),vKA=pA('
    {
    }
    ',1),bKA=pA('
    '),MKA=pA('
    '),kKA=pA('
    '),SKA=pA('
    '),RKA=pA('
    '),LKA=pA('
    '),xKA=pA('
    ',1),FKA=pA('
    ',1),NKA=pA('
    :
    '),_KA=pA('
    '),GKA=pA('
    '),UKA=pA('
    '),KKA=pA('
    '),YKA=pA('
    ');function p_(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=k(e,"pointer",9),o=k(e,"value",9),r=k(e,"state",9),s=k(e,"validationErrors",9),a=k(e,"searchResults",9),c=k(e,"selection",9),l=k(e,"context",9),I=k(e,"onDragSelectionStart",9),C=wr("jsoneditor:JSONNode"),d=X(void 0,!0),B=void 0,E=X(void 0,!0),Q=X(void 0,!0),u=X(void 0,!0),v=X(void 0,!0),L=X(void 0,!0),x=X(void 0,!0),y=X(void 0,!0);function F(hA){hA.stopPropagation();var eA=z_(hA);l().onExpand(g(Q),!g(u),eA)}function U(){l().onExpand(g(Q),!0)}function T(hA,eA){var RA=Z3(g(Q),Object.keys(o()),hA,eA);return l().onPatch(RA),ri(da(RA[0].path))}function N(hA){l().onDrag(hA)}function K(hA){$n().selecting&&($n($n().selecting=!1),hA.stopPropagation()),l().onDragEnd(),document.removeEventListener("mousemove",N,!0),document.removeEventListener("mouseup",K)}function H(){var hA;return((hA=l().findElement([]))===null||hA===void 0||(hA=hA.getBoundingClientRect())===null||hA===void 0?void 0:hA.top)||0}function j(hA,eA){var RA=H()-hA.initialContentTop;return eA.clientY-hA.initialClientY-RA}function IA(hA){if(!l().readOnly&&c()){var eA=pi(je(c()));if(Ei(g(Q),eA)){var RA=function(w,D){var O=[];function Z(G){var Y=g(Q).concat(G),AA=l().findElement(Y);AA!==void 0&&O.push({path:Y,height:AA.clientHeight})}if(Array.isArray(o())){var q=l().getJson();if(q===void 0)return;var CA=P0(q,w),kA=Y1(q,w),KA=parseInt(ri(CA),10),Ie=parseInt(ri(kA),10),GA=D.find(G=>KA>=G.start&&Ie<=G.end);if(!GA)return;var{start:oe,end:M}=GA;ssA(oe,Math.min(o().length,M),G=>Z(String(G)))}else Object.keys(o()).forEach(Z);return O}(c(),g(L)||PE);if(C("dragSelectionStart",{selection:c(),items:RA}),RA){var oA=l().getJson();if(oA!==void 0){var ne=P0(oA,c()),h=RA.findIndex(w=>Ei(w.path,ne)),{offset:f}=HN({json:oA,selection:l().getSelection(),deltaY:0,items:RA});b(E,{initialTarget:hA.target,initialClientY:hA.clientY,initialContentTop:H(),selectionStartIndex:h,selectionItemsCount:z1(oA,c()).length,items:RA,offset:f,didMoveItems:!1}),$n($n().dragging=!0),document.addEventListener("mousemove",lA,!0),document.addEventListener("mouseup",uA)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else I()(hA)}}function lA(hA){if(g(E)){var eA=l().getJson();if(eA===void 0)return;var RA=j(g(E),hA),{offset:oA}=HN({json:eA,selection:l().getSelection(),deltaY:RA,items:g(E).items});oA!==g(E).offset&&(C("drag selection",oA,RA),b(E,Be(Be({},g(E)),{},{offset:oA,didMoveItems:!0})))}}function uA(hA){if(g(E)){var eA=l().getJson();if(eA===void 0)return;var RA=j(g(E),hA),{operations:oA,updatedSelection:ne}=HN({json:eA,selection:l().getSelection(),deltaY:RA,items:g(E).items});if(oA)l().onPatch(oA,(w,D)=>({state:D,selection:ne??c()}));else if(hA.target===g(E).initialTarget&&!g(E).didMoveItems){var h=kN(hA.target),f=fsA(hA.target);f&&l().onSelect(ArA(h,f))}b(E,void 0),$n($n().dragging=!1),document.removeEventListener("mousemove",lA,!0),document.removeEventListener("mouseup",uA)}}function p(hA){hA.shiftKey||(hA.stopPropagation(),hA.preventDefault(),l().onSelect(i2(g(Q))))}function V(hA){hA.shiftKey||(hA.stopPropagation(),hA.preventDefault(),l().onSelect(W0(g(Q))))}function cA(hA){l().onSelect(i2(g(Q))),l().onContextMenu(hA)}function aA(hA){l().onSelect(W0(g(Q))),l().onContextMenu(hA)}fA(()=>W(n()),()=>{b(Q,da(n()))}),fA(()=>W(n()),()=>{b(A,encodeURIComponent(n()))}),fA(()=>W(r()),()=>{b(u,!!UC(r())&&r().expanded)}),fA(()=>(W(o()),W(r())),()=>{b(v,Z0(o(),r(),[]))}),fA(()=>W(r()),()=>{b(L,cs(r())?r().visibleSections:void 0)}),fA(()=>W(s()),()=>{var hA;b(x,(hA=s())===null||hA===void 0?void 0:hA.validationError)}),fA(()=>(W(l()),W(c()),g(Q)),()=>{b(y,N3(l().getJson(),c(),g(Q)))}),fA(()=>g(Q),()=>{b(i,g(Q).length===0)}),nn(),Rt(!0);var jA,VA,ce=YKA(),EA=$(ce),sA=hA=>{var eA=wKA(),RA=Bt(eA),oA=$(RA),ne=$(oA),h=$(ne),f=yA=>{Si(yA,{data:k0})},w=yA=>{Si(yA,{data:qB})};MA(h,yA=>{g(u)?yA(f):yA(w,!1)});var D=gA(ne,2);xo(D,e,"identifier",{},null);var O=gA(D,2),Z=yA=>{iA(yA,IKA())};MA(O,yA=>{g(i)||yA(Z)});var q=gA(O,2),CA=$(q),kA=$(CA),KA=yA=>{var DA=CKA();ZD(gA(Bt(DA),2),{children:(We,be)=>{var qA=_r();Ee(()=>{var It;return Et(qA,"".concat((It=o().length)!==null&&It!==void 0?It:"",` + `).concat(o().length===1?"item":"items"))}),iA(We,qA)},$$slots:{default:!0}}),iA(yA,DA)},Ie=yA=>{var DA=dKA();ZD(gA(Bt(DA),2),{onclick:U,children:(We,be)=>{var qA=_r();Ee(()=>{var It;return Et(qA,"".concat((It=o().length)!==null&&It!==void 0?It:"",` + `).concat(o().length===1?"item":"items"))}),iA(We,qA)},$$slots:{default:!0}}),iA(yA,DA)};MA(kA,yA=>{g(u)?yA(KA):yA(Ie,!1)});var GA=gA(q,2),oe=yA=>{var DA=BKA();R1($(DA),{get root(){return g(i)},selected:!0,get onContextMenu(){return l().onContextMenu}}),iA(yA,DA)};MA(GA,yA=>{!l().readOnly&&g(y)&&c()&&(dn(c())||Ao(c()))&&!Ma(c())&&Ei(je(c()),g(Q))&&yA(oe)});var M=gA(oA,2),G=yA=>{VE(yA,{get validationError(){return g(x)},onExpand:U})};MA(M,yA=>{!g(x)||g(u)&&g(x).isChildError||yA(G)});var Y=gA(M,2),AA=yA=>{var DA=EKA();re("click",DA,p),iA(yA,DA)},dA=yA=>{var DA=hKA();re("click",DA,V),iA(yA,DA)};MA(Y,yA=>{g(u)?yA(AA):yA(dA,!1)});var WA=gA(RA,2),Qe=yA=>{var DA=pKA(),We=Bt(DA),be=$(We),qA=Hi=>{var Ci,Zi,Qi=QKA();en(Qi,"title",RN);var Ft=$(Qi),Tt=PA(()=>g(y)&&as(c()));R1(Ft,{insert:!0,get selected(){return g(Tt)},onContextMenu:cA}),Ee(Ht=>{Ci=xt(Qi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Ci,Ht),Zi=vl(Qi,"",Zi,{"--level":g(Q).length+1})},[()=>({"jse-hovered":g(d)===Q3,"jse-selected":g(y)&&as(c())})],PA),iA(Hi,Qi)};MA(be,Hi=>{!l().readOnly&&(g(d)===Q3||g(y)&&as(c()))&&Hi(qA)}),Fo(gA(be,2),1,()=>g(L)||PE,Zo,(Hi,Ci,Zi)=>{var Qi=fKA(),Ft=Bt(Qi);Fo(Ft,1,()=>function(zi,ui,Ye){var Ai=ui.start,ei=Math.min(ui.end,zi.length),Oi=i5(Ai,ei);return Ye&&Ye.offset!==0?NoA(Oi,Ye.selectionStartIndex,Ye.selectionItemsCount,Ye.offset).map((Yn,Dn)=>({index:Yn,gutterIndex:Dn})):Oi.map(Yn=>({index:Yn,gutterIndex:Yn}))}(o(),g(Ci),g(E)),zi=>zi.index,(zi,ui)=>{var Ye=po(),Ai=PA(()=>cs(s())?s().items[g(ui).index]:void 0),ei=PA(()=>erA(l().getJson(),c(),g(Q).concat(String(g(ui).index)))),Oi=Bt(Ye),Yn=PA(()=>eS(n(),g(ui).index)),Dn=PA(()=>cs(r())?r().items[g(ui).index]:void 0),Ho=PA(()=>cs(a())?a().items[g(ui).index]:void 0);p_(Oi,{get value(){return o()[g(ui).index]},get pointer(){return g(Yn)},get state(){return g(Dn)},get validationErrors(){return g(Ai)},get searchResults(){return g(Ho)},get selection(){return g(ei)},get context(){return l()},onDragSelectionStart:IA,$$slots:{identifier:(Sn,io)=>{var Wo=uKA(),No=$(Wo),Jn=$(No);Ee(()=>Et(Jn,g(ui).gutterIndex)),iA(Sn,Wo)}}}),iA(zi,Ye)});var Tt=gA(Ft,2),Ht=zi=>{var ui=PA(()=>g(L)||PE);oKA(zi,{get visibleSections(){return g(ui)},sectionIndex:Zi,get total(){return o().length},get path(){return g(Q)},get onExpandSection(){return l().onExpandSection},get selection(){return c()},get context(){return l()}})};MA(Tt,zi=>{g(Ci).end{var Ci=mKA();re("click",Ci,V),iA(Hi,Ci)};MA(Vi,Hi=>{g(i)||Hi(on)}),iA(yA,DA)};MA(WA,yA=>{g(u)&&yA(Qe)}),re("click",ne,F),iA(hA,eA)},TA=(hA,eA)=>{var RA=ne=>{var h=FKA(),f=Bt(h),w=$(f),D=$(w),O=$(D),Z=qA=>{Si(qA,{data:k0})},q=qA=>{Si(qA,{data:qB})};MA(O,qA=>{g(u)?qA(Z):qA(q,!1)});var CA=gA(D,2);xo(CA,e,"identifier",{},null);var kA=gA(CA,2),KA=qA=>{iA(qA,DKA())};MA(kA,qA=>{g(i)||qA(KA)});var Ie=gA(kA,2),GA=$(Ie),oe=$(GA),M=qA=>{iA(qA,yKA())},G=qA=>{var It=vKA();ZD(gA(Bt(It),2),{onclick:U,children:(Vi,on)=>{var Hi=_r();Ee((Ci,Zi)=>Et(Hi,"".concat(Ci??"",` + `).concat(Zi??"")),[()=>Object.keys(o()).length,()=>Object.keys(o()).length===1?"prop":"props"],PA),iA(Vi,Hi)},$$slots:{default:!0}}),iA(qA,It)};MA(oe,qA=>{g(u)?qA(M):qA(G,!1)});var Y=gA(Ie,2),AA=qA=>{var It=bKA();R1($(It),{get root(){return g(i)},selected:!0,get onContextMenu(){return l().onContextMenu}}),iA(qA,It)};MA(Y,qA=>{!l().readOnly&&g(y)&&c()&&(dn(c())||Ao(c()))&&!Ma(c())&&Ei(je(c()),g(Q))&&qA(AA)});var dA=gA(w,2),WA=qA=>{VE(qA,{get validationError(){return g(x)},onExpand:U})};MA(dA,qA=>{!g(x)||g(u)&&g(x).isChildError||qA(WA)});var Qe=gA(dA,2),yA=qA=>{var It=MKA();re("click",It,p),iA(qA,It)},DA=(qA,It)=>{var Vi=on=>{var Hi=kKA();re("click",Hi,V),iA(on,Hi)};MA(qA,on=>{g(i)||on(Vi)},It)};MA(Qe,qA=>{g(u)?qA(yA):qA(DA,!1)});var We=gA(f,2),be=qA=>{var It=xKA(),Vi=Bt(It),on=$(Vi),Hi=Ft=>{var Tt,Ht,zi=SKA();en(zi,"title",RN);var ui=$(zi),Ye=PA(()=>g(y)&&as(c()));R1(ui,{insert:!0,get selected(){return g(Ye)},onContextMenu:cA}),Ee(Ai=>{Tt=xt(zi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Tt,Ai),Ht=vl(zi,"",Ht,{"--level":g(Q).length+1})},[()=>({"jse-hovered":g(d)===Q3,"jse-selected":g(y)&&as(c())})],PA),iA(Ft,zi)};MA(on,Ft=>{!l().readOnly&&(g(d)===Q3||g(y)&&as(c()))&&Ft(Hi)}),Fo(gA(on,2),1,()=>function(Ft,Tt){var Ht=Object.keys(Ft);return Tt&&Tt.offset!==0?NoA(Ht,Tt.selectionStartIndex,Tt.selectionItemsCount,Tt.offset):Ht}(o(),g(E)),Zo,(Ft,Tt)=>{var Ht=po(),zi=PA(()=>eS(n(),g(Tt))),ui=PA(()=>kl(a())?a().properties[g(Tt)]:void 0),Ye=PA(()=>kl(s())?s().properties[g(Tt)]:void 0),Ai=PA(()=>g(Q).concat(g(Tt))),ei=PA(()=>erA(l().getJson(),c(),g(Ai))),Oi=Bt(Ht),Yn=PA(()=>kl(r())?r().properties[g(Tt)]:void 0);p_(Oi,{get value(){return o()[g(Tt)]},get pointer(){return g(zi)},get state(){return g(Yn)},get validationErrors(){return g(Ye)},get searchResults(){return g(ui)},get selection(){return g(ei)},get context(){return l()},onDragSelectionStart:IA,$$slots:{identifier:(Dn,Ho)=>{var Sn,io=RKA(),Wo=$(io),No=PA(()=>{return Jn=g(ui),(hn=zoA(Jn)?Jn.searchResults.filter(wo=>wo.field===Ml.key):void 0)&&hn.length>0?hn:void 0;var Jn,hn});(function(Jn,hn){st(hn,!1);var wo=X(void 0,!0),se=X(void 0,!0),fi=k(hn,"pointer",9),bA=k(hn,"key",9),fe=k(hn,"selection",9),it=k(hn,"searchResultItems",9),Gt=k(hn,"onUpdateKey",9),Xe=k(hn,"context",9),Ot=X(void 0,!0);function Pi(ii){g(se)||Xe().readOnly||(ii.preventDefault(),Xe().onSelect($_(g(Ot))))}function Jt(ii,Ri){var dt=Gt()(bA(),Xe().normalization.unescapeValue(ii)),zn=pi(g(Ot)).concat(dt);Xe().onSelect(Ri===K1.nextInside?hi(zn):t2(zn)),Ri!==K1.self&&Xe().focus()}function Ki(){Xe().onSelect(t2(g(Ot))),Xe().focus()}fA(()=>W(fi()),()=>{b(Ot,da(fi()))}),fA(()=>(W(fe()),g(Ot)),()=>{b(wo,pr(fe())&&Ei(fe().path,g(Ot)))}),fA(()=>(g(wo),W(fe())),()=>{b(se,g(wo)&&Ma(fe()))}),nn(),Rt(!0);var Ct=aKA(),ti=Bt(Ct),$e=ii=>{var Ri=PA(()=>Xe().normalization.escapeValue(bA())),dt=PA(()=>Ma(fe())?fe().initialValue:void 0);RsA(ii,{get value(){return g(Ri)},get initialValue(){return g(dt)},label:"Edit key",shortText:!0,onChange:Jt,onCancel:Ki,get onFind(){return Xe().onFind}})},Nt=ii=>{var Ri,dt=sKA(),zn=$(dt),QA=Ce=>{var Pt=PA(()=>Xe().normalization.escapeValue(bA()));UsA(Ce,{get text(){return g(Pt)},get searchResultItems(){return it()}})},_A=Ce=>{var Pt=_r();Ee(Li=>Et(Pt,Li),[()=>vy(Xe().normalization.escapeValue(bA()))],PA),iA(Ce,Pt)};MA(zn,Ce=>{it()?Ce(QA):Ce(_A,!1)}),Ee(Ce=>Ri=xt(dt,1,"jse-key svelte-2iqnqn",null,Ri,Ce),[()=>({"jse-empty":bA()===""})],PA),re("dblclick",dt,Pi),iA(ii,dt)};MA(ti,ii=>{!Xe().readOnly&&g(se)?ii($e):ii(Nt,!1)});var Wi=gA(ti,2),Tn=ii=>{R1(ii,{selected:!0,get onContextMenu(){return Xe().onContextMenu}})};MA(Wi,ii=>{Xe().readOnly||!g(wo)||g(se)||ii(Tn)}),iA(Jn,Ct),at()})(Wo,{get pointer(){return g(zi)},get key(){return g(Tt)},get selection(){return g(ei)},get searchResultItems(){return g(No)},get context(){return l()},onUpdateKey:T}),Ee(Jn=>Sn=xt(io,1,"jse-key-outer svelte-oawf7x",null,Sn,Jn),[()=>({"jse-selected-key":pr(g(ei))&&Ei(g(ei).path,g(Ai))})],PA),iA(Dn,io)}}}),iA(Ft,Ht)});var Ci=gA(Vi,2),Zi=gA($(Ci),2),Qi=Ft=>{var Tt=LKA();re("click",Tt,V),iA(Ft,Tt)};MA(Zi,Ft=>{g(i)||Ft(Qi)}),iA(qA,It)};MA(We,qA=>{g(u)&&qA(be)}),re("click",D,F),iA(ne,h)},oA=ne=>{var h=UKA(),f=$(h),w=$(f);xo(w,e,"identifier",{},null);var D=gA(w,2),O=Y=>{iA(Y,NKA())};MA(D,Y=>{g(i)||Y(O)});var Z=gA(D,2),q=$(Z),CA=PA(()=>g(y)?c():void 0),kA=PA(()=>{return Y=a(),(AA=zoA(Y)?Y.searchResults.filter(dA=>dA.field===Ml.value):void 0)&&AA.length>0?AA:void 0;var Y,AA});AaA(q,{get path(){return g(Q)},get value(){return o()},get enforceString(){return g(v)},get selection(){return g(CA)},get searchResultItems(){return g(kA)},get context(){return l()}});var KA=gA(Z,2),Ie=Y=>{var AA=_KA();R1($(AA),{get root(){return g(i)},selected:!0,get onContextMenu(){return l().onContextMenu}}),iA(Y,AA)};MA(KA,Y=>{!l().readOnly&&g(y)&&c()&&(dn(c())||Ao(c()))&&!Ma(c())&&Ei(je(c()),g(Q))&&Y(Ie)});var GA=gA(f,2),oe=Y=>{VE(Y,{get validationError(){return g(x)},onExpand:U})};MA(GA,Y=>{g(x)&&Y(oe)});var M=gA(GA,2),G=Y=>{var AA=GKA();re("click",AA,V),iA(Y,AA)};MA(M,Y=>{g(i)||Y(G)}),iA(ne,h)};MA(hA,ne=>{tn(o())?ne(RA):ne(oA,!1)},eA)};MA(EA,hA=>{Array.isArray(o())?hA(sA):hA(TA,!1)});var Ke=gA(EA,2),Re=hA=>{var eA,RA=KKA();en(RA,"title",RN);var oA=$(RA),ne=PA(()=>g(y)&&Yc(c()));R1(oA,{insert:!0,get selected(){return g(ne)},onContextMenu:aA}),Ee(h=>eA=xt(RA,1,"jse-insert-area jse-after svelte-oawf7x",null,eA,h),[()=>({"jse-hovered":g(d)===LN,"jse-selected":g(y)&&Yc(c())})],PA),iA(hA,RA)};MA(Ke,hA=>{!l().readOnly&&(g(d)===LN||g(y)&&Yc(c()))&&hA(Re)}),Ee((hA,eA)=>{jA=xt(ce,1,hA,"svelte-oawf7x",jA,eA),en(ce,"data-path",g(A)),en(ce,"aria-selected",g(y)),VA=vl(ce,"",VA,{"--level":g(Q).length})},[()=>T1(lh("jse-json-node",{"jse-expanded":g(u)},l().onClassName(g(Q),o()))),()=>({"jse-root":g(i),"jse-selected":g(y)&&Ao(c()),"jse-selected-value":g(y)&&dn(c()),"jse-readonly":l().readOnly,"jse-hovered":g(d)===KoA})],PA),re("mousedown",ce,function(hA){if((hA.buttons===1||hA.buttons===2)&&!((eA=hA.target).nodeName==="DIV"&&eA.contentEditable==="true"||hA.buttons===1&&QsA(hA.target,"BUTTON"))){var eA;hA.stopPropagation(),hA.preventDefault(),l().focus(),document.addEventListener("mousemove",N,!0),document.addEventListener("mouseup",K);var RA=kN(hA.target),oA=l().getJson(),ne=l().getDocumentState();if(!c()||RA===wn.after||RA===wn.inside||c().type!==RA&&c().type!==wn.multi||!N3(oA,c(),g(Q)))if($n($n().selecting=!0),$n($n().selectionAnchor=g(Q)),$n($n().selectionAnchorType=RA),$n($n().selectionFocus=g(Q)),hA.shiftKey){var h=l().getSelection();h&&l().onSelect(ys(SC(h),g(Q)))}else if(RA===wn.multi)if(g(i)&&hA.target.hasAttribute("data-path")){var f=ri(vsA(o(),ne));l().onSelect(C_(f))}else l().onSelect(ys(g(Q),g(Q)));else oA!==void 0&&l().onSelect(ArA(RA,g(Q)));else hA.button===0&&I()(hA)}}),re("mousemove",ce,function(hA){if($n().selecting){hA.preventDefault(),hA.stopPropagation(),$n().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var eA=kN(hA.target);Ei(g(Q),$n().selectionFocus)&&eA===$n().selectionAnchorType||($n($n().selectionFocus=g(Q)),$n($n().selectionAnchorType=eA),l().onSelect(ys($n().selectionAnchor||$n().selectionFocus,$n().selectionFocus)))}}),re("mouseover",ce,function(hA){$n().selecting||$n().dragging||(hA.stopPropagation(),F1(hA.target,"data-type","selectable-value")?b(d,KoA):F1(hA.target,"data-type","selectable-key")?b(d,void 0):F1(hA.target,"data-type","insert-selection-area-inside")?b(d,Q3):F1(hA.target,"data-type","insert-selection-area-after")&&b(d,LN),clearTimeout(B))}),re("mouseout",ce,function(hA){hA.stopPropagation(),B=window.setTimeout(()=>b(d,void 0))}),iA(t,ce),at()}var JKA={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},TKA={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},ErA={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},zKA={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function HKA(t,e){t.stopPropagation(),e.onCreateObject()}function OKA(t,e){t.stopPropagation(),e.onCreateArray()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-welcome.svelte-1eamlhk { + flex: 1; + overflow: auto; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + display: flex; + flex-direction: column; + align-items: center; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-welcome.svelte-1eamlhk:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-welcome.svelte-1eamlhk .jse-space.jse-before:where(.svelte-1eamlhk) { + flex: 1; +} +.jse-welcome.svelte-1eamlhk .jse-space.jse-after:where(.svelte-1eamlhk) { + flex: 2; +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) { + display: flex; + flex-direction: column; + max-width: 300px; + margin: 2em var(--jse-padding, 10px); + gap: var(--jse-padding, 10px); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) .jse-welcome-info:where(.svelte-1eamlhk) { + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +}`);var PKA=(t,e)=>e.onClick(),jKA=pA('
    You can paste clipboard data using Ctrl+V, or use the following options:
    ',1),qKA=pA('
    Empty document
    ');function w_(t,e){var A=typeof t=="string"?t.toLowerCase():t,i=typeof e=="string"?e.toLowerCase():e;return(0,mrA.default)(A,i)}function eaA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=Fe(t,e);if(ao(n)){if(A===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(I,C){var d={boolean:0,number:1,string:2,undefined:4},B=3;return function(E,Q){var u=Fe(E,I),v=Fe(Q,I);if(typeof u!=typeof v){var L,x,y=(L=d[typeof u])!==null&&L!==void 0?L:B,F=(x=d[typeof v])!==null&&x!==void 0?x:B;return y>F?C:yv?C:u1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=Fe(o,r),c=Object.keys(a).slice();c.sort((I,C)=>s*w_(I,C));var l={};return c.forEach(I=>l[I]=a[I]),[{op:"replace",path:nt(r),value:l}]}(t,e,i);throw new Error("Cannot sort: no array or object")}H3(["click"]);vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-dropdown.svelte-2nnd2m { + position: absolute; + top: 100%; + left: 0; + z-index: 3; + background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); + color: var(--jse-navigation-bar-dropdown-color, #656565); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + display: flex; + flex-direction: column; + max-height: 300px; + overflow: auto; + min-width: 80px; +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m) { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + border: none; + background: transparent; + color: inherit; + cursor: pointer; + outline: none; + text-align: left; + white-space: nowrap; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)) 36px; +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):focus, .jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):hover { + background: var(--jse-navigation-bar-background-highlight, #e5e5e5); +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item.jse-selected:where(.svelte-2nnd2m) { + background: var(--jse-navigation-bar-dropdown-color, #656565); + color: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); +}`);var VKA=pA(''),ZKA=pA(''),WKA=pA('
    ');function XKA(t,e){st(e,!1);var A=k(e,"items",9),i=k(e,"selectedItem",9),n=k(e,"onSelect",9);Rt(!0);var o=WKA(),r=$(o);Fo(r,1,()=>asA(A(),100),c=>c,(c,l)=>{var I,C=VKA(),d=$(C);Ee((B,E,Q)=>{I=xt(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,I,B),en(C,"title",E),Et(d,Q)},[()=>({"jse-selected":g(l)===i()}),()=>g(l).toString(),()=>S3(g(l).toString(),30)],PA),re("click",C,z0(()=>n()(g(l)))),iA(c,C)});var s=gA(r,2),a=c=>{var l=ZKA();en(l,"title","Limited to 100 items"),iA(c,l)};MA(s,c=>{A().length>100&&c(a)}),iA(t,o),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-item.svelte-752ro1 { + position: relative; + display: flex; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1) { + font-family: inherit; + font-size: inherit; + padding: calc(0.5 * var(--jse-padding, 10px)) 2px; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + outline: none; + min-width: 2em; + white-space: nowrap; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):focus, .jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):hover { + background: var(--jse-panel-button-background-highlight, #e0e0e0); + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow:where(.svelte-752ro1) { + padding: 2px var(--jse-padding, 10px) 0; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow.jse-open:where(.svelte-752ro1) { + background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); + color: var(--jse-navigation-bar-dropdown-color, #656565); +} +.jse-navigation-bar-item.svelte-752ro1:last-child { + padding-right: var(--jse-padding, 10px); +}`);var $KA=pA(''),AYA=pA('
    ');function hrA(t,e){st(e,!1);var A,i=X(void 0,!0),n=X(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=H1("absolute-popup"),s=k(e,"path",9),a=k(e,"index",9),c=k(e,"onSelect",9),l=k(e,"getItems",9),I=X(void 0,!0),C=X(!1,!0);function d(L){r(A),c()(g(i).concat(L))}fA(()=>(W(s()),W(a())),()=>{b(i,s().slice(0,a()))}),fA(()=>(W(s()),W(a())),()=>{b(n,s()[a()])}),nn(),Rt(!0);var B,E=AYA(),Q=$(E);Si($(Q),{data:FS});var u=gA(Q,2),v=L=>{var x=$KA(),y=$(x);Ee(()=>Et(y,g(n))),re("click",x,()=>d(g(n))),iA(L,x)};MA(u,L=>{g(n)!==void 0&&L(v)}),to(E,L=>b(I,L),()=>g(I)),Ee(L=>B=xt(Q,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,B,L),[()=>({"jse-open":g(C)})],PA),re("click",Q,function(){if(g(I)){b(C,!0);var L={items:l()(g(i)),selectedItem:g(n),onSelect:d};A=o(XKA,L,{anchor:g(I),closeOnOuterClick:!0,onClose:()=>{b(C,!1)}})}}),iA(t,E),at()}function oG(t){var e,A;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((e=(A=document).queryCommandSupported)!==null&&e!==void 0&&e.call(A,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-path-editor.svelte-zc2wx7 { + flex: 1; + display: flex; + border: var(--jse-edit-outline, 2px solid #656565); + background: var(--jse-background-color, #fff); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { + flex: 1; + font-family: inherit; + font-size: inherit; + padding: 0 5px 1px; + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); + border: none; + outline: none; +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button:where(.svelte-zc2wx7) { + border: none; + background: var(--jse-background-color, #fff); + cursor: pointer; + font-family: inherit; + font-size: 80%; + color: inherit; +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-copy.copied:where(.svelte-zc2wx7) { + color: var(--message-success-background, #9ac45d); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-validation-error:where(.svelte-zc2wx7) { + color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.error.svelte-zc2wx7 { + border-color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.error.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { + color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 .jse-copied-text:where(.svelte-zc2wx7) { + background: var(--message-success-background, #9ac45d); + color: var(--jse-message-success-color, #fff); + position: relative; + margin: 2px; + padding: 0 5px; + border-radius: 3px; +}`);var eYA=pA(''),tYA=pA('
    Copied!
    '),iYA=pA('
    ');function nYA(t,e){st(e,!1);var A=X(),i=H1("absolute-popup"),n=k(e,"path",8),o=k(e,"pathParser",8),r=k(e,"onChange",8),s=k(e,"onClose",8),a=k(e,"onError",8),c=k(e,"pathExists",8),l=X(),I=X(),C=X(!1),d=void 0,B=X(!1);function E(){g(l).focus()}function Q(K){try{var H=o().parse(K);return function(j){if(!c()(j))throw new Error("Path does not exist in current document")}(H),{path:H,error:void 0}}catch(j){return{path:void 0,error:j}}}ls(()=>{E()}),Tc(()=>{clearTimeout(d)}),fA(()=>(W(o()),W(n())),()=>{b(I,o().stringify(n()))}),fA(()=>(g(C),g(I)),()=>{b(A,g(C)?Q(g(I)).error:void 0)}),nn(),Rt();var u,v=iYA(),L=$(v);to(L,K=>b(l,K),()=>g(l));var x=gA(L,2),y=K=>{var H=eYA();Si($(H),{data:r1}),bs(H,(j,IA)=>eh?.(j,IA),()=>Be({text:String(g(A)||"")},i)),iA(K,H)};MA(x,K=>{g(A)&&K(y)});var F=gA(x,2),U=K=>{iA(K,tYA())};MA(F,K=>{g(B)&&K(U)});var T,N=gA(F,2);Si($(N),{data:S0}),Ee((K,H)=>{u=xt(v,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,u,K),GC(L,g(I)),T=xt(N,1,"jse-navigation-bar-copy svelte-zc2wx7",null,T,H)},[()=>({error:g(A)}),()=>({copied:g(B)})],PA),re("keydown",L,z0(function(K){var H=A2(K);if(H==="Escape"&&(K.preventDefault(),s()()),H==="Enter"){K.preventDefault(),b(C,!0);var j=Q(g(I));j.path!==void 0?r()(j.path):a()(j.error)}})),re("input",L,function(K){b(I,K.currentTarget.value)}),re("click",N,function(){oG(g(I)),b(B,!0),d=window.setTimeout(()=>b(B,!1),1e3),E()}),iA(t,v),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar.svelte-xs03gj { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-button-color, inherit); + padding: 0; + margin: 0; + display: flex; + overflow: auto; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + color: var(--jse-panel-color-readonly, #b2b2b2); + background: transparent; + border: none; + display: flex; + cursor: pointer; + outline: none; + align-items: center; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.flex:where(.svelte-xs03gj) { + flex: 1; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):focus, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):hover, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.editing:where(.svelte-xs03gj) { + background: var(--jse-panel-button-background-highlight, #e0e0e0); + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + transition: color 0.2s ease-in, background 0.2s ease-in; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) .jse-navigation-bar-space:where(.svelte-xs03gj) { + flex: 1; + text-align: left; +}`);var oYA=pA(" ",1),rYA=pA('
    ');function sYA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=wr("jsoneditor:NavigationBar"),o=k(e,"json",9),r=k(e,"selection",9),s=k(e,"onSelect",9),a=k(e,"onError",9),c=k(e,"pathParser",9),l=X(void 0,!0),I=X(!1,!0);function C(H){n("get items for path",H);var j=Fe(o(),H);if(Array.isArray(j))return i5(0,j.length).map(String);if(tn(j)){var IA=Object.keys(j).slice(0);return IA.sort(w_),IA}return[]}function d(H){return Qs(o(),H)}function B(H){n("select path",JSON.stringify(H)),s()(ys(H,H))}function E(){b(I,!1)}function Q(H){E(),B(H)}fA(()=>(W(r()),je),()=>{b(A,r()?je(r()):[])}),fA(()=>(W(o()),g(A)),()=>{b(i,zo(Fe(o(),g(A))))}),fA(()=>g(A),()=>{g(A),setTimeout(()=>{if(g(l)&&g(l).scrollTo){var H=g(l).scrollWidth-g(l).clientWidth;H>0&&(n("scrollTo ",H),g(l).scrollTo({left:H,behavior:"smooth"}))}})}),nn(),Rt(!0);var u=rYA(),v=$(u),L=H=>{var j=oYA(),IA=Bt(j);Fo(IA,1,()=>g(A),Zo,(p,V,cA)=>{hrA(p,{getItems:C,get path(){return g(A)},index:cA,onSelect:B})});var lA=gA(IA,2),uA=p=>{hrA(p,{getItems:C,get path(){return g(A)},get index(){return g(A).length},onSelect:B})};MA(lA,p=>{g(i)&&p(uA)}),iA(H,j)},x=H=>{nYA(H,{get path(){return g(A)},onClose:E,onChange:Q,get onError(){return a()},pathExists:d,get pathParser(){return c()}})};MA(v,H=>{g(I)?H(x,!1):H(L)});var y,F=gA(v,2),U=$(F),T=$(U),N=gA(U,2),K=PA(()=>g(I)?LW:pW);Si(N,{get data(){return g(K)}}),to(u,H=>b(l,H),()=>g(l)),Ee((H,j)=>{y=xt(F,1,"jse-navigation-bar-edit svelte-xs03gj",null,y,H),en(F,"title",g(I)?"Cancel editing the selected path":"Edit the selected path"),Et(T,j)},[()=>({flex:!g(I),editing:g(I)}),()=>zo(o())||g(I)?"\xA0":"Navigation bar"],PA),re("click",F,function(){b(I,!g(I))}),iA(t,u),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-search-box.svelte-1mxl2uo { + border: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-radius: 3px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + display: inline-block; + width: 400px; + max-width: 100%; + overflow: auto; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) { + display: flex; + align-items: stretch; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo), +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { + font-family: inherit; + font-size: inherit; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { + display: block; + text-align: center; + border: none; + padding: 0 5px; + margin: 0; + cursor: pointer; + color: var(--jse-panel-button-color, inherit); + background: var(--jse-panel-button-background, transparent); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo):hover { + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { + color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: 3px; + background: var(--jse-input-background, var(--jse-background-color, #fff)); + height: 28px; + padding: 0 5px; + margin: 0; + flex: 1; + width: 0; + min-width: 50px; + outline: none; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-replace-toggle:where(.svelte-1mxl2uo) { + padding: var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)); + min-width: 20px; + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + flex-direction: column; + padding: calc(0.5 * var(--jse-padding, 10px)); + gap: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + align-items: center; + position: relative; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-icon:where(.svelte-1mxl2uo) { + color: inherit; + cursor: inherit; + background: inherit; + width: 32px; + text-align: center; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) label.jse-search-input-label:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count:where(.svelte-1mxl2uo) { + color: inherit; + font-size: 80%; + visibility: hidden; + padding: 0 5px; + min-width: 36px; + text-align: center; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count.jse-visible:where(.svelte-1mxl2uo) { + visibility: visible; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + padding-left: 32px; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { + width: auto; +}`);var aYA=pA(''),cYA=pA('
    '),lYA=pA('');function taA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=X(void 0,!0),o=wr("jsoneditor:SearchBox"),r=k(e,"json",9),s=k(e,"documentState",9),a=k(e,"parser",9),c=k(e,"showSearch",9),l=k(e,"showReplace",13),I=k(e,"readOnly",9),C=k(e,"columns",9),d=k(e,"onSearch",9),B=k(e,"onFocus",9),E=k(e,"onPatch",9),Q=k(e,"onClose",9),u=X("",!0),v="",L=X("",!0),x=X(!1,!0),y=X(void 0,!0),F=PB(function(h){return TA.apply(this,arguments)},300),U=PB(function(h){return Ke.apply(this,arguments)},300);function T(){l(!l()&&!I())}function N(h){h.stopPropagation();var f=A2(h);f==="Enter"&&(h.preventDefault(),g(u)!==v?F.flush():cA()),f==="Shift+Enter"&&(h.preventDefault(),jA()),f==="Ctrl+Enter"&&(h.preventDefault(),l()?IA():cA()),f==="Ctrl+H"&&(h.preventDefault(),T()),f==="Escape"&&(h.preventDefault(),eA())}function K(h){A2(h)==="Enter"&&(h.preventDefault(),h.stopPropagation(),IA())}function H(){return j.apply(this,arguments)}function j(){return(j=yt(function*(){go(),yield F.flush()})).apply(this,arguments)}function IA(){return lA.apply(this,arguments)}function lA(){return(lA=yt(function*(){var h;if(!I()){var f=(h=g(y))===null||h===void 0?void 0:h.activeItem;if(o("handleReplace",{replaceText:g(L),activeItem:f}),g(y)&&f&&r()!==void 0){b(y,Be(Be({},trA(g(y))),{},{activeIndex:g(i)}));var{operations:w,newSelection:D}=NGA(r(),s(),g(L),f,a());E()(w,(O,Z)=>({state:Z,selection:D})),go(),yield U.flush(),yield ce()}}})).apply(this,arguments)}function uA(){return p.apply(this,arguments)}function p(){return(p=yt(function*(){if(!I()){o("handleReplaceAll",{text:g(u),replaceText:g(L)});var{operations:h,newSelection:f}=function(w,D,O,Z,q){for(var CA=irA(O,w,{maxResults:1/0}),kA=[],KA=0;KAG.field!==Y.field?G.field===Ml.key?1:-1:Y.path.length-G.path.length);var oe,M=[];return kA.forEach(G=>{var{field:Y,path:AA,items:dA}=G;if(Y===Ml.key){var WA=pi(AA),Qe=Fe(w,WA),yA=ri(AA),DA=Z3(WA,Object.keys(Qe),yA,orA(yA,Z,dA));M=M.concat(DA),oe=Ah(w,DA)}else{if(Y!==Ml.value)throw new Error("Cannot replace: unknown type of search result field ".concat(Y));var We=Fe(w,AA);if(We===void 0)throw new Error("Cannot replace: path not found ".concat(nt(AA)));var be=typeof We=="string"?We:String(We),qA=Z0(w,D,AA),It=orA(be,Z,dA),Vi=[{op:"replace",path:nt(AA),value:qA?It:ah(It,q)}];M=M.concat(Vi),oe=Ah(w,Vi)}}),{operations:M,newSelection:oe}}(r(),s(),g(u),g(L),a());E()(h,(w,D)=>({state:D,selection:f})),yield ce()}})).apply(this,arguments)}function V(h){h.select()}function cA(){return aA.apply(this,arguments)}function aA(){return(aA=yt(function*(){b(y,g(y)?trA(g(y)):void 0),yield ce()})).apply(this,arguments)}function jA(){return VA.apply(this,arguments)}function VA(){return VA=yt(function*(){b(y,g(y)?function(h){var f=h.activeIndex>0?h.activeIndex-1:h.items.length-1,w=h.items[f],D=h.items.map((O,Z)=>Be(Be({},O),{},{active:Z===f}));return Be(Be({},h),{},{items:D,activeItem:w,activeIndex:f})}(g(y)):void 0),yield ce()}),VA.apply(this,arguments)}function ce(){return EA.apply(this,arguments)}function EA(){return(EA=yt(function*(){var h;o("handleFocus",g(y));var f=(h=g(y))===null||h===void 0?void 0:h.activeItem;f&&r()!==void 0&&(yield B()(f.path,f.resultIndex))})).apply(this,arguments)}function sA(){return sA=yt(function*(h){yield Re(h,g(u),r())}),sA.apply(this,arguments)}function TA(){return TA=yt(function*(h){yield Re(c(),h,r()),yield ce()}),TA.apply(this,arguments)}function Ke(){return Ke=yt(function*(h){yield Re(c(),g(u),h)}),Ke.apply(this,arguments)}function Re(h,f,w){return hA.apply(this,arguments)}function hA(){return hA=yt(function*(h,f,w){return h?(o("applySearch",{showSearch:h,text:f}),f===""?(o("clearing search result"),g(y)!==void 0&&b(y,void 0),Promise.resolve()):(v=f,b(x,!0),new Promise(D=>{setTimeout(()=>{var O=irA(f,w,{maxResults:SN,columns:C()});b(y,function(Z,q){var CA=q!=null&&q.activeItem?rrA(q.activeItem):void 0,kA=Z.findIndex(GA=>Ei(CA,rrA(GA))),KA=kA!==-1?kA:q?.activeIndex!==void 0&&q?.activeIndex0?0:-1,Ie=Z.map((GA,oe)=>Be(Be({resultIndex:oe},GA),{},{active:oe===KA}));return{items:Ie,activeItem:Ie[KA],activeIndex:KA}}(O,g(y))),b(x,!1),D()})}))):(g(y)&&b(y,void 0),Promise.resolve())}),hA.apply(this,arguments)}function eA(){o("handleClose"),F.cancel(),U.cancel(),Re(!1,g(u),r()),Q()()}fA(()=>g(y),()=>{var h;b(A,((h=g(y))===null||h===void 0||(h=h.items)===null||h===void 0?void 0:h.length)||0)}),fA(()=>g(y),()=>{var h;b(i,((h=g(y))===null||h===void 0?void 0:h.activeIndex)||0)}),fA(()=>(g(A),SN),()=>{b(n,g(A)>=SN?"".concat(999,"+"):String(g(A)))}),fA(()=>(W(d()),g(y)),()=>{d()(g(y))}),fA(()=>W(c()),()=>{(function(h){sA.apply(this,arguments)})(c())}),fA(()=>g(u),()=>{F(g(u))}),fA(()=>W(r()),()=>{U(r())}),nn(),Rt(!0);var RA=po(),oA=Bt(RA),ne=h=>{var f=lYA(),w=$(f),D=$(w),O=yA=>{var DA=aYA(),We=$(DA),be=PA(()=>l()?k0:qB);Si(We,{get data(){return g(be)}}),re("click",DA,T),iA(yA,DA)};MA(D,yA=>{I()||yA(O)});var Z=$(gA(D,2)),q=$(Z),CA=$(q),kA=yA=>{Si(yA,{data:uW,spin:!0})},KA=yA=>{Si(yA,{data:Zu})};MA(CA,yA=>{g(x)?yA(kA):yA(KA,!1)});var Ie=gA(q,2),GA=$(Ie);Nr(()=>iy(GA,()=>g(u),yA=>b(u,yA))),bs(GA,yA=>V?.(yA)),Nr(()=>re("paste",GA,H));var oe,M=gA(Ie,2),G=$(M),Y=gA(M,2);Si($(Y),{data:SW});var AA=gA(Y,2);Si($(AA),{data:wW});var dA=gA(AA,2);Si($(dA),{data:Wu});var WA=gA(Z,2),Qe=yA=>{var DA=cYA(),We=$(DA),be=gA(We,2),qA=gA(be,2);iy(We,()=>g(L),It=>b(L,It)),re("keydown",We,K),re("click",be,IA),re("click",qA,uA),iA(yA,DA)};MA(WA,yA=>{l()&&!I()&&yA(Qe)}),Ee(yA=>{var DA;oe=xt(M,1,"jse-search-count svelte-1mxl2uo",null,oe,yA),Et(G,"".concat(g(i)!==-1&&g(i)({"jse-visible":g(u)!==""})],PA),re("click",Y,cA),re("click",AA,jA),re("click",dA,eA),re("keydown",w,N),iA(h,f)};MA(oA,h=>{c()&&h(ne)}),iA(t,RA),at()}var K3=Symbol("path");function gYA(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{tn(o)?iaA(o,i,e):i[K3]=!0});var n=[];return K3 in i&&n.push([]),naA(i,[],n,e),n}function iaA(t,e,A){for(var i in t){var n=t[i],o=e[i]||(e[i]={});tn(n)&&A?iaA(n,o,A):o[K3]===void 0&&(o[K3]=!0)}}function naA(t,e,A,i){for(var n in t){var o=e.concat(n),r=t[n];r&&r[K3]===!0&&A.push(o),Mo(r)&&i&&naA(r,o,A,i)}}function IYA(t,e,A,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=ao(A)?A.length:0,a=function(v,L){var x=Object.values(v);if(sn(x))return L;var y=(F,U)=>F+U;return x.reduce(y)/x.length}(i,n),c=t-r,l=e+2*r,I=v=>i[v]||n,C=0,d=o;d0&&(d-=I(--C));for(var B=C,E=0;Ee2(i,o))}}function yC(t,e){var{rowIndex:A,columnIndex:i}=t;return[String(A),...e[i]]}function CYA(t,e){var[A,i]=wS(t,r=>G_(r.path[0])),n=mS(A,dYA),o=pS(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(l,I){var C=Uc(l.path,I);return C.columnIndex!==-1?C.columnIndex:-1}(a,e);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function ON(t,e){if(e&&e.length!==0)return e.length===1?e[0]:{path:t,message:"Multiple validation issues: "+e.map(A=>Dl(A.path)+" "+A.message).join(", "),severity:bl.warning}}function dYA(t){return parseInt(t.path[0],10)}function BYA(t,e,A){var i=e.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=da(r.path),{rowIndex:c,columnIndex:l}=Uc(a,s),I=s.findIndex(C=>Ei(C,o.path));if(c!==-1&&l!==-1&&l!==I)return!1}return!0}(t,n,A));return i?void 0:t}var vs=wr("jsoneditor:actions");function oaA(t){return D_.apply(this,arguments)}function D_(){return D_=yt(function*(t){var{json:e,selection:A,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&e!==void 0&&A&&zE(A)){var s=ksA(e,A,i,o);if(s!==void 0){vs("cut",{selection:A,clipboard:s,indentation:i}),yield oG(s);var{operations:a,newSelection:c}=NsA(e,A);r(a,(l,I)=>({state:I,selection:c}))}}}),D_.apply(this,arguments)}function raA(t){return y_.apply(this,arguments)}function y_(){return y_=yt(function*(t){var{json:e,selection:A,indentation:i,parser:n}=t,o=ksA(e,A,i,n);o!==void 0&&(vs("copy",{clipboard:o,indentation:i}),yield oG(o))}),y_.apply(this,arguments)}function saA(t){var{clipboardText:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{l(e)}catch{c(e,C=>{vs("repaired pasted text: ",C),l(C)})}function l(I){if(A!==void 0){var C=i||hi([]),d=FsA(A,C,I,o),B=function(E,Q,u){var v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:DGA;if(E.length>v)return!1;var L=/\n/.test(E);if(!L)return!1;var x=Q.some(F=>F.op==="replace"&&Array.isArray(F.value)),y=Q.filter(F=>F.op==="add").length>1;if(!x&&!y)return!1;try{return P3(E,u.parse),!1}catch{return!0}}(e,d,o);vs("paste",{pastedText:I,operations:d,ensureSelection:C,pasteMultilineText:B}),r(d,(E,Q)=>{var u=Q;return d.filter(v=>(Vk(v)||Q8(v))&&zo(v.value)).forEach(v=>{var L=Ea(A,v.path);u=KC(E,u,L)}),{state:u}}),B&&a(I)}else vs("paste text",{pastedText:I}),s(e,(E,Q)=>{if(E)return{state:KC(E,Q,[])}})}}function aaA(t){var{json:e,text:A,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=e!==void 0&&(pr(i)||dn(i))?ys(i.path,i.path):i;if(sn(je(i)))vs("remove root",{selection:i}),r&&r({text:"",json:void 0},e!==void 0?{text:void 0,json:e}:{text:A||"",json:e},{contentErrors:void 0,patchResult:void 0});else if(e!==void 0){var{operations:c,newSelection:l}=NsA(e,a);vs("remove",{operations:c,selection:i,newSelection:l}),s(c,(I,C)=>({state:C,selection:n?i:l}))}}}function Ey(t){var{insertType:e,selectInside:A,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var l=function(E,Q,u){if(u==="object")return{};if(u==="array")return[];if(u==="structure"&&E!==void 0){var v=Q?bsA(Q):[],L=Fe(E,v);if(Array.isArray(L)&&!sn(L)){var x=Mc(L);return zo(x)?hS(x,y=>Array.isArray(y)?[]:tn(y)?void 0:""):""}}return""}(n,o,e);if(n!==void 0){var I=s.stringify(l),C=FsA(n,o,I,s);vs("onInsert",{insertType:e,operations:C,newValue:l,data:I});var d=ri(C.filter(E=>E.op==="add"||E.op==="replace"));a(C,(E,Q,u)=>{if(d){var v=Ea(E,d.path);if(zo(l))return{state:pl(E,Q,v,X_),selection:A?i2(v):u};if(l===""){var L=sn(v)?void 0:Fe(E,pi(v));return{state:pl(E,Q,v,VD),selection:tn(L)?$_(v,i):sy(v,i)}}}}),vs("after patch")}else{vs("onInsert",{insertType:e,newValue:l});var B=[];c(l,(E,Q)=>({state:KC(E,Q,B),selection:zo(l)?i2(B):sy(B)}))}}}function caA(t){return v_.apply(this,arguments)}function v_(){return v_=yt(function*(t){var{char:e,selectInside:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(pr(n)?c(Be(Be({},n),{},{edit:!0,initialValue:e})):e==="{"?Ey({insertType:"object",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):e==="["?Ey({insertType:"array",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):dn(n)&&i!==void 0?zo(Fe(i,n.path))||c(Be(Be({},n),{},{edit:!0,initialValue:e})):(vs("onInsertValueWithCharacter",{char:e}),yield function(l){return b_.apply(this,arguments)}({char:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),v_.apply(this,arguments)}function b_(){return b_=yt(function*(t){var{char:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||Ey({insertType:"value",selectInside:!1,initialValue:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),b_.apply(this,arguments)}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-json-preview.svelte-1vjn89h { + flex: 1; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); + overflow: auto; + white-space: pre-wrap; + padding: 2px; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +}`);var EYA=pA('
    ');function laA(t,e){st(e,!1);var A=X(),i=X(),n=k(e,"text",8),o=k(e,"json",8),r=k(e,"indentation",8),s=k(e,"parser",8);fA(()=>(W(o()),W(n())),()=>{b(A,o()!==void 0?{json:o()}:{text:n()||""})}),fA(()=>(g(A),W(r()),W(s()),l_),()=>{b(i,S3(s_(g(A),r(),s()),l_))}),nn(),Rt();var a=EYA(),c=$(a);Ee(()=>Et(c,g(i))),iA(t,a),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-context-menu-button.svelte-1idfykj { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: inherit; +} +button.jse-context-menu-button.svelte-1idfykj:hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +button.jse-context-menu-button.svelte-1idfykj:focus { + background: var(--jse-context-menu-background-highlight, #7a7a7a); + z-index: 1; +} +button.jse-context-menu-button.svelte-1idfykj:disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +button.jse-context-menu-button.left.svelte-1idfykj { + text-align: left; +} +button.jse-context-menu-button.svelte-1idfykj svg { + width: 16px; +}`);var hYA=pA('');function PN(t,e){st(e,!1);var A=k(e,"item",8),i=k(e,"className",8,void 0),n=k(e,"onRequestClose",8);Rt();var o=hYA(),r=$(o),s=l=>{Si(l,{get data(){return A().icon}})};MA(r,l=>{A().icon&&l(s)});var a=gA(r,2),c=l=>{var I=_r();Ee(()=>Et(I,A().text)),iA(l,I)};MA(a,l=>{A().text&&l(c)}),Ee(l=>{xt(o,1,l,"svelte-1idfykj"),en(o,"title",A().title),o.disabled=A().disabled||!1},[()=>T1(lh("jse-context-menu-button",i(),A().className))],PA),re("click",o,l=>{n()(),A().onClick(l)}),iA(t,o),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-dropdown-button.svelte-11rxb2m { + flex: 1; + line-height: normal; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + position: relative; + padding: 0; + display: flex; +} +.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) { + margin: 0; + padding: 0; +} +.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) li:where(.svelte-11rxb2m) { + margin: 0; + padding: 0; + list-style-type: none; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 2em; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + border-radius: 0; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown.jse-visible:where(.svelte-11rxb2m) { + background: var(--jse-context-menu-background, #656565); +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):focus { + z-index: 1; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) { + display: none; + position: absolute; + top: 100%; + left: 0; + z-index: 1; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items.jse-visible:where(.svelte-11rxb2m) { + display: block; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 100%; + text-align: left; + padding: var(--jse-padding, 10px); + margin: 0; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +}`);var QYA=pA('
  • '),uYA=pA('
      ');vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-context-menu-button.svelte-1idfykj { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: inherit; +} +button.jse-context-menu-button.svelte-1idfykj:hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +button.jse-context-menu-button.svelte-1idfykj:focus { + background: var(--jse-context-menu-background-highlight, #7a7a7a); + z-index: 1; +} +button.jse-context-menu-button.svelte-1idfykj:disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +button.jse-context-menu-button.left.svelte-1idfykj { + text-align: left; +} +button.jse-context-menu-button.svelte-1idfykj svg { + width: 16px; +}`);var fYA=pA('');function jN(t,e){st(e,!1);var A=X(),i=k(e,"item",8),n=k(e,"className",8,void 0),o=k(e,"onRequestClose",8);fA(()=>(W(i()),W(o())),()=>{b(A,i().items.map(r=>Be(Be({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),nn(),Rt(),function(r,s){st(s,!1);var a=X(void 0,!0),c=k(s,"items",25,()=>[]),l=k(s,"title",9,void 0),I=k(s,"width",9,"120px"),C=X(!1,!0);function d(){b(C,!1)}function B(y){A2(y)==="Escape"&&(y.preventDefault(),b(C,!1))}ls(()=>{document.addEventListener("click",d),document.addEventListener("keydown",B)}),Tc(()=>{document.removeEventListener("click",d),document.removeEventListener("keydown",B)}),fA(()=>W(c()),()=>{b(a,c().every(y=>y.disabled===!0))}),nn(),Rt(!0);var E=uYA(),Q=$(E);xo(Q,s,"defaultItem",{},null);var u,v=gA(Q,2);Si($(v),{data:k0});var L,x=gA(v,2);Fo($(x),5,c,Zo,(y,F)=>{var U=QYA(),T=$(U),N=$(T),K=j=>{Si(j,{get data(){return g(F).icon}})};MA(N,j=>{g(F).icon&&j(K)});var H=gA(N);Ee(()=>{var j;en(T,"title",g(F).title),T.disabled=g(F).disabled,xt(T,1,T1(g(F).className),"svelte-11rxb2m"),Et(H," ".concat((j=g(F).text)!==null&&j!==void 0?j:""))}),re("click",T,j=>g(F).onClick(j)),iA(y,U)}),Ee((y,F)=>{var U;en(E,"title",l()),u=xt(v,1,"jse-open-dropdown svelte-11rxb2m",null,u,y),v.disabled=g(a),L=xt(x,1,"jse-dropdown-items svelte-11rxb2m",null,L,F),vl(x,"width: ".concat((U=I())!==null&&U!==void 0?U:"",";"))},[()=>({"jse-visible":g(C)}),()=>({"jse-visible":g(C)})],PA),re("click",v,function(){var y=g(C);setTimeout(()=>b(C,!y))}),re("click",E,d),iA(r,E),at()}(t,{get width(){return i().width},get items(){return g(A)},$$slots:{defaultItem:(r,s)=>{var a=fYA(),c=$(a),l=C=>{Si(C,{get data(){return i().main.icon}})};MA(c,C=>{i().main.icon&&C(l)});var I=gA(c);Ee(C=>{var d;xt(a,1,C,"svelte-1idfykj"),en(a,"title",i().main.title),a.disabled=i().main.disabled||!1,Et(I," ".concat((d=i().main.text)!==null&&d!==void 0?d:""))},[()=>T1(lh("jse-context-menu-button",n(),i().main.className))],PA),re("click",a,C=>{o()(),i().main.onClick(C)}),iA(r,a)}}}),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-contextmenu.svelte-12z7bz1 { + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) { + display: flex; + flex-direction: row; + align-items: flex-start; + justify-content: stretch; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-label:where(.svelte-12z7bz1) { + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: var(--jse-context-menu-color-disabled, #9d9d9d); + line-height: normal; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) { + flex: 1; + background: var(--jse-context-menu-tip-background, rgba(255, 255, 255, 0.2)); + color: var(--context-menu-tip-color, inherit); + margin: calc(0.5 * var(--jse-padding, 10px)); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + font-size: 80%; + line-height: 1.3em; + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--jse-padding, 10px); + border-radius: 3px; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) div.jse-tip-icon:where(.svelte-12z7bz1) { + padding-top: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1) { + flex: 1; + display: flex; + flex-direction: column; + align-items: stretch; +} +.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1):not(:last-child) { + border-right: 1px solid var(--jse-context-menu-separator-color, #7a7a7a); +} +.jse-contextmenu.svelte-12z7bz1 .jse-separator:where(.svelte-12z7bz1) { + width: 100%; + height: 1px; + background: var(--jse-context-menu-separator-color, #7a7a7a); +}`);var mYA=pA('
      '),pYA=pA('
      '),wYA=pA('
      '),DYA=pA('
      '),yYA=pA('
      '),vYA=pA('
      '),bYA=pA('
      '),MYA=pA('');function gaA(t,e){st(e,!1);var A=k(e,"items",9),i=k(e,"onRequestClose",9),n=k(e,"tip",9),o=X(void 0,!0);ls(()=>{var C=Array.from(g(o).querySelectorAll("button")).find(d=>!d.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}Rt(!0);var a=MYA(),c=$(a);Fo(c,1,A,Zo,(C,d)=>{var B=po(),E=Bt(B),Q=v=>{PN(v,{get item(){return g(d)},get onRequestClose(){return i()}})},u=(v,L)=>{var x=F=>{jN(F,{get item(){return g(d)},get onRequestClose(){return i()}})},y=(F,U)=>{var T=K=>{var H=yYA();Fo(H,5,()=>g(d).items,Zo,(j,IA)=>{var lA=po(),uA=Bt(lA),p=cA=>{PN(cA,{get item(){return g(IA)},get onRequestClose(){return i()}})},V=(cA,aA)=>{var jA=ce=>{jN(ce,{get item(){return g(IA)},get onRequestClose(){return i()}})},VA=(ce,EA)=>{var sA=Ke=>{var Re=wYA();Fo(Re,5,()=>g(IA).items,Zo,(hA,eA)=>{var RA=po(),oA=Bt(RA),ne=f=>{PN(f,{className:"left",get item(){return g(eA)},get onRequestClose(){return i()}})},h=(f,w)=>{var D=Z=>{jN(Z,{className:"left",get item(){return g(eA)},get onRequestClose(){return i()}})},O=(Z,q)=>{var CA=KA=>{iA(KA,mYA())},kA=(KA,Ie)=>{var GA=M=>{var G=pYA(),Y=$(G);Ee(()=>Et(Y,g(eA).text)),iA(M,G)},oe=M=>{var G=_r();Ee(Y=>Et(G,Y),[()=>s(g(eA))],PA),iA(M,G)};MA(KA,M=>{yGA(g(eA))?M(GA):M(oe,!1)},Ie)};MA(Z,KA=>{qD(g(eA))?KA(CA):KA(kA,!1)},q)};MA(f,Z=>{FN(g(eA))?Z(D):Z(O,!1)},w)};MA(oA,f=>{y3(g(eA))?f(ne):f(h,!1)}),iA(hA,RA)}),iA(Ke,Re)},TA=(Ke,Re)=>{var hA=RA=>{iA(RA,DYA())},eA=RA=>{var oA=_r();Ee(ne=>Et(oA,ne),[()=>s(g(IA))],PA),iA(RA,oA)};MA(Ke,RA=>{qD(g(IA))?RA(hA):RA(eA,!1)},Re)};MA(ce,Ke=>{bGA(g(IA))?Ke(sA):Ke(TA,!1)},EA)};MA(cA,ce=>{FN(g(IA))?ce(jA):ce(VA,!1)},aA)};MA(uA,cA=>{y3(g(IA))?cA(p):cA(V,!1)}),iA(j,lA)}),iA(K,H)},N=(K,H)=>{var j=lA=>{iA(lA,vYA())},IA=lA=>{var uA=_r();Ee(p=>Et(uA,p),[()=>s(g(d))],PA),iA(lA,uA)};MA(K,lA=>{qD(g(d))?lA(j):lA(IA,!1)},H)};MA(F,K=>{vGA(g(d))?K(T):K(N,!1)},U)};MA(v,F=>{FN(g(d))?F(x):F(y,!1)},L)};MA(E,v=>{y3(g(d))?v(Q):v(u,!1)}),iA(C,B)});var l=gA(c,2),I=C=>{var d=bYA(),B=$(d),E=$(B);Si($(E),{data:EW});var Q=$(gA(E,2));Ee(()=>Et(Q,n())),iA(C,d)};MA(l,C=>{n()&&C(I)}),to(a,C=>b(o,C),()=>g(o)),re("keydown",a,function(C){var d=A2(C),B=r[d];if(B&&C.target){C.preventDefault();var E=iGA({allElements:Array.from(g(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:B,hasPrio:Q=>Q.getAttribute("data-type")!=="jse-open-dropdown"});E&&E.focus()}}),iA(t,a),at()}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-value.jse-string.svelte-6ttr41 { + color: var(--jse-value-color-string, #008000); +} +.jse-value.jse-object.svelte-6ttr41, .jse-value.jse-array.svelte-6ttr41 { + min-width: 16px; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-value.jse-number.svelte-6ttr41 { + color: var(--jse-value-color-number, #ee422e); +} +.jse-value.jse-boolean.svelte-6ttr41 { + color: var(--jse-value-color-boolean, #ff8c00); +} +.jse-value.jse-null.svelte-6ttr41 { + color: var(--jse-value-color-null, #004ed0); +} +.jse-value.jse-invalid.svelte-6ttr41 { + color: var(--jse-text-color, #4d4d4d); +} +.jse-value.jse-url.svelte-6ttr41 { + color: var(--jse-value-color-url, #008000); + text-decoration: underline; +} + +.jse-enum-value.svelte-6ttr41 { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + border: none; + padding: 0; + font-family: inherit; + font-size: inherit; + cursor: pointer; + outline: none; +} +.jse-enum-value.jse-selected.svelte-6ttr41 { + background: var(--jse-selection-background-color, #d3d3d3); + color: inherit; +} +.jse-enum-value.jse-value.svelte-6ttr41:focus { + color: var(--jse-text-color, #4d4d4d); +}`);var zpe=pA(""),Hpe=pA("");var zD,HD;function OD(t,e){return zD||(HD=new WeakMap,zD=new ResizeObserver(A=>{for(var i of A){var n=HD.get(i.target);n&&n(i.target)}})),HD.set(t,e),zD.observe(t),{destroy:()=>{HD.delete(t),zD.unobserve(t)}}}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tree-mode.svelte-vrx1dr { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: var(--jse-background-color, #fff); + min-width: 0; + min-height: 0; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-text-color, #4d4d4d); + line-height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-tree-mode.svelte-vrx1dr .jse-hidden-input-label:where(.svelte-vrx1dr) .jse-hidden-input:where(.svelte-vrx1dr) { + position: fixed; + top: -10px; + left: -10px; + width: 1px; + height: 1px; + padding: 0; + border: 0; + outline: none; +} +.jse-tree-mode.no-main-menu.svelte-vrx1dr { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-search-box-container:where(.svelte-vrx1dr) { + position: relative; + height: 0; + top: var(--jse-padding, 10px); + margin-right: calc(var(--jse-padding, 10px) + 20px); + margin-left: var(--jse-padding, 10px); + text-align: right; + z-index: 3; +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) { + flex: 1; + overflow: auto; + position: relative; + padding: 2px; + display: flex; + flex-direction: column; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading-space:where(.svelte-vrx1dr) { + flex: 1; +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading:where(.svelte-vrx1dr) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-search-box-background:where(.svelte-vrx1dr) { + border: 50px solid var(--jse-modal-background, #f5f5f5); + margin: -2px; + margin-bottom: 2px; + display: inline-block; +}`);var kYA=pA(" ",1),SYA=pA('
      '),RYA=pA('
      ',1),LYA=pA(' ',1),xYA=pA('
      loading...
      '),FYA=pA('
      ',1);function M_(t,e){st(e,!1);var A=X(void 0,!0),i=wr("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=n1(),r=n1(),{openAbsolutePopup:s,closeAbsolutePopup:a}=H1("absolute-popup"),c=X(void 0,!0),l=X(void 0,!0),I=X(void 0,!0),C=!1,d=ZsA(),B=k(e,"readOnly",9),E=k(e,"externalContent",9),Q=k(e,"externalSelection",9),u=k(e,"history",9),v=k(e,"truncateTextSize",9),L=k(e,"mainMenuBar",9),x=k(e,"navigationBar",9),y=k(e,"escapeControlCharacters",9),F=k(e,"escapeUnicodeCharacters",9),U=k(e,"parser",9),T=k(e,"parseMemoizeOne",9),N=k(e,"validator",9),K=k(e,"validationParser",9),H=k(e,"pathParser",9),j=k(e,"indentation",9),IA=k(e,"onError",9),lA=k(e,"onChange",9),uA=k(e,"onChangeMode",9),p=k(e,"onSelect",9),V=k(e,"onUndo",9),cA=k(e,"onRedo",9),aA=k(e,"onRenderValue",9),jA=k(e,"onRenderMenu",9),VA=k(e,"onRenderContextMenu",9),ce=k(e,"onClassName",9),EA=k(e,"onFocus",9),sA=k(e,"onBlur",9),TA=k(e,"onSortModal",9),Ke=k(e,"onTransformModal",9),Re=k(e,"onJSONEditorModal",9),hA=!1,eA=X(!1,!0),RA=X(void 0,!0);iG({onMount:ls,onDestroy:Tc,getWindow:()=>j3(g(I)),hasFocus:()=>hA&&document.hasFocus()||J_(g(I)),onFocus:()=>{C=!0,EA()&&EA()()},onBlur:()=>{C=!1,sA()&&sA()()}});var oA=X(void 0,!0),ne=X(void 0,!0),h=void 0,f=!1,w=X(I_({json:g(oA)}),!0),D=X(F3(Q())?Q():void 0,!0);function O(J){b(D,J)}ls(()=>{if(g(D)){var J=je(g(D));b(w,pl(g(oA),g(w),J,VD)),setTimeout(()=>ii(J))}});var Z,q=X(void 0,!0),CA=X(void 0,!0),kA=X(void 0,!0),KA=X(void 0,!0),Ie=X(!1,!0),GA=X(!1,!0);function oe(J){b(KA,(Z=J)?GsA(g(oA),Z.items):void 0)}function M(J,rA){return G.apply(this,arguments)}function G(){return(G=yt(function*(J,rA){b(w,pl(g(oA),g(w),J,VD));var JA=Tn(rA);yield $e(J,{element:JA})})).apply(this,arguments)}function Y(){b(Ie,!1),b(GA,!1),Xi()}function AA(J){i("select validation error",J),b(D,hi(J.path)),$e(J.path)}function dA(J){var rA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ZoA;i("expand"),b(w,pl(g(oA),g(w),J,rA))}function WA(J,rA){b(w,PoA(g(oA),g(w),J,rA)),g(D)&&function(JA,Se){return e2(je(JA),Se)&&(je(JA).length>Se.length||as(JA))}(g(D),J)&&b(D,void 0)}var Qe=X(!1,!0),yA=X([],!0),DA=X(void 0,!0),We=VB(WsA);function be(J,rA,JA,Se){OE(()=>{var pe;try{pe=We(J,rA,JA,Se)}catch(me){pe=[{path:[],message:"Failed to validate: "+me.message,severity:bl.warning}]}Ei(pe,g(yA))||(i("validationErrors changed:",pe),b(yA,pe),b(DA,function(me,ft){var mt;return ft.forEach(ci=>{mt=BrA(me,mt,ci.path,(rn,yi)=>Be(Be({},yi),{},{validationError:ci}))}),ft.forEach(ci=>{for(var rn=ci.path;rn.length>0;)rn=pi(rn),mt=BrA(me,mt,rn,(yi,Rn)=>Rn.validationError?Rn:Be(Be({},Rn),{},{validationError:{isChildError:!0,path:rn,message:"Contains invalid data",severity:bl.warning}}))}),mt}(J,g(yA))))},pe=>i("validationErrors updated in ".concat(pe," ms")))}function qA(){return i("validate"),h?{parseError:h,isRepairable:!1}:(be(g(oA),N(),U(),K()),sn(g(yA))?void 0:{validationErrors:g(yA)})}function It(){return g(oA)}function Vi(){return g(w)}function on(){return g(D)}function Hi(J){i("applyExternalContent",{updatedContent:J}),k3(J)?function(rA){if(rA!==void 0){var JA=!Ei(g(oA),rA);if(i("update external json",{isChanged:JA,currentlyText:g(oA)===void 0}),!!JA){var Se={documentState:g(w),selection:g(D),json:g(oA),text:g(ne),textIsRepaired:g(Qe)};b(oA,rA),b(w,cc(rA,g(w))),Ci(g(oA)),b(ne,void 0),b(Qe,!1),h=void 0,Zi(g(oA)),Qi(Se)}}}(J.json):M3(J)&&function(rA){if(!(rA===void 0||k3(E()))){var JA=rA!==g(ne);if(i("update external text",{isChanged:JA}),!!JA){var Se={documentState:g(w),selection:g(D),json:g(oA),text:g(ne),textIsRepaired:g(Qe)};try{b(oA,T()(rA)),b(w,cc(g(oA),g(w))),Ci(g(oA)),b(ne,rA),b(Qe,!1),h=void 0}catch(pe){try{b(oA,T()(yc(rA))),b(w,cc(g(oA),g(w))),Ci(g(oA)),b(ne,rA),b(Qe,!0),h=void 0,Zi(g(oA))}catch{b(oA,void 0),b(w,void 0),b(ne,E().text),b(Qe,!1),h=g(ne)!==void 0&&g(ne)!==""?XE(g(ne),pe.message||String(pe)):void 0}}Zi(g(oA)),Qi(Se)}}}(J.text)}function Ci(J){f||(f=!0,b(w,KC(J,g(w),[])))}function Zi(J){g(D)&&(Qs(J,SC(g(D)))&&Qs(J,je(g(D)))||(i("clearing selection: path does not exist anymore",g(D)),b(D,GE(J,g(w)))))}function Qi(J){if(J.json!==void 0||J.text!==void 0){var rA=g(oA)!==void 0&&J.json!==void 0;u().add({type:"tree",undo:{patch:rA?[{op:"replace",path:"",value:J.json}]:void 0,json:J.json,text:J.text,documentState:J.documentState,textIsRepaired:J.textIsRepaired,selection:Fg(J.selection),sortedColumn:void 0},redo:{patch:rA?[{op:"replace",path:"",value:g(oA)}]:void 0,json:g(oA),text:g(ne),documentState:g(w),textIsRepaired:g(Qe),selection:Fg(g(D)),sortedColumn:void 0}})}}function Ft(J,rA){var JA;if(i("patch",J,rA),g(oA)===void 0)throw new Error("Cannot apply patch: no JSON");var Se=g(oA),pe={json:void 0,text:g(ne),documentState:g(w),selection:Fg(g(D)),textIsRepaired:g(Qe),sortedColumn:void 0},me=_sA(g(oA),J),ft=DsA(g(oA),g(w),J),mt=(JA=Ah(g(oA),J))!==null&&JA!==void 0?JA:g(D),ci=typeof rA=="function"?rA(ft.json,ft.documentState,mt):void 0;return b(oA,ci?.json!==void 0?ci.json:ft.json),b(w,ci?.state!==void 0?ci.state:ft.documentState),b(D,ci?.selection!==void 0?ci.selection:mt),b(ne,void 0),b(Qe,!1),b(CA,void 0),b(kA,void 0),h=void 0,Zi(g(oA)),u().add({type:"tree",undo:Be({patch:me},pe),redo:{patch:J,json:void 0,text:g(ne),documentState:g(w),selection:Fg(g(D)),sortedColumn:void 0,textIsRepaired:g(Qe)}}),{json:g(oA),previousJson:Se,undo:me,redo:J}}function Tt(){!B()&&g(D)&&b(D,$_(je(g(D))))}function Ht(){if(!B()&&g(D)){var J=je(g(D)),rA=Fe(g(oA),J);zo(rA)?function(JA,Se){i("openJSONEditorModal",{path:JA,value:Se}),hA=!0,Re()({content:{json:Se},path:JA,onPatch:g(yn).onPatch,onClose:()=>{hA=!1,setTimeout(Xi)}})}(J,rA):b(D,sy(J))}}function zi(){if(!B()&&dn(g(D))){var J=je(g(D)),rA=nt(J),JA=Fe(g(oA),J),Se=!Z0(g(oA),g(w),J),pe=Se?String(JA):ah(String(JA),U());i("handleToggleEnforceString",{enforceString:Se,value:JA,updatedValue:pe}),dt([{op:"replace",path:rA,value:pe}],(me,ft)=>({state:by(g(oA),ft,J,{type:"value",enforceString:Se})}))}}function ui(){return g(Qe)&&g(oA)!==void 0&&zn(g(oA)),g(oA)!==void 0?{json:g(oA)}:{text:g(ne)||""}}function Ye(){return Ai.apply(this,arguments)}function Ai(){return Ai=yt(function*(){var J=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield oaA({json:g(oA),selection:g(D),indentation:J?j():void 0,readOnly:B(),parser:U(),onPatch:dt})}),Ai.apply(this,arguments)}function ei(){return Oi.apply(this,arguments)}function Oi(){return Oi=yt(function*(){var J=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];g(oA)!==void 0&&(yield raA({json:g(oA),selection:g(D),indentation:J?j():void 0,parser:U()}))}),Oi.apply(this,arguments)}function Yn(J){var rA;J.preventDefault(),Sn((rA=J.clipboardData)===null||rA===void 0?void 0:rA.getData("text/plain"))}function Dn(){return Ho.apply(this,arguments)}function Ho(){return(Ho=yt(function*(){try{Sn(yield navigator.clipboard.readText())}catch(J){console.error(J),b(eA,!0)}})).apply(this,arguments)}function Sn(J){J!==void 0&&saA({clipboardText:J,json:g(oA),selection:g(D),readOnly:B(),parser:U(),onPatch:dt,onChangeText:QA,onPasteMultilineText:Co,openRepairModal:io})}function io(J,rA){b(RA,{text:J,onParse:JA=>P3(JA,Se=>O3(Se,U())),onRepair:lsA,onApply:rA,onClose:Xi})}function Wo(){aaA({json:g(oA),text:g(ne),selection:g(D),keepSelection:!1,readOnly:B(),onChange:lA(),onPatch:dt})}function No(){!B()&&g(oA)!==void 0&&g(D)&&zE&&!sn(je(g(D)))&&(i("duplicate",{selection:g(D)}),dt(LsA(g(oA),z1(g(oA),g(D)))))}function Jn(){B()||!g(D)||!Ao(g(D))&&!dn(g(D))||sn(je(g(D)))||(i("extract",{selection:g(D)}),dt(xsA(g(oA),g(D)),(J,rA)=>{if(zo(J))return{state:_N(J,rA,[])}}))}function hn(J){Ey({insertType:J,selectInside:!0,initialValue:void 0,json:g(oA),selection:g(D),readOnly:B(),parser:U(),onPatch:dt,onReplaceJson:zn})}function wo(J){pr(g(D))&&b(D,hi(g(D).path)),g(D)||b(D,GE(g(oA),g(w))),hn(J)}function se(J){if(!B()&&g(D))if(KD(g(D)))try{var rA=SC(g(D)),JA=Fe(g(oA),rA),Se=function(me,ft,mt){if(ft==="array"){if(Array.isArray(me))return me;if(tn(me))return FoA(me);if(typeof me=="string")try{var ci=mt.parse(me);if(Array.isArray(ci))return ci;if(tn(ci))return FoA(ci)}catch{return[me]}return[me]}if(ft==="object"){if(Array.isArray(me))return xoA(me);if(tn(me))return me;if(typeof me=="string")try{var rn=mt.parse(me);if(tn(rn))return rn;if(Array.isArray(rn))return xoA(rn)}catch{return{value:me}}return{value:me}}if(ft==="value")return zo(me)?mt.stringify(me):me;throw new Error("Cannot convert ".concat(U_(me,mt)," to ").concat(ft))}(JA,J,U());if(Se===JA)return;var pe=[{op:"replace",path:nt(rA),value:Se}];i("handleConvert",{selection:g(D),path:rA,type:J,operations:pe}),dt(pe,(me,ft)=>({state:g(D)?KC(me,ft,je(g(D))):g(w)}))}catch(me){IA()(me)}else IA()(new Error("Cannot convert current selection to ".concat(J)))}function fi(){if(g(D)){var J=WoA(g(oA),g(w),g(D),!1),rA=pi(je(g(D)));J&&!sn(je(J))&&Ei(rA,pi(je(J)))?b(D,W0(je(J))):b(D,i2(rA)),i("insert before",{selection:g(D),selectionBefore:J,parentPath:rA}),go(),un()}}function bA(){if(g(D)){var J=Y1(g(oA),g(D));i("insert after",J),b(D,W0(J)),go(),un()}}function fe(J){return it.apply(this,arguments)}function it(){return(it=yt(function*(J){yield caA({char:J,selectInside:!0,json:g(oA),selection:g(D),readOnly:B(),parser:U(),onPatch:dt,onReplaceJson:zn,onSelect:O})})).apply(this,arguments)}function Gt(){if(!B()&&u().canUndo){var J=u().undo();if(oy(J)){var rA={json:g(oA),text:g(ne)};b(oA,J.undo.patch?Ba(g(oA),J.undo.patch):J.undo.json),b(w,J.undo.documentState),b(D,J.undo.selection),b(ne,J.undo.text),b(Qe,J.undo.textIsRepaired),h=void 0,i("undo",{item:J,json:g(oA),documentState:g(w),selection:g(D)}),Ri(rA,J.undo.patch&&J.redo.patch?{json:g(oA),previousJson:rA.json,redo:J.undo.patch,undo:J.redo.patch}:void 0),Xi(),g(D)&&$e(je(g(D)),{scrollToWhenVisible:!1})}else V()(J)}}function Xe(){if(!B()&&u().canRedo){var J=u().redo();if(oy(J)){var rA={json:g(oA),text:g(ne)};b(oA,J.redo.patch?Ba(g(oA),J.redo.patch):J.redo.json),b(w,J.redo.documentState),b(D,J.redo.selection),b(ne,J.redo.text),b(Qe,J.redo.textIsRepaired),h=void 0,i("redo",{item:J,json:g(oA),documentState:g(w),selection:g(D)}),Ri(rA,J.undo.patch&&J.redo.patch?{json:g(oA),previousJson:rA.json,redo:J.redo.patch,undo:J.undo.patch}:void 0),Xi(),g(D)&&$e(je(g(D)),{scrollToWhenVisible:!1})}else cA()(J)}}function Ot(J){var rA;B()||g(oA)===void 0||(hA=!0,TA()({id:o,json:g(oA),rootPath:J,onSort:(rA=yt(function*(JA){var{operations:Se}=JA;i("onSort",J,Se),dt(Se,(pe,me)=>({state:_N(pe,me,J),selection:hi(J)}))}),function(JA){return rA.apply(this,arguments)}),onClose:()=>{hA=!1,setTimeout(Xi)}}))}function Pi(){g(D)&&Ot($oA(g(oA),g(D)))}function Jt(){Ot([])}function Ki(J){if(g(oA)!==void 0){var{id:rA,onTransform:JA,onClose:Se}=J,pe=J.rootPath||[];hA=!0,Ke()({id:rA||r,json:g(oA),rootPath:pe,onTransform:me=>{JA?JA({operations:me,json:g(oA),transformedJson:Ba(g(oA),me)}):(i("onTransform",pe,me),dt(me,(ft,mt)=>({state:_N(ft,mt,pe),selection:hi(pe)})))},onClose:()=>{hA=!1,setTimeout(Xi),Se&&Se()}})}}function Ct(){g(D)&&Ki({rootPath:$oA(g(oA),g(D))})}function ti(){Ki({rootPath:[]})}function $e(J){return Nt.apply(this,arguments)}function Nt(){return Nt=yt(function*(J){var{scrollToWhenVisible:rA=!0,element:JA}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};b(w,pl(g(oA),g(w),J,VD));var Se=JA??Wi(J);if(i("scrollTo",{path:J,elem:Se,refContents:g(c)}),!Se||!g(c))return Promise.resolve();var pe=g(c).getBoundingClientRect(),me=Se.getBoundingClientRect();if(!rA&&me.bottom>pe.top&&me.top{d(Se,{container:g(c),offset:ft,duration:300,callback:()=>mt()})})}),Nt.apply(this,arguments)}function Wi(J){var rA,JA;return go(),(rA=(JA=g(c))===null||JA===void 0?void 0:JA.querySelector('div[data-path="'.concat(a_(J),'"]')))!==null&&rA!==void 0?rA:void 0}function Tn(J){var rA,JA;return go(),(rA=(JA=g(c))===null||JA===void 0?void 0:JA.querySelector('span[data-search-result-index="'.concat(J,'"]')))!==null&&rA!==void 0?rA:void 0}function ii(J){var rA=Wi(J);if(rA&&g(c)){var JA=g(c).getBoundingClientRect(),Se=rA.getBoundingClientRect(),pe=zo(Fe(g(oA),J))?20:Se.height;Se.topJA.bottom-20&&d(rA,{container:g(c),offset:-(JA.height-pe-20),duration:0})}}function Ri(J,rA){if(J.json!==void 0||J?.text!==void 0){if(g(ne)!==void 0){var JA,Se={text:g(ne),json:void 0};(JA=lA())===null||JA===void 0||JA(Se,J,{contentErrors:qA(),patchResult:rA})}else if(g(oA)!==void 0){var pe,me={text:void 0,json:g(oA)};(pe=lA())===null||pe===void 0||pe(me,J,{contentErrors:qA(),patchResult:rA})}}}function dt(J,rA){i("handlePatch",J,rA);var JA={json:g(oA),text:g(ne)},Se=Ft(J,rA);return Ri(JA,Se),Se}function zn(J,rA){var JA={json:g(oA),text:g(ne)},Se={documentState:g(w),selection:g(D),json:g(oA),text:g(ne),textIsRepaired:g(Qe)},pe=pl(g(oA),cc(J,g(w)),[],w3),me=typeof rA=="function"?rA(J,pe,g(D)):void 0;b(oA,me?.json!==void 0?me.json:J),b(w,me?.state!==void 0?me.state:pe),b(D,me?.selection!==void 0?me.selection:g(D)),b(ne,void 0),b(Qe,!1),h=void 0,Zi(g(oA)),Qi(Se),Ri(JA,void 0)}function QA(J,rA){i("handleChangeText");var JA={json:g(oA),text:g(ne)},Se={documentState:g(w),selection:g(D),json:g(oA),text:g(ne),textIsRepaired:g(Qe)};try{b(oA,T()(J)),b(w,pl(g(oA),cc(g(oA),g(w)),[],w3)),b(ne,void 0),b(Qe,!1),h=void 0}catch(me){try{b(oA,T()(yc(J))),b(w,pl(g(oA),cc(g(oA),g(w)),[],w3)),b(ne,J),b(Qe,!0),h=void 0}catch{b(oA,void 0),b(w,I_({json:g(oA),expand:w3})),b(ne,J),b(Qe,!1),h=g(ne)!==""?XE(g(ne),me.message||String(me)):void 0}}if(typeof rA=="function"){var pe=rA(g(oA),g(w),g(D));b(oA,pe?.json!==void 0?pe.json:g(oA)),b(w,pe?.state!==void 0?pe.state:g(w)),b(D,pe?.selection!==void 0?pe.selection:g(D))}Zi(g(oA)),Qi(Se),Ri(JA,void 0)}function _A(J,rA){var JA=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:J,expanded:rA,recursive:JA}),rA?dA(J,JA?X_:ZoA):WA(J,JA),Xi()}function Ce(){_A([],!0,!0)}function Pt(){_A([],!1,!0)}function Li(J){i("openFind",{findAndReplace:J}),b(Ie,!1),b(GA,!1),go(),b(Ie,!0),b(GA,J)}function ai(J,rA){i("handleExpandSection",J,rA),b(w,function(JA,Se,pe,me){return $E(JA,Se,pe,(ft,mt)=>{if(!cs(mt))return mt;var ci=msA(mt.visibleSections.concat(me));return Be(Be({},mt),{},{visibleSections:ci})})}(g(oA),g(w),J,rA))}function Fn(J){i("pasted json as text",J),b(CA,J)}function Co(J){i("pasted multiline text",{pastedText:J}),b(kA,J)}function Qn(J){var rA,{anchor:JA,left:Se,top:pe,width:me,height:ft,offsetTop:mt,offsetLeft:ci,showTip:rn}=J,yi=function(mn){var{json:Hn,documentState:ji,selection:ht,readOnly:Fi,onEditKey:Qt,onEditValue:At,onToggleEnforceString:Ni,onCut:Oo,onCopy:Dr,onPaste:Eo,onRemove:Po,onDuplicate:Vr,onExtract:o2,onInsertBefore:xa,onInsert:Oc,onConvert:Gl,onInsertAfter:Pc,onSort:Ur,onTransform:Ss}=mn,Fa=Hn!==void 0,jg=!!ht,Na=!!ht&&sn(je(ht)),Do=ht?Fe(Hn,je(ht)):void 0,Go=Array.isArray(Do)?"Edit array":tn(Do)?"Edit object":"Edit value",jo=Fa&&(Ao(ht)||pr(ht)||dn(ht)),qg=ht&&!Na?Fe(Hn,pi(je(ht))):void 0,vh=!Fi&&Fa&&ry(ht)&&!Na&&!Array.isArray(qg),ed=!Fi&&Fa&&ht!==void 0&&ry(ht),bh=ed&&!zo(Do),td=!Fi&&jo,Mh=jo,p7=!Fi&&jg,w7=!Fi&&Fa&&jo&&!Na,D7=!Fi&&Fa&&ht!==void 0&&(Ao(ht)||dn(ht))&&!Na,Ul=jo,V1=Ul?"Convert to:":"Insert:",$o=!Fi&&(as(ht)&&Array.isArray(Do)||Yc(ht)&&Array.isArray(qg)),dc=!Fi&&(Ul?KD(ht)&&!tn(Do):jg),kh=!Fi&&(Ul?KD(ht)&&!Array.isArray(Do):jg),Sh=!Fi&&(Ul?KD(ht)&&zo(Do):jg),Z1=ht!==void 0&&Z0(Hn,ji,je(ht));function Zr(Rh){jo?Rh!=="structure"&&Gl(Rh):Oc(Rh)}return[{type:"row",items:[{type:"button",onClick:()=>Qt(),icon:ZI,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!vh},{type:"dropdown-button",main:{type:"button",onClick:()=>At(),icon:ZI,text:Go,title:"Edit the value (Double-click on the value)",disabled:!ed},width:"11em",items:[{type:"button",icon:ZI,text:Go,title:"Edit the value (Double-click on the value)",onClick:()=>At(),disabled:!ed},{type:"button",icon:Z1?xS:NS,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ni(),disabled:!bh}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>Oo(!0),icon:VI,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!td},width:"10em",items:[{type:"button",icon:VI,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Oo(!0),disabled:!td},{type:"button",icon:VI,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Oo(!1),disabled:!td}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Dr(!0),icon:S0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!Mh},width:"12em",items:[{type:"button",icon:S0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Dr(!0),disabled:!Mh},{type:"button",icon:S0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Dr(!1),disabled:!Mh}]},{type:"button",onClick:()=>Eo(),icon:LS,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!p7}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>Vr(),icon:US,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!w7},{type:"button",onClick:()=>o2(),icon:bW,text:"Extract",title:"Extract selected contents",disabled:!D7},{type:"button",onClick:()=>Ur(),icon:Vu,text:"Sort",title:"Sort array or object contents",disabled:Fi||!jo},{type:"button",onClick:()=>Ss(),icon:Pu,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:Fi||!jo},{type:"button",onClick:()=>Po(),icon:o5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Fi||!jo}]},{type:"column",items:[{type:"label",text:V1},{type:"button",onClick:()=>Zr("structure"),icon:Ul?qu:WI,text:"Structure",title:V1+" structure like the first item in the array",disabled:!$o},{type:"button",onClick:()=>Zr("object"),icon:Ul?qu:WI,text:"Object",title:V1+" object",disabled:!dc},{type:"button",onClick:()=>Zr("array"),icon:Ul?qu:WI,text:"Array",title:V1+" array",disabled:!kh},{type:"button",onClick:()=>Zr("value"),icon:Ul?qu:WI,text:"Value",title:V1+" value",disabled:!Sh}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>xa(),icon:DW,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:Fi||!jo||Na},{type:"button",onClick:()=>Pc(),icon:fW,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:Fi||!jo||Na}]}]}({json:g(oA),documentState:g(w),selection:g(D),readOnly:B(),onEditKey:Tt,onEditValue:Ht,onToggleEnforceString:zi,onCut:Ye,onCopy:ei,onPaste:Dn,onRemove:Wo,onDuplicate:No,onExtract:Jn,onInsertBefore:fi,onInsert:wo,onInsertAfter:bA,onConvert:se,onSort:Pi,onTransform:Ct}),Rn=(rA=VA()(yi))!==null&&rA!==void 0?rA:yi;if(Rn!==!1){var bt={left:Se,top:pe,offsetTop:mt,offsetLeft:ci,width:me,height:ft,anchor:JA,closeOnOuterClick:!0,onClose:()=>{hA=!1,Xi()}};hA=!0;var Bo=s(gaA,{tip:rn?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Rn,onRequestClose:()=>a(Bo)},bt)}}function un(J){if(!Ma(g(D)))if(J&&(J.stopPropagation(),J.preventDefault()),J&&J.type==="contextmenu"&&J.target!==g(l))Qn({left:J.clientX,top:J.clientY,width:O0,height:H0,showTip:!1});else{var rA,JA=(rA=g(c))===null||rA===void 0?void 0:rA.querySelector(".jse-context-menu-pointer.jse-selected");if(JA)Qn({anchor:JA,offsetTop:2,width:O0,height:H0,showTip:!1});else{var Se,pe=(Se=g(c))===null||Se===void 0?void 0:Se.getBoundingClientRect();pe&&Qn({top:pe.top+2,left:pe.left+2,width:O0,height:H0,showTip:!1})}}}function jt(J){Qn({anchor:usA(J.target,"BUTTON"),offsetTop:0,width:O0,height:H0,showTip:!0})}function Nn(){return ut.apply(this,arguments)}function ut(){return(ut=yt(function*(){if(i("apply pasted json",g(CA)),g(CA)){var{onPasteAsJson:J}=g(CA);b(CA,void 0),J(),setTimeout(Xi)}})).apply(this,arguments)}function Xo(){return Oe.apply(this,arguments)}function Oe(){return(Oe=yt(function*(){i("apply pasted multiline text",g(kA)),g(kA)&&(Sn(JSON.stringify(g(kA))),setTimeout(Xi))})).apply(this,arguments)}function ni(){i("clear pasted json"),b(CA,void 0),Xi()}function fn(){i("clear pasted multiline text"),b(kA,void 0),Xi()}function Yi(){uA()(tr.text)}function ir(J){b(D,J),Xi(),$e(je(J))}function Xi(){i("focus"),g(l)&&(g(l).focus(),g(l).select())}function ks(J){return function(rA,JA,Se){var pe=pi(Se),me=[ri(Se)],ft=Fe(rA,pe),mt=ft?NN(ft,JA,me):void 0;return mt?hi(pe.concat(mt)):W0(Se)}(g(oA),g(w),J)}function La(J){g(A)&&g(A).onDrag(J)}function _o(){g(A)&&g(A).onDragEnd()}var yn=X(void 0,!0);fA(()=>g(D),()=>{var J;J=g(D),Ei(J,Q())||(i("onSelect",J),p()(J))}),fA(()=>(W(y()),W(F())),()=>{b(q,K_({escapeControlCharacters:y(),escapeUnicodeCharacters:F()}))}),fA(()=>g(Ie),()=>{(function(J){g(c)&&J&&g(c).scrollTop===0&&(lc(c,g(c).style.overflowAnchor="none"),lc(c,g(c).scrollTop+=p3),setTimeout(()=>{g(c)&&lc(c,g(c).style.overflowAnchor="")}))})(g(Ie))}),fA(()=>W(E()),()=>{Hi(E())}),fA(()=>W(Q()),()=>{(function(J){Ei(g(D),J)||(i("applyExternalSelection",{selection:g(D),externalSelection:J}),F3(J)&&b(D,J))})(Q())}),fA(()=>(g(oA),W(N()),W(U()),W(K())),()=>{be(g(oA),N(),U(),K())}),fA(()=>(g(c),drA),()=>{b(A,g(c)?drA(g(c)):void 0)}),fA(()=>(W(B()),W(v()),W(U()),g(q),W(aA()),W(ce())),()=>{b(yn,{mode:tr.tree,readOnly:B(),truncateTextSize:v(),parser:U(),normalization:g(q),getJson:It,getDocumentState:Vi,getSelection:on,findElement:Wi,findNextInside:ks,focus:Xi,onPatch:dt,onInsert:hn,onExpand:_A,onSelect:O,onFind:Li,onExpandSection:ai,onPasteJson:Fn,onRenderValue:aA(),onContextMenu:Qn,onClassName:ce()||(()=>{}),onDrag:La,onDragEnd:_o})}),fA(()=>g(yn),()=>{i("context changed",g(yn))}),nn(),Rt(!0);var Gr=FYA();re("mousedown",q0,function(J){!ch(J.target,rA=>rA===g(I))&&Ma(g(D))&&(i("click outside the editor, exit edit mode"),b(D,Fg(g(D))),C&&g(l)&&(g(l).focus(),g(l).blur()),i("blur (outside editor)"),g(l)&&g(l).blur())});var z,wA=Bt(Gr),ee=$(wA),Me=J=>{(function(rA,JA){st(JA,!1);var Se=X(void 0,!0),pe=X(void 0,!0),me=X(void 0,!0),ft=k(JA,"json",9),mt=k(JA,"selection",9),ci=k(JA,"readOnly",9),rn=k(JA,"showSearch",13,!1),yi=k(JA,"history",9),Rn=k(JA,"onExpandAll",9),bt=k(JA,"onCollapseAll",9),Bo=k(JA,"onUndo",9),mn=k(JA,"onRedo",9),Hn=k(JA,"onSort",9),ji=k(JA,"onTransform",9),ht=k(JA,"onContextMenu",9),Fi=k(JA,"onCopy",9),Qt=k(JA,"onRenderMenu",9);function At(){rn(!rn())}var Ni=X(void 0,!0),Oo=X(void 0,!0),Dr=X(void 0,!0),Eo=X(void 0,!0);fA(()=>W(ft()),()=>{b(Se,ft()!==void 0)}),fA(()=>(g(Se),W(mt()),dn),()=>{b(pe,g(Se)&&(Ao(mt())||pr(mt())||dn(mt())))}),fA(()=>(W(Rn()),W(ft())),()=>{b(Ni,{type:"button",icon:JKA,title:"Expand all",className:"jse-expand-all",onClick:Rn(),disabled:!zo(ft())})}),fA(()=>(W(bt()),W(ft())),()=>{b(Oo,{type:"button",icon:TKA,title:"Collapse all",className:"jse-collapse-all",onClick:bt(),disabled:!zo(ft())})}),fA(()=>W(ft()),()=>{b(Dr,{type:"button",icon:Zu,title:"Search (Ctrl+F)",className:"jse-search",onClick:At,disabled:ft()===void 0})}),fA(()=>(W(ci()),g(Ni),g(Oo),W(Hn()),W(ft()),W(ji()),g(Dr),W(ht()),W(Bo()),W(yi()),W(mn()),W(Fi()),g(pe)),()=>{b(Eo,ci()?[g(Ni),g(Oo),{type:"separator"},{type:"button",icon:S0,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:Fi(),disabled:!g(pe)},{type:"separator"},g(Dr),{type:"space"}]:[g(Ni),g(Oo),{type:"separator"},{type:"button",icon:Vu,title:"Sort",className:"jse-sort",onClick:Hn(),disabled:ci()||ft()===void 0},{type:"button",icon:Pu,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:ji(),disabled:ci()||ft()===void 0},g(Dr),{type:"button",icon:_S,title:H_,className:"jse-contextmenu",onClick:ht()},{type:"separator"},{type:"button",icon:s5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:Bo(),disabled:!yi().canUndo},{type:"button",icon:r5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:mn(),disabled:!yi().canRedo},{type:"space"}])}),fA(()=>(W(Qt()),g(Eo)),()=>{b(me,Qt()(g(Eo))||g(Eo))}),nn(),Rt(!0),Ly(rA,{get items(){return g(me)}}),at()})(J,{get json(){return g(oA)},get selection(){return g(D)},get readOnly(){return B()},get history(){return u()},onExpandAll:Ce,onCollapseAll:Pt,onUndo:Gt,onRedo:Xe,onSort:Jt,onTransform:ti,onContextMenu:jt,onCopy:ei,get onRenderMenu(){return jA()},get showSearch(){return g(Ie)},set showSearch(rA){b(Ie,rA)},$$legacy:!0})};MA(ee,J=>{L()&&J(Me)});var ke=gA(ee,2),ze=J=>{sYA(J,{get json(){return g(oA)},get selection(){return g(D)},onSelect:ir,get onError(){return IA()},get pathParser(){return H()}})};MA(ke,J=>{x()&&J(ze)});var Pe=gA(ke,2),qe=J=>{var rA=LYA(),JA=Bt(rA),Se=$(JA);Se.readOnly=!0,to(Se,mt=>b(l,mt),()=>g(l));var pe=gA(JA,2),me=mt=>{var ci=po(),rn=Bt(ci),yi=bt=>{(function(Bo,mn){st(mn,!0);var Hn=qKA();Hn.__click=[PKA,mn];var ji=gA($(Hn),2),ht=gA($(ji),2),Fi=Qt=>{var At=jKA(),Ni=gA(Bt(At),2);en(Ni,"title","Create an empty JSON object (press '{')"),Ni.__click=[HKA,mn];var Oo=gA(Ni,2);en(Oo,"title","Create an empty JSON array (press '[')"),Oo.__click=[OKA,mn],iA(Qt,At)};MA(ht,Qt=>{mn.readOnly||Qt(Fi)}),iA(Bo,Hn),at()})(bt,{get readOnly(){return B()},onCreateObject:()=>{Xi(),fe("{")},onCreateArray:()=>{Xi(),fe("[")},onClick:()=>{Xi()}})},Rn=bt=>{var Bo=kYA(),mn=Bt(Bo),Hn=PA(()=>B()?[]:[{icon:ju,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Yi}]);Cc(mn,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return g(Hn)}}),laA(gA(mn,2),{get text(){return g(ne)},get json(){return g(oA)},get indentation(){return j()},get parser(){return U()}}),iA(bt,Bo)};MA(rn,bt=>{g(ne)===""||g(ne)===void 0?bt(yi):bt(Rn,!1)}),iA(mt,ci)},ft=mt=>{var ci=RYA(),rn=Bt(ci);taA($(rn),{get json(){return g(oA)},get documentState(){return g(w)},get parser(){return U()},get showSearch(){return g(Ie)},get showReplace(){return g(GA)},get readOnly(){return B()},columns:void 0,onSearch:oe,onFocus:M,onPatch:dt,onClose:Y});var yi=gA(rn,2);en(yi,"data-jsoneditor-scrollable-contents",!0);var Rn=$(yi),bt=Qt=>{iA(Qt,SYA())};MA(Rn,Qt=>{g(Ie)&&Qt(bt)}),p_(gA(Rn,2),{get value(){return g(oA)},pointer:"",get state(){return g(w)},get validationErrors(){return g(DA)},get searchResults(){return g(KA)},get selection(){return g(D)},get context(){return g(yn)},onDragSelectionStart:Jo}),to(yi,Qt=>b(c,Qt),()=>g(c));var Bo=gA(yi,2),mn=Qt=>{var At=PA(()=>"You pasted a JSON ".concat(Array.isArray(g(CA).contents)?"array":"object"," as text"));Cc(Qt,{type:"info",get message(){return g(At)},actions:[{icon:M0,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:Nn},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:ni}]})};MA(Bo,Qt=>{g(CA)&&Qt(mn)});var Hn=gA(Bo,2),ji=Qt=>{Cc(Qt,{type:"info",message:"Multiline text was pasted as array",actions:[{icon:M0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Xo},{text:"Leave as is",title:"Keep the pasted array",onClick:fn}]})};MA(Hn,Qt=>{g(kA)&&Qt(ji)});var ht=gA(Hn,2),Fi=Qt=>{var At=PA(()=>B()?[]:[{icon:a5,text:"Ok",title:"Accept the repaired document",onClick:ui},{icon:ju,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Yi}]);Cc(Qt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return g(At)},onClose:Xi})};MA(ht,Qt=>{g(Qe)&&Qt(Fi)}),nG(gA(ht,2),{get validationErrors(){return g(yA)},selectError:AA}),iA(mt,ci)};MA(pe,mt=>{g(oA)===void 0?mt(me):mt(ft,!1)}),re("paste",Se,Yn),iA(J,rA)},oi=J=>{iA(J,xYA())};MA(Pe,J=>{n?J(oi,!1):J(qe)}),to(wA,J=>b(I,J),()=>g(I));var xi=gA(wA,2),Di=J=>{XsA(J,{onClose:()=>b(eA,!1)})};MA(xi,J=>{g(eA)&&J(Di)});var cn=gA(xi,2),qr=J=>{$sA(J,U1(()=>g(RA),{onClose:()=>{var rA;(rA=g(RA))===null||rA===void 0||rA.onClose(),b(RA,void 0)}}))};return MA(cn,J=>{g(RA)&&J(qr)}),Ee(J=>z=xt(wA,1,"jse-tree-mode svelte-vrx1dr",null,z,J),[()=>({"no-main-menu":!L()})],PA),re("keydown",wA,function(J){var rA=A2(J),JA=J.shiftKey;if(i("keydown",{combo:rA,key:J.key}),rA==="Ctrl+X"&&(J.preventDefault(),Ye(!0)),rA==="Ctrl+Shift+X"&&(J.preventDefault(),Ye(!1)),rA==="Ctrl+C"&&(J.preventDefault(),ei(!0)),rA==="Ctrl+Shift+C"&&(J.preventDefault(),ei(!1)),rA==="Ctrl+D"&&(J.preventDefault(),No()),rA!=="Delete"&&rA!=="Backspace"||(J.preventDefault(),Wo()),rA==="Insert"&&(J.preventDefault(),hn("structure")),rA==="Ctrl+A"&&(J.preventDefault(),b(D,hi([]))),rA==="Ctrl+Q"&&un(J),rA==="ArrowUp"||rA==="Shift+ArrowUp"){J.preventDefault();var Se=g(D)?WoA(g(oA),g(w),g(D),JA)||g(D):GE(g(oA),g(w));b(D,Se),ii(je(Se))}if(rA==="ArrowDown"||rA==="Shift+ArrowDown"){J.preventDefault();var pe=g(D)?function(yi,Rn,bt){var Bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(bt){var mn=Bo?je(bt):Y1(yi,bt),Hn=zo(Fe(yi,mn))?PoA(yi,Rn,mn,!0):Rn,ji=NN(yi,Rn,mn),ht=NN(yi,Hn,mn);if(Bo)return as(bt)?ji!==void 0?ys(ji,ji):void 0:Yc(bt)?ht!==void 0?ys(ht,ht):void 0:ht!==void 0?ys(SC(bt),ht):void 0;if(Yc(bt))return ht!==void 0?hi(ht):void 0;if(as(bt)||dn(bt))return ji!==void 0?hi(ji):void 0;if(pr(bt)){if(ji===void 0||ji.length===0)return;var Fi=pi(ji),Qt=Fe(yi,Fi);return Array.isArray(Qt)?hi(ji):t2(ji)}return Ao(bt)?ht!==void 0?hi(ht):ji!==void 0?hi(ji):void 0:void 0}}(g(oA),g(w),g(D),JA)||g(D):GE(g(oA),g(w));b(D,pe),ii(je(pe))}if(rA==="ArrowLeft"||rA==="Shift+ArrowLeft"){J.preventDefault();var me=g(D)?function(yi,Rn,bt){var Bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],mn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(bt){var{caret:Hn,previous:ji}=XoA(yi,Rn,bt,mn);if(Bo)return Ao(bt)?void 0:ys(bt.path,bt.path);if(Hn&&ji)return C_(ji);var ht=pi(je(bt)),Fi=Fe(yi,ht);return dn(bt)&&Array.isArray(Fi)?ys(bt.path,bt.path):Ao(bt)&&!Array.isArray(Fi)?t2(bt.focusPath):void 0}}(g(oA),g(w),g(D),JA,!B())||g(D):GE(g(oA),g(w));b(D,me),ii(je(me))}if(rA==="ArrowRight"||rA==="Shift+ArrowRight"){J.preventDefault();var ft=g(D)&&g(oA)!==void 0?function(yi,Rn,bt){var Bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],mn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(bt){var{caret:Hn,next:ji}=XoA(yi,Rn,bt,mn);return Bo?Ao(bt)?void 0:ys(bt.path,bt.path):Hn&&ji?C_(ji):Ao(bt)?hi(bt.focusPath):void 0}}(g(oA),g(w),g(D),JA,!B())||g(D):GE(g(oA),g(w));b(D,ft),ii(je(ft))}if(rA==="Enter"&&g(D)){if(My(g(D))){var mt=g(D).focusPath,ci=Fe(g(oA),pi(mt));Array.isArray(ci)&&(J.preventDefault(),b(D,hi(mt)))}pr(g(D))&&(J.preventDefault(),b(D,Be(Be({},g(D)),{},{edit:!0}))),dn(g(D))&&(J.preventDefault(),zo(Fe(g(oA),g(D).path))?_A(g(D).path,!0):b(D,Be(Be({},g(D)),{},{edit:!0})))}if(rA.replace(/^Shift\+/,"").length===1&&g(D))return J.preventDefault(),void fe(J.key);if(rA==="Enter"&&(Yc(g(D))||as(g(D))))return J.preventDefault(),void fe("");if(rA==="Ctrl+Enter"&&dn(g(D))){var rn=Fe(g(oA),g(D).path);yy(rn)&&window.open(String(rn),"_blank")}rA==="Escape"&&g(D)&&(J.preventDefault(),b(D,void 0)),rA==="Ctrl+F"&&(J.preventDefault(),Li(!1)),rA==="Ctrl+H"&&(J.preventDefault(),Li(!0)),rA==="Ctrl+Z"&&(J.preventDefault(),Gt()),rA==="Ctrl+Shift+Z"&&(J.preventDefault(),Xe())}),re("mousedown",wA,function(J){i("handleMouseDown",J);var rA=J.target;QsA(rA,"BUTTON")||rA.isContentEditable||(Xi(),g(D)||g(oA)!==void 0||g(ne)!==""&&g(ne)!==void 0||(i("createDefaultSelection"),b(D,hi([]))))}),re("contextmenu",wA,un),iA(t,Gr),kt(e,"expand",dA),kt(e,"collapse",WA),kt(e,"validate",qA),kt(e,"getJson",It),kt(e,"patch",Ft),kt(e,"acceptAutoRepair",ui),kt(e,"openTransformModal",Ki),kt(e,"scrollTo",$e),kt(e,"findElement",Wi),kt(e,"findSearchResult",Tn),kt(e,"focus",Xi),at({expand:dA,collapse:WA,validate:qA,getJson:It,patch:Ft,acceptAutoRepair:ui,openTransformModal:Ki,scrollTo:$e,findElement:Wi,findSearchResult:Tn,focus:Xi})}function IaA(t){return typeof(e=t)!="object"||e===null?t:new Proxy(t,{get:(A,i,n)=>IaA(Reflect.get(A,i,n)),set:()=>!1,deleteProperty:()=>!1});var e}var PD=wr("jsoneditor:History");function CaA(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.maxItems||1e3,A=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>A.slice().reverse(),add:a,undo:l,redo:I,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){PD("add",C),A=[C].concat(A.slice(i)).slice(0,e),i=0,s()}function c(){PD("clear"),A=[],i=0,s()}function l(){if(n()){var C=A[i];return i+=1,PD("undo",C),s(),C}}function I(){if(o())return PD("redo",A[i-=1]),s(),A[i]}return{get:r}}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-transform-modal-inner.svelte-rrrjnb { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) { + color: inherit; + flex: 1; + display: flex; + flex-direction: column; + padding: 0; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + gap: calc(2 * var(--jse-padding, 10px)); + min-height: 0; + box-sizing: border-box; + padding: 0 calc(2 * var(--jse-padding, 10px)) var(--jse-padding, 10px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p { + margin: var(--jse-padding, 10px) 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:first-child { + margin-top: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:last-child { + margin-bottom: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) code { + background: var(--jse-modal-code-background, rgba(0, 0, 0, 0.05)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .query-error:where(.svelte-rrrjnb) { + color: var(--jse-error-color, #ee5341); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { + flex: 1; + outline: none; + resize: vertical; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + gap: calc(2 * var(--jse-padding, 10px)); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data.jse-hide:where(.svelte-rrrjnb) { + flex: none; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-preview-data:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents.jse-hide-original-data:where(.svelte-rrrjnb) { + flex-direction: column; + gap: 0; + margin-bottom: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)) calc(2 * var(--jse-padding, 10px)); +} +@media screen and (max-width: 1200px) { + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { + flex-direction: column; + overflow: auto; + } + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { + min-height: 150px; + flex: none; + } + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-tree-mode { + height: 300px; + flex: none; + } +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) { + font-weight: bold; + display: block; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) { + margin-top: calc(2 * var(--jse-padding, 10px)); + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) button:where(.svelte-rrrjnb) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + font-weight: bold; + padding: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-tree-mode { + flex: 1; + background: var(--jse-input-background-readonly, transparent); + box-shadow: none; + box-sizing: border-box; + --jse-main-border: var(--jse-input-border, 1px solid #d8dbdf); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb), +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb) { + border: var(--jse-input-border, 1px solid #d8dbdf); + outline: none; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: inherit; + background: var(--jse-input-background, var(--jse-background-color, #fff)); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):focus, +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):read-only, +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):read-only { + background: var(--jse-input-background-readonly, transparent); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-preview.jse-error:where(.svelte-rrrjnb) { + flex: 1; + background: var(--jse-input-background-readonly, transparent); + border: var(--jse-input-border, 1px solid #d8dbdf); + color: var(--jse-error-color, #ee5341); + padding: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-transform-modal-inner.svelte-rrrjnb a { + color: var(--jse-a-color, #156fc5); +} +.jse-transform-modal-inner.svelte-rrrjnb a:hover { + color: var(--jse-a-color-highlight, #0f508d); +}`);var u3=Dy(()=>ZGA),UE=Dy(()=>WGA),NYA=pA('
      '),_YA=pA(" ",1),GYA=pA('
      '),UYA=pA('
      Language
      Path
      Query
      Preview
      ',1),KYA=pA('
      ');function YYA(t,e){var A,i,n;st(e,!1);var o=wr("jsoneditor:TransformModal"),r=k(e,"id",25,()=>"transform-modal-"+TE()),s=k(e,"json",9),a=k(e,"rootPath",25,()=>[]),c=k(e,"indentation",9),l=k(e,"truncateTextSize",9),I=k(e,"escapeControlCharacters",9),C=k(e,"escapeUnicodeCharacters",9),d=k(e,"parser",9),B=k(e,"parseMemoizeOne",9),E=k(e,"validationParser",9),Q=k(e,"pathParser",9),u=k(e,"queryLanguages",9),v=k(e,"queryLanguageId",13),L=k(e,"onChangeQueryLanguage",9),x=k(e,"onRenderValue",9),y=k(e,"onRenderMenu",9),F=k(e,"onRenderContextMenu",9),U=k(e,"onClassName",9),T=k(e,"onTransform",9),N=k(e,"onClose",9),K=X(void 0,!0),H=X(CaA({onChange:w=>b(H,w)}).get(),!0),j=X(void 0,!0),IA=X(void 0,!0),lA=X(!1,!0),uA="".concat(r(),":").concat(nt(a())),p=(A=u3()[uA])!==null&&A!==void 0?A:{},V=X(UE().showWizard!==!1,!0),cA=X(UE().showOriginal!==!1,!0),aA=X((i=p.queryOptions)!==null&&i!==void 0?i:{},!0),jA=X(v()===p.queryLanguageId&&p.query?p.query:"",!0),VA=X((n=p.isManual)!==null&&n!==void 0&&n,!0),ce=X(void 0,!0),EA=X(void 0,!0),sA=X({text:""},!0);function TA(w){var D;return(D=u().find(O=>O.id===w))!==null&&D!==void 0?D:u()[0]}function Ke(w){try{b(aA,w),b(jA,TA(v()).createQuery(g(j),w)),b(ce,void 0),b(VA,!1),o("updateQueryByWizard",{queryOptions:g(aA),query:g(jA),isManual:g(VA)})}catch(D){b(ce,String(D))}}function Re(w){b(jA,w.target.value),b(VA,!0),o("handleChangeQuery",{query:g(jA),isManual:g(VA)})}g(VA)||Ke(g(aA)),ls(()=>{var w;(w=g(K))===null||w===void 0||w.focus()});var hA=PB(function(w,D){if(w===void 0)return b(sA,{text:""}),void b(EA,"Error: No JSON");if(D.trim()!=="")try{o("previewTransform",{query:D});var O=TA(v()).executeQuery(w,D,d());b(sA,{json:O}),b(EA,void 0)}catch(Z){b(sA,{text:""}),b(EA,String(Z))}else b(sA,{json:w})},300);function eA(){if(g(j)===void 0)return b(sA,{text:""}),void b(EA,"Error: No JSON");try{o("handleTransform",{query:g(jA)});var w=TA(v()).executeQuery(g(j),g(jA),d());T()([{op:"replace",path:nt(a()),value:w}]),N()()}catch(D){console.error(D),b(sA,{text:""}),b(EA,String(D))}}function RA(){b(V,!g(V)),UE(UE().showWizard=g(V))}function oA(){b(cA,!g(cA)),UE(UE().showOriginal=g(cA))}function ne(w){w.focus()}function h(w){o("handleChangeQueryLanguage",w),v(w),L()(w),Ke(g(aA))}function f(){g(lA)?b(lA,!g(lA)):N()()}fA(()=>(W(s()),W(a())),()=>{b(j,IaA(Fe(s(),a())))}),fA(()=>g(j),()=>{b(IA,g(j)?{json:g(j)}:{text:""})}),fA(()=>(g(j),g(jA)),()=>{hA(g(j),g(jA))}),fA(()=>(u3(),g(aA),g(jA),W(v()),g(VA)),()=>{u3(u3()[uA]={queryOptions:g(aA),query:g(jA),queryLanguageId:v(),isManual:g(VA)}),o("store state in memory",uA,u3()[uA])}),nn(),Rt(!0),U3(t,{get onClose(){return N()},className:"jse-transform-modal",get fullscreen(){return g(lA)},children:(w,D)=>{var O=KYA();c_($(O),{children:(Z,q)=>{var CA=UYA(),kA=Bt(CA);(function(Ye,Ai){st(Ai,!1);var ei,Oi=k(Ai,"queryLanguages",9),Yn=k(Ai,"queryLanguageId",9),Dn=k(Ai,"fullscreen",13),Ho=k(Ai,"onChangeQueryLanguage",9),Sn=k(Ai,"onClose",9),io=X(void 0,!0),{openAbsolutePopup:Wo,closeAbsolutePopup:No}=H1("absolute-popup");function Jn(){var hn={queryLanguages:Oi(),queryLanguageId:Yn(),onChangeQueryLanguage:wo=>{No(ei),Ho()(wo)}};ei=Wo(xUA,hn,{offsetTop:-2,offsetLeft:0,anchor:g(io),closeOnOuterClick:!0})}Rt(!0),dy(Ye,{title:"Transform",fullScreenButton:!0,get onClose(){return Sn()},get fullscreen(){return Dn()},set fullscreen(hn){Dn(hn)},$$slots:{actions:(hn,wo)=>{var se,fi=_UA();Si($(fi),{data:MW}),to(fi,bA=>b(io,bA),()=>g(io)),Ee(bA=>se=xt(fi,1,"jse-config svelte-1kpylsp",null,se,bA),[()=>({hide:Oi().length<=1})],PA),re("click",fi,Jn),iA(hn,fi)}},$$legacy:!0}),at()})(kA,{get queryLanguages(){return u()},get queryLanguageId(){return v()},onChangeQueryLanguage:h,get onClose(){return N()},get fullscreen(){return g(lA)},set fullscreen(Ye){b(lA,Ye)},$$legacy:!0});var KA=$(gA(kA,2)),Ie=$(KA),GA=gA($(Ie),2);AsA($(GA),()=>TA(v()).description);var oe=gA(GA,4),M=gA(oe,2),G=$(M),Y=$(G),AA=$(Y),dA=PA(()=>g(V)?k0:qB);Si(AA,{get data(){return g(dA)}});var WA=gA(M,2),Qe=Ye=>{var Ai=po(),ei=Bt(Ai),Oi=Dn=>{var Ho=_YA(),Sn=Bt(Ho);SUA(Sn,{get queryOptions(){return g(aA)},get json(){return g(j)},onChange:Ke});var io=gA(Sn,2),Wo=No=>{var Jn=NYA(),hn=$(Jn);Ee(()=>Et(hn,g(ce))),iA(No,Jn)};MA(io,No=>{g(ce)&&No(Wo)}),iA(Dn,Ho)},Yn=Dn=>{iA(Dn,_r("(Only available for arrays, not for objects)"))};MA(ei,Dn=>{Array.isArray(g(j))?Dn(Oi):Dn(Yn,!1)}),iA(Ye,Ai)};MA(WA,Ye=>{g(V)&&Ye(Qe)});var yA=gA(WA,4);to(yA,Ye=>b(K,Ye),()=>g(K));var DA,We,be=gA(Ie,2),qA=$(be),It=$(qA),Vi=$(It),on=$(Vi),Hi=$(on),Ci=PA(()=>g(cA)?k0:qB);Si(Hi,{get data(){return g(Ci)}});var Zi=gA(It,2),Qi=Ye=>{M_(Ye,{get externalContent(){return g(IA)},externalSelection:void 0,get history(){return g(H)},readOnly:!0,get truncateTextSize(){return l()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return x()},get onRenderMenu(){return y()},get onRenderContextMenu(){return F()},onError:console.error,onChange:Jo,onChangeMode:Jo,onSelect:Jo,onUndo:Jo,onRedo:Jo,onFocus:Jo,onBlur:Jo,onSortModal:Jo,onTransformModal:Jo,onJSONEditorModal:Jo,get onClassName(){return U()},validator:void 0,get validationParser(){return E()},get pathParser(){return Q()}})};MA(Zi,Ye=>{g(cA)&&Ye(Qi)});var Ft=gA(qA,2),Tt=gA($(Ft),2),Ht=Ye=>{M_(Ye,{get externalContent(){return g(sA)},externalSelection:void 0,get history(){return g(H)},readOnly:!0,get truncateTextSize(){return l()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return x()},get onRenderMenu(){return y()},get onRenderContextMenu(){return F()},onError:console.error,onChange:Jo,onChangeMode:Jo,onSelect:Jo,onUndo:Jo,onRedo:Jo,onFocus:Jo,onBlur:Jo,onSortModal:Jo,onTransformModal:Jo,onJSONEditorModal:Jo,get onClassName(){return U()},validator:void 0,get validationParser(){return E()},get pathParser(){return Q()}})},zi=Ye=>{var Ai=GYA(),ei=$(Ai);Ee(()=>Et(ei,g(EA))),iA(Ye,Ai)};MA(Tt,Ye=>{g(EA)?Ye(zi,!1):Ye(Ht)});var ui=$(gA(KA,2));Nr(()=>re("click",ui,eA)),bs(ui,Ye=>ne?.(Ye)),Ee((Ye,Ai,ei)=>{GC(oe,Ye),GC(yA,g(jA)),DA=xt(be,1,"jse-data-contents svelte-rrrjnb",null,DA,Ai),We=xt(qA,1,"jse-original-data svelte-rrrjnb",null,We,ei),ui.disabled=!!g(EA)},[()=>sn(a())?"(document root)":Dl(a()),()=>({"jse-hide-original-data":!g(cA)}),()=>({"jse-hide":!g(cA)})],PA),re("click",Y,RA),re("input",yA,Re),re("click",on,oA),iA(Z,CA)},$$slots:{default:!0}}),bs(O,(Z,q)=>By?.(Z,q),()=>f),iA(w,O)},$$slots:{default:!0}}),at()}function Kc(){}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-status-bar.svelte-1ulj7zd { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + margin: 0; + border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); + display: flex; + gap: var(--jse-padding, 10px); +} +.jse-status-bar.svelte-1ulj7zd:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-status-bar.svelte-1ulj7zd .jse-status-bar-info:where(.svelte-1ulj7zd) { + padding: 2px; +}`);var JYA=pA('
      '),TYA=pA('
      '),zYA=pA('
      '),HYA=pA('
      '),rG=kE.define([{tag:we.propertyName,color:"var(--internal-key-color)"},{tag:we.number,color:"var(--internal-value-color-number)"},{tag:we.bool,color:"var(--internal-value-color-boolean)"},{tag:we.string,color:"var(--internal-value-color-string)"},{tag:we.keyword,color:"var(--internal-value-color-null)"}]),OYA=MF(rG),PYA=rG.style;rG.style=t=>PYA(t||[]);var jYA=[Xn.fromClass(class{constructor(t){this.view=t,this.indentUnit=ul(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var e=ul(t.state);(e!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=e,this.generate(t.state))}generate(t){var e=new os;this.initialPaddingLeft?this.addStyleToBuilder(e,t,this.initialPaddingLeft):this.view.requestMeasure({read:A=>{var i=A.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(e,A.state,this.initialPaddingLeft)),this.decorations=e.finish()}}),this.decorations=e.finish()}addStyleToBuilder(t,e,A){var i=this.getVisibleLines(e);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,e.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(A,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,rt.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var e=new Set,A=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);A!==r&&(e.add(r),A=r),o=r.to+1}return e}numColumns(t,e){var A=0,i=!1;A:for(var n=0;nt.decorations})];vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-text-mode.svelte-xt61xw { + --internal-key-color: var(--jse-key-color, #1a1a1a); + --internal-value-color-number: var(--jse-value-color-number, #ee422e); + --internal-value-color-boolean: var(--jse-value-color-boolean, #ff8c00); + --internal-value-color-string: var(--jse-value-color-string, #008000); + --internal-value-color-null: var(--jse-value-color-null, #004ed0); + flex: 1; + box-sizing: border-box; + display: flex; + flex-direction: column; + background: var(--jse-background-color, #fff); +} +.jse-text-mode.no-main-menu.svelte-xt61xw { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) { + flex: 1; + display: flex; + position: relative; + flex-direction: column; + overflow: hidden; + min-width: 0; + min-height: 0; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-xt61xw .jse-contents.jse-hidden:where(.svelte-xt61xw) { + visibility: hidden; + position: absolute; + top: 0; + left: 0; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor { + flex: 1; + overflow: hidden; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-scroller { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + line-height: var(--jse-line-height, calc(1em + 4px)); + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-gutters { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + border-right: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-activeLine, +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-activeLineGutter { + background: var(--jse-active-line-background-color, rgba(0, 0, 0, 0.06)); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-selectionBackground { + background: var(--jse-selection-background-color, #d3d3d3); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-searchMatch { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-searchMatch.cm-searchMatch-selected { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-selectionMatch { + background-color: var(--jse-search-match-background-color, rgba(153, 255, 119, 0.5019607843)); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-foldPlaceholder { + background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); + border: none; + padding: 0 var(--jse-padding, 10px); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-tooltip { + font-size: var(--jse-font-size, 16px); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + color: var(--jse-tooltip-color, var(--jse-text-color, #4d4d4d)); + background: var(--jse-tooltip-background, var(--jse-modal-background, #f5f5f5)); + border: var(--jse-tooltip-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-diagnosticAction { + background: var(--jse-tooltip-action-button-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-tooltip-action-button-background, #4d4d4d); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-panels { + border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search input { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + color: var(--jse-input-color, var(--jse-text-color, #4d4d4d)); + border: var(--jse-input-border, 1px solid #d8dbdf); + background: var(--jse-input-background, var(--jse-background-color, #fff)); + margin-right: 2px; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search button { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + color: var(--jse-panel-button-color, inherit); + background: var(--jse-panel-button-background, transparent); + border: none; + cursor: pointer; + text-transform: capitalize; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + margin: 0; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search button:hover { + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search label { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + padding-left: var(--jse-padding, 10px); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search label input { + margin-right: 2px; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search button[name="close"] { + width: 32px; + height: 32px; + font-size: 24px; + line-height: 24px; + padding: 0; + right: 0; + top: -4px; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-cursor-primary { + border-color: var(--jse-text-color, #4d4d4d); +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .jse-loading-space:where(.svelte-xt61xw) { + flex: 1; +} +.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .jse-loading:where(.svelte-xt61xw) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-text-mode.svelte-xt61xw .jse-contents.jse-preview:where(.svelte-xt61xw) { + flex: 1; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); + overflow: auto; + white-space: pre-wrap; + word-break: break-word; + padding: 2px; +}`);var qYA=pA('
      ',1),VYA=pA(" ",1),ZYA=pA("
      ",1),WYA=pA('
      loading...
      '),XYA=pA("
      ");function $YA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=k(e,"readOnly",9),o=k(e,"mainMenuBar",9),r=k(e,"statusBar",9),s=k(e,"askToFormat",9),a=k(e,"externalContent",9),c=k(e,"externalSelection",9),l=k(e,"history",9),I=k(e,"indentation",9),C=k(e,"tabSize",9),d=k(e,"escapeUnicodeCharacters",9),B=k(e,"parser",9),E=k(e,"validator",9),Q=k(e,"validationParser",9),u=k(e,"onChange",9),v=k(e,"onChangeMode",9),L=k(e,"onSelect",9),x=k(e,"onUndo",9),y=k(e,"onRedo",9),F=k(e,"onError",9),U=k(e,"onFocus",9),T=k(e,"onBlur",9),N=k(e,"onRenderMenu",9),K=k(e,"onSortModal",9),H=k(e,"onTransformModal",9),j=wr("jsoneditor:TextMode"),IA={key:"Mod-i",run:q,shift:CA,preventDefault:!0},lA=typeof window>"u";j("isSSR:",lA);var uA,p=X(void 0,!0),V=X(void 0,!0),cA=X(void 0,!0),aA=X(!1,!0),jA=X(s(),!0),VA=X([],!0),ce=new ug,EA=new ug,sA=new ug,TA=new ug,Ke=new ug,Re=a(),hA=X(s_(Re,I(),B()),!0),eA=wa.define(),RA=null;function oA(){if(!RA||RA.length===0)return!1;var bA=RA[0].startState,fe=RA[RA.length-1].state,it=RA.map(Xe=>Xe.changes).reduce((Xe,Ot)=>Xe.compose(Ot)),Gt={type:"text",undo:{changes:it.invert(bA.doc).toJSON(),selection:Ye(bA.selection)},redo:{changes:it.toJSON(),selection:Ye(fe.selection)}};return j("add history item",Gt),l().add(Gt),RA=null,!0}var ne=X(d(),!0);ls(yt(function*(){if(!lA)try{uA=function(bA){var{target:fe,initialText:it,readOnly:Gt,indentation:Xe}=bA;j("Create CodeMirror editor",{readOnly:Gt,indentation:Xe});var Ot=function(Jt,Ki){return GN(Jt)?Jt.ranges.every(Ct=>Ct.anchor{b(cA,Jt.state),Jt.docChanged&&(Jt.transactions.some(Ki=>!!Ki.annotation(eA))||(RA=[...RA??[],Jt]),Tt()),Jt.selectionSet&&ui()}),FnA(),TnA({top:!0}),St.lineWrapping,EA.of(Ir.readOnly.of(Gt)),TA.of(Ir.tabSize.of(C())),sA.of(Ft(Xe)),Ke.of(St.theme({},{dark:We()}))]});return uA=new St({state:Pi,parent:fe}),Ot&&uA.dispatch(uA.state.update({selection:Ot.main,scrollIntoView:!0})),uA}({target:g(p),initialText:Ai(g(hA),g(aA))?"":g(A).escapeValue(g(hA)),readOnly:n(),indentation:I()})}catch(bA){console.error(bA)}})),Tc(()=>{Ht(),uA&&(j("Destroy CodeMirror editor"),uA.destroy())});var h=n1(),f=n1();function w(){uA&&(j("focus"),uA.focus())}var D=!1;function O(bA){return Z(bA,!1)}function Z(bA,fe){j("handlePatch",bA,fe);var it=B().parse(g(hA)),Gt=Ba(it,bA),Xe=f8(it,bA);return Vi({text:B().stringify(Gt,null,I())},fe,!1),{json:Gt,previousJson:it,undo:Xe,redo:bA}}function q(){if(j("format"),n())return!1;try{var bA=B().parse(g(hA));return Vi({text:B().stringify(bA,null,I())},!0,!1),b(jA,s()),!0}catch(fe){F()(fe)}return!1}function CA(){if(j("compact"),n())return!1;try{var bA=B().parse(g(hA));return Vi({text:B().stringify(bA)},!0,!1),b(jA,!1),!0}catch(fe){F()(fe)}return!1}function kA(){if(j("repair"),!n())try{Vi({text:yc(g(hA))},!0,!1),b(ei,xN),b(Oi,void 0)}catch(bA){F()(bA)}}function KA(){var bA;if(!n())try{var fe=B().parse(g(hA));D=!0,K()({id:h,json:fe,rootPath:[],onSort:(bA=yt(function*(it){var{operations:Gt}=it;j("onSort",Gt),Z(Gt,!0)}),function(it){return bA.apply(this,arguments)}),onClose:()=>{D=!1,w()}})}catch(it){F()(it)}}function Ie(bA){var{id:fe,rootPath:it,onTransform:Gt,onClose:Xe}=bA;try{var Ot=B().parse(g(hA));D=!0,H()({id:fe||f,json:Ot,rootPath:it||[],onTransform:Pi=>{Gt?Gt({operations:Pi,json:Ot,transformedJson:Ba(Ot,Pi)}):(j("onTransform",Pi),Z(Pi,!0))},onClose:()=>{D=!1,w(),Xe&&Xe()}})}catch(Pi){F()(Pi)}}function GA(){n()||Ie({rootPath:[]})}function oe(){uA&&(g(p)&&g(p).querySelector(".cm-search")?yD(uA):DD(uA))}function M(){if(n())return!1;Ht();var bA=l().undo();return j("undo",bA),HoA(bA)?(uA.dispatch({annotations:eA.of("undo"),changes:ns.fromJSON(bA.undo.changes),selection:ie.fromJSON(bA.undo.selection),scrollIntoView:!0}),!0):(x()(bA),!1)}function G(){if(n())return!1;Ht();var bA=l().redo();return j("redo",bA),HoA(bA)?(uA.dispatch({annotations:eA.of("redo"),changes:ns.fromJSON(bA.redo.changes),selection:ie.fromJSON(bA.redo.selection),scrollIntoView:!0}),!0):(y()(bA),!1)}function Y(){b(aA,!0),Vi(a(),!0,!0)}function AA(){v()(tr.tree)}function dA(){Zi()}function WA(bA){j("select validation error",bA);var{from:fe,to:it}=be(bA);fe!==void 0&&it!==void 0&&(Qe(fe,it),w())}function Qe(bA,fe){j("setSelection",{anchor:bA,head:fe}),uA&&uA.dispatch(uA.state.update({selection:{anchor:bA,head:fe},scrollIntoView:!0}))}function yA(bA,fe){if(fe.state.selection.ranges.length===1){var it=fe.state.selection.ranges[0],Gt=g(hA).slice(it.from,it.to);if(Gt==="{"||Gt==="["){var Xe=qN.default.parse(g(hA)),Ot=Object.keys(Xe.pointers).find(Jt=>{var Ki;return((Ki=Xe.pointers[Jt].value)===null||Ki===void 0?void 0:Ki.pos)===it.from}),Pi=Xe.pointers[Ot];Ot&&Pi&&Pi.value&&Pi.valueEnd&&(j("pointer found, selecting inner contents of path:",Ot,Pi),Qe(Pi.value.pos+1,Pi.valueEnd.pos-1))}}}function DA(){return fnA(Yn,{delay:300})}function We(){return!!g(p)&&getComputedStyle(g(p)).getPropertyValue("--jse-theme").includes("dark")}function be(bA){var{path:fe,message:it,severity:Gt}=bA,{line:Xe,column:Ot,from:Pi,to:Jt}=function(Ki,Ct){try{var ti=qN.default.parse(Ki),$e=nt(Ct),Nt=ti.pointers[$e];if(Nt)return{path:Ct,line:Nt.key?Nt.key.line:Nt.value?Nt.value.line:0,column:Nt.key?Nt.key.column:Nt.value?Nt.value.column:0,from:Nt.key?Nt.key.pos:Nt.value?Nt.value.pos:0,to:Nt.keyEnd?Nt.keyEnd.pos:Nt.valueEnd?Nt.valueEnd.pos:0}}catch(Wi){console.error(Wi)}return{path:Ct,line:0,column:0,from:0,to:0}}(g(A).escapeValue(g(hA)),fe);return{path:fe,line:Xe,column:Ot,from:Pi,to:Jt,message:it,severity:Gt,actions:[]}}function qA(bA,fe){var{line:it,column:Gt,position:Xe,message:Ot}=bA;return{path:[],line:it,column:Gt,from:Xe,to:Xe,severity:bl.error,message:Ot,actions:fe&&!n()?[{name:"Auto repair",apply:()=>kA()}]:void 0}}function It(bA){return{from:bA.from||0,to:bA.to||0,message:bA.message||"",actions:bA.actions,severity:bA.severity}}function Vi(bA,fe,it){var Gt=s_(bA,I(),B()),Xe=!Ei(bA,Re),Ot=Re;j("setCodeMirrorContent",{isChanged:Xe,emitChange:fe,forceUpdate:it}),uA&&(Xe||it)&&(Re=bA,b(hA,Gt),Ai(g(hA),g(aA))||uA.dispatch({changes:{from:0,to:uA.state.doc.length,insert:g(A).escapeValue(g(hA))}}),oA(),Xe&&fe&&zi(Re,Ot))}function on(bA){return GN(bA)?ie.fromJSON(bA):void 0}function Hi(){return Ci.apply(this,arguments)}function Ci(){return Ci=yt(function*(){j("refresh"),yield function(){return Qi.apply(this,arguments)}()}),Ci.apply(this,arguments)}function Zi(){if(uA){var bA=uA?g(A).unescapeValue(uA.state.doc.toString()):"",fe=bA!==g(hA);if(j("onChangeCodeMirrorValue",{isChanged:fe}),fe){var it=Re;b(hA,bA),Re={text:g(hA)},oA(),zi(Re,it),go(),ui()}}}function Qi(){return(Qi=yt(function*(){if(go(),uA){var bA=We();return j("updateTheme",{dark:bA}),uA.dispatch({effects:[Ke.reconfigure(St.theme({},{dark:bA}))]}),new Promise(fe=>setTimeout(fe))}return Promise.resolve()})).apply(this,arguments)}function Ft(bA){var fe=fC.of(typeof bA=="number"?" ".repeat(bA):bA);return bA===" "?[fe]:[fe,jYA]}iG({onMount:ls,onDestroy:Tc,getWindow:()=>j3(g(V)),hasFocus:()=>D&&document.hasFocus()||J_(g(V)),onFocus:U(),onBlur:()=>{Ht(),T()()}});var Tt=PB(Zi,300);function Ht(){Tt.flush()}function zi(bA,fe){u()&&u()(bA,fe,{contentErrors:Dn(),patchResult:void 0})}function ui(){L()(Ye(g(cA).selection))}function Ye(bA){return Be({type:wn.text},bA.toJSON())}function Ai(bA,fe){return!!bA&&bA.length>UoA&&!fe}var ei=X(xN,!0),Oi=X(void 0,!0);function Yn(){if(Ai(g(hA),g(aA)))return[];var bA=Dn();if(ToA(bA)){var{parseError:fe,isRepairable:it}=bA;return[It(qA(fe,it))]}return MGA(bA)?bA.validationErrors.map(be).map(It):[]}function Dn(){j("validate:start"),Ht();var bA=Ho(g(A).escapeValue(g(hA)),E(),B(),Q());return ToA(bA)?(b(ei,bA.isRepairable?YoA:"invalid"),b(Oi,bA.parseError),b(VA,[])):(b(ei,xN),b(Oi,void 0),b(VA,bA?.validationErrors||[])),j("validate:end"),bA}var Ho=VB(KUA);function Sn(){g(Oi)&&function(bA){j("select parse error",bA);var fe=qA(bA,!1);Qe(fe.from!=null?fe.from:0,fe.to!=null?fe.to:0),w()}(g(Oi))}var io={icon:vW,text:"Show me",title:"Move to the parse error location",onClick:Sn};fA(()=>W(d()),()=>{b(A,K_({escapeControlCharacters:!1,escapeUnicodeCharacters:d()}))}),fA(()=>W(a()),()=>{Vi(a(),!1,!1)}),fA(()=>W(c()),()=>{(function(bA){if(GN(bA)){var fe=on(bA);!uA||!fe||g(cA)&&g(cA).selection.eq(fe)||(j("applyExternalSelection",fe),uA.dispatch({selection:fe}))}})(c())}),fA(()=>W(E()),()=>{(function(bA){j("updateLinter",bA),uA&&uA.dispatch({effects:ce.reconfigure(DA())})})(E())}),fA(()=>W(I()),()=>{(function(bA){uA&&(j("updateIndentation",bA),uA.dispatch({effects:sA.reconfigure(Ft(bA))}))})(I())}),fA(()=>W(C()),()=>{(function(bA){uA&&(j("updateTabSize",bA),uA.dispatch({effects:TA.reconfigure(Ir.tabSize.of(bA))}))})(C())}),fA(()=>W(n()),()=>{(function(bA){uA&&(j("updateReadOnly",bA),uA.dispatch({effects:[EA.reconfigure(Ir.readOnly.of(bA))]}))})(n())}),fA(()=>(g(ne),W(d())),()=>{g(ne)!==d()&&(b(ne,d()),j("forceUpdateText",{escapeUnicodeCharacters:d()}),uA&&uA.dispatch({changes:{from:0,to:uA.state.doc.length,insert:g(A).escapeValue(g(hA))}}))}),fA(()=>(g(ei),W(n()),M0),()=>{b(i,g(ei)!==YoA||n()?[io]:[{icon:M0,text:"Auto repair",title:"Automatically repair JSON",onClick:kA},io])}),nn(),Rt(!0);var Wo,No=XYA(),Jn=$(No),hn=bA=>{var fe=PA(()=>g(hA).length===0),it=PA(()=>!g(fe)),Gt=PA(()=>!g(fe)),Xe=PA(()=>!g(fe)),Ot=PA(()=>!g(fe));(function(Pi,Jt){st(Jt,!1);var Ki=X(void 0,!0),Ct=k(Jt,"readOnly",9,!1),ti=k(Jt,"onFormat",9),$e=k(Jt,"onCompact",9),Nt=k(Jt,"onSort",9),Wi=k(Jt,"onTransform",9),Tn=k(Jt,"onToggleSearch",9),ii=k(Jt,"onUndo",9),Ri=k(Jt,"onRedo",9),dt=k(Jt,"canUndo",9),zn=k(Jt,"canRedo",9),QA=k(Jt,"canFormat",9),_A=k(Jt,"canCompact",9),Ce=k(Jt,"canSort",9),Pt=k(Jt,"canTransform",9),Li=k(Jt,"onRenderMenu",9),ai={type:"button",icon:Zu,title:"Search (Ctrl+F)",className:"jse-search",onClick:Tn()},Fn=X(void 0,!0);fA(()=>(W(Ct()),W(ti()),W(QA()),W($e()),W(_A()),W(Nt()),W(Ce()),W(Wi()),W(Pt()),W(ii()),W(dt()),W(Ri()),W(zn())),()=>{b(Fn,Ct()?[ai,{type:"space"}]:[{type:"button",icon:ErA,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:ti(),disabled:Ct()||!QA()},{type:"button",icon:zKA,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:$e(),disabled:Ct()||!_A()},{type:"separator"},{type:"button",icon:Vu,title:"Sort",className:"jse-sort",onClick:Nt(),disabled:Ct()||!Ce()},{type:"button",icon:Pu,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:Wi(),disabled:Ct()||!Pt()},ai,{type:"separator"},{type:"button",icon:s5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ii(),disabled:!dt()},{type:"button",icon:r5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ri(),disabled:!zn()},{type:"space"}])}),fA(()=>(W(Li()),g(Fn)),()=>{b(Ki,Li()(g(Fn))||g(Fn))}),nn(),Rt(!0),Ly(Pi,{get items(){return g(Ki)}}),at()})(bA,{get readOnly(){return n()},onFormat:q,onCompact:CA,onSort:KA,onTransform:GA,onToggleSearch:oe,onUndo:M,onRedo:G,get canFormat(){return g(it)},get canCompact(){return g(Gt)},get canSort(){return g(Xe)},get canTransform(){return g(Ot)},get canUndo(){return l().canUndo},get canRedo(){return l().canRedo},get onRenderMenu(){return N()}})};MA(Jn,bA=>{o()&&bA(hn)});var wo=gA(Jn,2),se=bA=>{var fe,it=ZYA(),Gt=PA(()=>Ai(g(hA),g(aA))),Xe=Bt(it);to(Xe,Ct=>b(p,Ct),()=>g(p));var Ot=gA(Xe,2),Pi=Ct=>{var ti=qYA(),$e=Bt(ti),Nt=PA(()=>"The JSON document is larger than ".concat(h_(UoA),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(h_(g(hA).length),"."));Cc($e,{icon:r1,type:"error",get message(){return g(Nt)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:Y},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:AA},{text:"Cancel",title:"Cancel opening this large document.",onClick:dA}],onClose:w});var Wi=$(gA($e,2));Ee(Tn=>Et(Wi,Tn),[()=>S3(g(hA)||"",l_)],PA),iA(Ct,ti)};MA(Ot,Ct=>{g(Gt)&&Ct(Pi)});var Jt=gA(Ot,2),Ki=Ct=>{var ti=VYA(),$e=Bt(ti),Nt=dt=>{(function(zn,QA){st(QA,!1);var _A=k(QA,"editorState",8),Ce=X(),Pt=X(),Li=X(),ai=X(),Fn=X();fA(()=>W(_A()),()=>{var Oe;b(Ce,(Oe=_A())===null||Oe===void 0||(Oe=Oe.selection)===null||Oe===void 0||(Oe=Oe.main)===null||Oe===void 0?void 0:Oe.head)}),fA(()=>(g(Ce),W(_A())),()=>{var Oe;b(Pt,g(Ce)!==void 0?(Oe=_A())===null||Oe===void 0||(Oe=Oe.doc)===null||Oe===void 0?void 0:Oe.lineAt(g(Ce)):void 0)}),fA(()=>g(Pt),()=>{b(Li,g(Pt)!==void 0?g(Pt).number:void 0)}),fA(()=>(g(Pt),g(Ce)),()=>{b(ai,g(Pt)!==void 0&&g(Ce)!==void 0?g(Ce)-g(Pt).from+1:void 0)}),fA(()=>W(_A()),()=>{var Oe;b(Fn,(Oe=_A())===null||Oe===void 0||(Oe=Oe.selection)===null||Oe===void 0||(Oe=Oe.ranges)===null||Oe===void 0?void 0:Oe.reduce((ni,fn)=>ni+fn.to-fn.from,0))}),nn(),Rt();var Co=HYA(),Qn=$(Co),un=Oe=>{var ni=JYA(),fn=$(ni);Ee(()=>{var Yi;return Et(fn,"Line: ".concat((Yi=g(Li))!==null&&Yi!==void 0?Yi:""))}),iA(Oe,ni)};MA(Qn,Oe=>{g(Li)!==void 0&&Oe(un)});var jt=gA(Qn,2),Nn=Oe=>{var ni=TYA(),fn=$(ni);Ee(()=>{var Yi;return Et(fn,"Column: ".concat((Yi=g(ai))!==null&&Yi!==void 0?Yi:""))}),iA(Oe,ni)};MA(jt,Oe=>{g(ai)!==void 0&&Oe(Nn)});var ut=gA(jt,2),Xo=Oe=>{var ni=zYA(),fn=$(ni);Ee(()=>{var Yi;return Et(fn,"Selection: ".concat((Yi=g(Fn))!==null&&Yi!==void 0?Yi:""," characters"))}),iA(Oe,ni)};MA(ut,Oe=>{g(Fn)!==void 0&&g(Fn)>0&&Oe(Xo)}),iA(zn,Co),at()})(dt,{get editorState(){return g(cA)}})};MA($e,dt=>{r()&&dt(Nt)});var Wi=gA($e,2),Tn=dt=>{Cc(dt,{type:"error",icon:r1,get message(){return g(Oi).message},get actions(){return g(i)},onClick:Sn,onClose:w})};MA(Wi,dt=>{g(Oi)&&dt(Tn)});var ii=gA(Wi,2),Ri=dt=>{Cc(dt,{type:"success",message:"Do you want to format the JSON?",actions:[{icon:ErA,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:q},{icon:Wu,text:"No thanks",title:"Close this message",onClick:()=>b(jA,!1)}],onClose:w})};MA(ii,dt=>{var zn,QA;!g(Oi)&&g(jA)&&(zn=g(hA),!(QA=zn.substring(0,999).trim()).includes(` +`)&&W_A.test(QA))&&dt(Ri)}),nG(gA(ii,2),{get validationErrors(){return g(VA)},selectError:WA}),iA(Ct,ti)};MA(Jt,Ct=>{g(Gt)||Ct(Ki)}),Ee(Ct=>fe=xt(Xe,1,"jse-contents svelte-xt61xw",null,fe,Ct),[()=>({"jse-hidden":g(Gt)})],PA),iA(bA,it)},fi=bA=>{iA(bA,WYA())};return MA(wo,bA=>{lA?bA(fi,!1):bA(se)}),to(No,bA=>b(V,bA),()=>g(V)),Ee(bA=>Wo=xt(No,1,"jse-text-mode svelte-xt61xw",null,Wo,bA),[()=>({"no-main-menu":!o()})],PA),iA(t,No),kt(e,"focus",w),kt(e,"patch",O),kt(e,"handlePatch",Z),kt(e,"openTransformModal",Ie),kt(e,"refresh",Hi),kt(e,"flush",Ht),kt(e,"validate",Dn),at({focus:w,patch:O,handlePatch:Z,openTransformModal:Ie,refresh:Hi,flush:Ht,validate:Dn})}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-inline-value.svelte-h57m0p { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + line-height: var(--jse-line-height, calc(1em + 4px)); + border: none; + padding: 0 calc(0.5 * var(--jse-padding, 10px)); + background: transparent; + color: inherit; + cursor: inherit; +} +.jse-inline-value.jse-highlight.svelte-h57m0p { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-inline-value.jse-highlight.jse-active.svelte-h57m0p { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +}`);var AJA=pA('');vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-column-header.svelte-2i3vdx { + background: none; + border: none; + font-family: inherit; + font-size: inherit; + color: inherit; + display: flex; + gap: var(--jse-padding, 10px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); + width: 100%; +} +.jse-column-header.svelte-2i3vdx:hover { + background: var(--jse-table-header-background-highlight, #e8e8e8); +} +.jse-column-header.svelte-2i3vdx:not(.jse-column-header.jse-readonly) { + cursor: pointer; +} +.jse-column-header.svelte-2i3vdx span.jse-column-sort-icon:where(.svelte-2i3vdx) { + height: 1em; +}`);var eJA=pA(''),tJA=pA('');vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-table-mode-welcome.svelte-17xl1jx { + flex: 1; + display: flex; + flex-direction: column; + overflow: auto; + align-items: center; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode-welcome.svelte-17xl1jx:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-before:where(.svelte-17xl1jx) { + flex: 1; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) { + display: flex; + flex-direction: column; + gap: var(--jse-padding, 10px); + max-width: 400px; + margin: 2em var(--jse-padding, 10px); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-arrays-info:where(.svelte-17xl1jx) { + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) { + display: flex; + align-items: center; + gap: var(--jse-padding, 10px); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) { + flex: 1; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) .jse-nested-property-count:where(.svelte-17xl1jx) { + opacity: 0.5; + white-space: nowrap; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx) { + text-align: left; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-after:where(.svelte-17xl1jx) { + flex: 2; +}`);var iJA=(t,e)=>e.onClick(),nJA=pA(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste + a JSON Array using Ctrl+V.`,1),oJA=(t,e,A)=>e.openJSONEditorModal(g(A)),rJA=(t,e,A)=>e.extractPath(g(A)),sJA=pA(''),aJA=pA('
      '),cJA=(t,e)=>e.onChangeMode(tr.tree),lJA=pA('
      ');function gJA(t,e){st(e,!0);var A=ba(()=>e.json?function(E){var Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,u=[];return function v(L,x){Mo(L)&&x.length{v(L[y],x.concat(y))}),ao(L)&&u.push(x)}(E,[]),u}(e.json).slice(0,99).filter(E=>E.length>0):[]),i=ba(()=>!sn(g(A))),n=ba(()=>e.json===void 0&&(e.text===""||e.text===void 0)),o=ba(()=>g(i)?"Object with nested arrays":g(n)?"An empty document":Mo(e.json)?"An object":ao(e.json)?"An empty array":"A ".concat(U_(e.json,e.parser))),r=lJA();r.__click=[iJA,e];var s=gA($(r),2),a=$(s),c=$(a),l=gA(a,2),I=$(l),C=E=>{iA(E,_r(`An object cannot be opened in table mode. You can open a nested array instead, or open the + document in tree mode.`))},d=(E,Q)=>{var u=L=>{iA(L,nJA())},v=L=>{var x=_r();Ee(()=>{var y;return Et(x,"".concat((y=g(o))!==null&&y!==void 0?y:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),iA(L,x)};MA(E,L=>{g(n)&&!e.readOnly?L(u):L(v,!1)},Q)};MA(I,E=>{g(i)?E(C):E(d,!1)});var B=gA(l,2);Fo(B,17,()=>g(A),Zo,(E,Q)=>{var u=aJA(),v=ba(()=>function(K){return Fe(e.json,K).length}(g(Q))),L=$(u),x=$(L),y=$(gA(x)),F=gA(L,2);F.__click=[oJA,e,Q];var U=$(F),T=gA(F,2),N=K=>{var H=sJA();H.__click=[rJA,e,Q],iA(K,H)};MA(T,K=>{e.readOnly||K(N)}),Ee(K=>{var H;Et(x,'"'.concat(K??"",'" ')),Et(y,"(".concat((H=g(v))!==null&&H!==void 0?H:""," ").concat(g(v)!==1?"items":"item",")")),Et(U,e.readOnly?"View":"Edit")},[()=>Dl(g(Q))]),iA(E,u)}),gA(B,2).__click=[cJA,e],Ee(()=>Et(c,g(o))),iA(t,r),at()}H3(["click"]);vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-column-header.svelte-fzj761 { + background: none; + border: none; + font-family: inherit; + font-size: inherit; + color: inherit; + display: flex; + gap: var(--jse-padding, 10px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); + width: 100%; +} +.jse-column-header.svelte-fzj761:hover { + background: var(--jse-table-header-background-highlight, #e8e8e8); +} +.jse-column-header.svelte-fzj761:not(.jse-column-header.jse-readonly) { + cursor: pointer; +}`);var IJA=pA('');vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-table-mode.svelte-u14cgx { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: var(--jse-background-color, #fff); + min-width: 0; + min-height: 0; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-text-color, #4d4d4d); + line-height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-table-mode.no-main-menu.svelte-u14cgx { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-search-box-container:where(.svelte-u14cgx) { + position: relative; + height: 0; + top: calc(var(--jse-line-height, calc(1em + 4px)) + 2 * var(--jse-padding, 10px)); + margin-right: calc(var(--jse-padding, 10px) + 20px); + margin-left: var(--jse-padding, 10px); + text-align: right; + z-index: 3; +} +.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) { + position: fixed; + right: 0; + top: 0; + width: 0; + height: 0; +} +.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) .jse-hidden-input:where(.svelte-u14cgx) { + width: 0; + height: 0; + padding: 0; + border: 0; + outline: none; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) { + flex: 1; + align-items: flex-start; + flex-direction: column; + display: flex; + overflow: auto; + overflow-anchor: none; + scrollbar-gutter: stable; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) { + border-collapse: collapse; + border-spacing: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-start-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx), +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { + margin: 0; + padding: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-search-box-background:where(.svelte-u14cgx) { + background: var(--jse-table-header-background, #f5f5f5); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { + padding-bottom: var(--jse-padding, 10px); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx):hover { + background-color: var(--jse-table-row-odd-background, rgba(0, 0, 0, 0.05)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) { + padding: 0 var(--jse-padding, 10px) 0 0; + vertical-align: top; + white-space: nowrap; + height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx), .jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { + font-weight: normal; + text-align: left; + color: var(--jse-text-readonly, #8d8d8d); + background: var(--jse-table-header-background, #f5f5f5); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) { + padding: 0; + position: sticky; + top: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) .jse-table-root-error:where(.svelte-u14cgx) { + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { + padding: 0 var(--jse-padding, 10px) 0 calc(0.5 * var(--jse-padding, 10px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx) { + display: inline-block; + cursor: var(--jse-contents-cursor, pointer); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx):hover { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer.jse-selected-value:where(.svelte-u14cgx) { + background: var(--jse-selection-background-color, #d3d3d3); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-context-menu-anchor:where(.svelte-u14cgx) { + display: inline-flex; + position: relative; + vertical-align: top; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) { + align-items: unset; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading-space:where(.svelte-u14cgx) { + flex: 1; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading:where(.svelte-u14cgx) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +}`);var CJA=pA('
      '),dJA=pA(''),BJA=pA(''),EJA=pA(' '),hJA=pA('
      '),QJA=pA('
      '),uJA=pA(''),fJA=pA(''),mJA=pA('
      ',1),pJA=pA(" ",1),wJA=pA(' ',1),DJA=pA('
      loading...
      '),yJA=pA('
      ',1);function vJA(t,e){st(e,!1);var A=X(void 0,!0),i=X(void 0,!0),n=X(void 0,!0),o=wr("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=H1("absolute-popup"),a=ZsA(),c=n1(),l=n1(),I=typeof window>"u";o("isSSR:",I);var C=k(e,"readOnly",9),d=k(e,"externalContent",9),B=k(e,"externalSelection",9),E=k(e,"history",9),Q=k(e,"truncateTextSize",9),u=k(e,"mainMenuBar",9),v=k(e,"escapeControlCharacters",9),L=k(e,"escapeUnicodeCharacters",9),x=k(e,"flattenColumns",9),y=k(e,"parser",9),F=k(e,"parseMemoizeOne",9),U=k(e,"validator",9),T=k(e,"validationParser",9),N=k(e,"indentation",9),K=k(e,"onChange",9),H=k(e,"onChangeMode",9),j=k(e,"onSelect",9),IA=k(e,"onUndo",9),lA=k(e,"onRedo",9),uA=k(e,"onRenderValue",9),p=k(e,"onRenderMenu",9),V=k(e,"onRenderContextMenu",9),cA=k(e,"onFocus",9),aA=k(e,"onBlur",9),jA=k(e,"onSortModal",9),VA=k(e,"onTransformModal",9),ce=k(e,"onJSONEditorModal",9),EA=X(void 0,!0),sA=X(void 0,!0),TA=X(void 0,!0),Ke=X(void 0,!0),Re=X(void 0,!0);iG({onMount:ls,onDestroy:Tc,getWindow:()=>j3(g(sA)),hasFocus:()=>GA&&document.hasFocus()||J_(g(sA)),onFocus:()=>{oe=!0,cA()&&cA()()},onBlur:()=>{oe=!1,aA()&&aA()()}});var hA,eA=X(void 0,!0),RA=X(void 0,!0),oA=X(void 0,!0),ne=X(void 0,!0),h=X(void 0,!0),f=X(void 0,!0),w=X(!1,!0),D=X(!1,!0);function O(z){b(f,(hA=z)?GsA(g(eA),hA.items):void 0)}function Z(z){return q.apply(this,arguments)}function q(){return(q=yt(function*(z){b(DA,void 0),yield Yn(z)})).apply(this,arguments)}function CA(){b(w,!1),b(D,!1),Ye()}var kA=X(1e4,!0),KA=X([],!0),Ie=X(void 0,!0),GA=!1,oe=!1,M=X(!1,!0),G=X({},!0),Y=X(600,!0),AA=X(0,!0),dA=18;function WA(z){b(DA,z)}function Qe(z){g(DA)&&z!==void 0&&(Qs(z,SC(g(DA)))&&Qs(z,je(g(DA)))||(o("clearing selection: path does not exist anymore",g(DA)),b(DA,void 0)))}var yA=X(g(eA)!==void 0?I_({json:g(eA)}):void 0,!0),DA=X(F3(B())?B():void 0,!0),We=X(void 0,!0),be=X(!1,!0);function qA(z){if(!C()){o("onSortByHeader",z);var wA=z.sortDirection===ml.desc?-1:1;Ft(eaA(g(eA),[],z.path,wA),(ee,Me)=>({state:Me,sortedColumn:z}))}}ls(()=>{g(DA)&&Ho(je(g(DA)))});var It=X(void 0,!0);function Vi(z){if(z.json!==void 0||z.text!==void 0){var wA=g(eA)!==void 0&&z.json!==void 0;E().add({type:"tree",undo:{patch:wA?[{op:"replace",path:"",value:z.json}]:void 0,json:z.json,text:z.text,documentState:z.documentState,textIsRepaired:z.textIsRepaired,selection:Fg(z.selection),sortedColumn:z.sortedColumn},redo:{patch:wA?[{op:"replace",path:"",value:g(eA)}]:void 0,json:g(eA),text:g(RA),documentState:g(yA),textIsRepaired:g(be),selection:Fg(g(DA)),sortedColumn:g(We)}})}}var on=X([],!0),Hi=VB(WsA);function Ci(z,wA,ee,Me){OE(()=>{var ke;try{ke=Hi(z,wA,ee,Me)}catch(ze){ke=[{path:[],message:"Failed to validate: "+ze.message,severity:bl.warning}]}Ei(ke,g(on))||(o("validationErrors changed:",ke),b(on,ke))},ke=>o("validationErrors updated in ".concat(ke," ms")))}function Zi(){return o("validate"),g(oA)?{parseError:g(oA),isRepairable:!1}:(Ci(g(eA),U(),y(),T()),sn(g(on))?void 0:{validationErrors:g(on)})}function Qi(z,wA){if(o("patch",z,wA),g(eA)===void 0)throw new Error("Cannot apply patch: no JSON");var ee=g(eA),Me={json:void 0,text:g(RA),documentState:g(yA),selection:Fg(g(DA)),sortedColumn:g(We),textIsRepaired:g(be)},ke=_sA(g(eA),z),ze=DsA(g(eA),g(yA),z),Pe=BYA(g(We),z,g(KA)),qe=typeof wA=="function"?wA(ze.json,ze.documentState,g(DA)):void 0;return b(eA,qe?.json!==void 0?qe.json:ze.json),b(yA,qe?.state!==void 0?qe.state:ze.documentState),b(DA,qe?.selection!==void 0?qe.selection:g(DA)),b(We,qe?.sortedColumn!==void 0?qe.sortedColumn:Pe),b(RA,void 0),b(be,!1),b(ne,void 0),b(h,void 0),b(oA,void 0),E().add({type:"tree",undo:Be({patch:ke},Me),redo:{patch:z,json:void 0,text:void 0,documentState:g(yA),selection:Fg(g(DA)),sortedColumn:g(We),textIsRepaired:g(be)}}),{json:g(eA),previousJson:ee,undo:ke,redo:z}}function Ft(z,wA){o("handlePatch",z,wA);var ee={json:g(eA),text:g(RA)},Me=Qi(z,wA);return Tt(ee,Me),Me}function Tt(z,wA){if((z.json!==void 0||z?.text!==void 0)&&K()){if(g(RA)!==void 0){var ee={text:g(RA),json:void 0};K()(ee,z,{contentErrors:Zi(),patchResult:wA})}else if(g(eA)!==void 0){var Me={text:void 0,json:g(eA)};K()(Me,z,{contentErrors:Zi(),patchResult:wA})}}}function Ht(z){o("pasted json as text",z),b(ne,z)}function zi(z){o("pasted multiline text",{pastedText:z}),b(h,z)}function ui(z){var wA=parseInt(z[0],10),ee=[String(wA+1),...z.slice(1)];return Qs(g(eA),ee)?hi(ee):hi(z)}function Ye(){o("focus"),g(Ke)&&(g(Ke).focus(),g(Ke).select())}function Ai(z){b(AA,z.target.scrollTop)}function ei(){g(DA)||b(DA,function(){if(ao(g(eA))&&!sn(g(eA))&&!sn(g(KA)))return hi(["0",...g(KA)[0]])}())}function Oi(){if(g(be)&&g(eA)!==void 0){var z={json:g(eA),text:g(RA)},wA={json:g(eA),documentState:g(yA),selection:g(DA),sortedColumn:g(We),text:g(RA),textIsRepaired:g(be)};b(RA,void 0),b(be,!1),Qe(g(eA)),Vi(wA),Tt(z,void 0)}return{json:g(eA),text:g(RA)}}function Yn(z){var{scrollToWhenVisible:wA=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ee=g(w)?p3:0,Me=QrA(z,g(KA),G,dA),ke=Me-g(AA)+ee+dA,ze=Sn(z);if(o("scrollTo",{path:z,top:Me,scrollTop:g(AA),elem:ze}),!g(TA))return Promise.resolve();var Pe=g(TA).getBoundingClientRect();if(ze&&!wA){var qe=ze.getBoundingClientRect();if(qe.bottom>Pe.top&&qe.top{a(ze,{container:g(TA),offset:oi,duration:300,callback:()=>{Dn(z),xi()}})}:xi=>{a(ke,{container:g(TA),offset:oi,duration:300,callback:()=>{go(),Dn(z),xi()}})})}function Dn(z){var wA=Sn(z);if(wA&&g(TA)){var ee=g(TA).getBoundingClientRect(),Me=wA.getBoundingClientRect();if(Me.right>ee.right){var ke=Me.right-ee.right;lc(TA,g(TA).scrollLeft+=ke)}if(Me.leftoi){var xi=ke-oi;lc(TA,g(TA).scrollTop+=xi)}if(Mee2(z.slice(1),ze)),ke=Me?z.slice(0,1).concat(Me):z;return(wA=(ee=g(TA))===null||ee===void 0?void 0:ee.querySelector('td[data-path="'.concat(a_(ke),'"]')))!==null&&wA!==void 0?wA:void 0}function io(z){var wA,{anchor:ee,left:Me,top:ke,width:ze,height:Pe,offsetTop:qe,offsetLeft:oi,showTip:xi}=z,Di=function(rA){var{json:JA,documentState:Se,selection:pe,readOnly:me,onEditValue:ft,onEditRow:mt,onToggleEnforceString:ci,onCut:rn,onCopy:yi,onPaste:Rn,onRemove:bt,onDuplicateRow:Bo,onInsertBeforeRow:mn,onInsertAfterRow:Hn,onRemoveRow:ji}=rA,ht=JA!==void 0,Fi=!!pe,Qt=JA!==void 0&&pe?Fe(JA,je(pe)):void 0,At=ht&&(Ao(pe)||pr(pe)||dn(pe)),Ni=!me&&ht&&pe!==void 0&&ry(pe),Oo=Ni&&!zo(Qt),Dr=!me&&At,Eo=pe!==void 0&&Z0(JA,Se,je(pe));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>ft(),icon:ZI,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!Ni},width:"11em",items:[{type:"button",icon:ZI,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>ft(),disabled:!Ni},{type:"button",icon:Eo?xS:NS,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>ci(),disabled:!Oo}]},{type:"dropdown-button",main:{type:"button",onClick:()=>rn(!0),icon:VI,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Dr},width:"10em",items:[{type:"button",icon:VI,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>rn(!0),disabled:me||!At},{type:"button",icon:VI,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>rn(!1),disabled:me||!At}]},{type:"dropdown-button",main:{type:"button",onClick:()=>yi(!0),icon:S0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!At},width:"12em",items:[{type:"button",icon:S0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>yi(!1),disabled:!At},{type:"button",icon:S0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>yi(!1),disabled:!At}]},{type:"button",onClick:()=>Rn(),icon:LS,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:me||!Fi},{type:"button",onClick:()=>bt(),icon:o5,text:"Remove",title:"Remove selected contents (Delete)",disabled:me||!At}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>mt(),icon:ZI,text:"Edit row",title:"Edit the current row",disabled:me||!Fi||!ht},{type:"button",onClick:()=>Bo(),icon:US,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:me||!Fi||!ht},{type:"button",onClick:()=>mn(),icon:WI,text:"Insert before",title:"Insert a row before the current row",disabled:me||!Fi||!ht},{type:"button",onClick:()=>Hn(),icon:WI,text:"Insert after",title:"Insert a row after the current row",disabled:me||!Fi||!ht},{type:"button",onClick:()=>ji(),icon:o5,text:"Remove row",title:"Remove current row",disabled:me||!Fi||!ht}]}]}]}({json:g(eA),documentState:g(yA),selection:g(DA),readOnly:C(),onEditValue:Jn,onEditRow:hn,onToggleEnforceString:wo,onCut:Jt,onCopy:Ct,onPaste:bA,onRemove:$e,onDuplicateRow:Wi,onInsertBeforeRow:Tn,onInsertAfterRow:ii,onRemoveRow:Ri}),cn=(wA=V()(Di))!==null&&wA!==void 0?wA:Di;if(cn!==!1){var qr={left:Me,top:ke,offsetTop:qe,offsetLeft:oi,width:ze,height:Pe,anchor:ee,closeOnOuterClick:!0,onClose:()=>{GA=!1,Ye()}};GA=!0;var J=r(gaA,{tip:xi?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:cn,onRequestClose(){s(J),Ye()}},qr)}}function Wo(z){if(!Ma(g(DA)))if(z&&(z.stopPropagation(),z.preventDefault()),z&&z.type==="contextmenu"&&z.target!==g(Ke))io({left:z.clientX,top:z.clientY,width:O0,height:H0,showTip:!1});else{var wA,ee=(wA=g(TA))===null||wA===void 0?void 0:wA.querySelector(".jse-table-cell.jse-selected-value");if(ee)io({anchor:ee,offsetTop:2,width:O0,height:H0,showTip:!1});else{var Me,ke=(Me=g(TA))===null||Me===void 0?void 0:Me.getBoundingClientRect();ke&&io({top:ke.top+2,left:ke.left+2,width:O0,height:H0,showTip:!1})}}}function No(z){io({anchor:usA(z.target,"BUTTON"),offsetTop:0,width:O0,height:H0,showTip:!0})}function Jn(){if(!C()&&g(DA)){var z=je(g(DA));zo(Fe(g(eA),z))?ai(z):b(DA,hi(z))}}function hn(){!C()&&g(DA)&&ai(je(g(DA)).slice(0,1))}function wo(){if(!C()&&dn(g(DA))){var z=g(DA).path,wA=nt(z),ee=Fe(g(eA),z),Me=!Z0(g(eA),g(yA),z),ke=Me?String(ee):ah(String(ee),y());o("handleToggleEnforceString",{enforceString:Me,value:ee,updatedValue:ke}),Ft([{op:"replace",path:wA,value:ke}],(ze,Pe)=>({state:by(g(eA),Pe,z,{type:"value",enforceString:Me})}))}}function se(){return fi.apply(this,arguments)}function fi(){return(fi=yt(function*(){if(o("apply pasted json",g(ne)),g(ne)){var{onPasteAsJson:z}=g(ne);z(),setTimeout(Ye)}})).apply(this,arguments)}function bA(){return fe.apply(this,arguments)}function fe(){return(fe=yt(function*(){try{QA(yield navigator.clipboard.readText())}catch(z){console.error(z),b(M,!0)}})).apply(this,arguments)}function it(){return Gt.apply(this,arguments)}function Gt(){return(Gt=yt(function*(){o("apply pasted multiline text",g(h)),g(h)&&(QA(JSON.stringify(g(h))),setTimeout(Ye))})).apply(this,arguments)}function Xe(){o("clear pasted json"),b(ne,void 0),Ye()}function Ot(){o("clear pasted multiline text"),b(h,void 0),Ye()}function Pi(){H()(tr.text)}function Jt(z){return Ki.apply(this,arguments)}function Ki(){return(Ki=yt(function*(z){yield oaA({json:g(eA),selection:g(DA),indentation:z?N():void 0,readOnly:C(),parser:y(),onPatch:Ft})})).apply(this,arguments)}function Ct(){return ti.apply(this,arguments)}function ti(){return ti=yt(function*(){var z=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];g(eA)!==void 0&&(yield raA({json:g(eA),selection:g(DA),indentation:z?N():void 0,parser:y()}))}),ti.apply(this,arguments)}function $e(){aaA({json:g(eA),text:g(RA),selection:g(DA),keepSelection:!0,readOnly:C(),onChange:K(),onPatch:Ft})}function Nt(z){C()||(o("extract",{path:z}),Ft(xsA(g(eA),hi(z))))}function Wi(){(function(z){var{json:wA,selection:ee,columns:Me,readOnly:ke,onPatch:ze}=z;if(!ke&&wA!==void 0&&ee&&zE(ee)){var{rowIndex:Pe,columnIndex:qe}=Uc(je(ee),Me);vs("duplicate row",{rowIndex:Pe});var oi=[String(Pe)];ze(LsA(wA,[oi]),(xi,Di)=>({state:Di,selection:hi(yC({rowIndex:Pe({state:qr,selection:hi(yC({rowIndex:oi,columnIndex:qe},Me))}))}})({json:g(eA),selection:g(DA),columns:g(KA),readOnly:C(),onPatch:Ft})}function Ri(){(function(z){var{json:wA,selection:ee,columns:Me,readOnly:ke,onPatch:ze}=z;if(!ke&&wA!==void 0&&ee&&zE(ee)){var{rowIndex:Pe,columnIndex:qe}=Uc(je(ee),Me);vs("remove row",{rowIndex:Pe}),ze(ay([[String(Pe)]]),(oi,xi)=>{var Di=Pe0?Pe-1:void 0,cn=Di!==void 0?hi(yC({rowIndex:Di,columnIndex:qe},Me)):void 0;return vs("remove row new selection",{rowIndex:Pe,newRowIndex:Di,newSelection:cn}),{state:xi,selection:cn}})}})({json:g(eA),selection:g(DA),columns:g(KA),readOnly:C(),onPatch:Ft})}function dt(){return(dt=yt(function*(z){yield caA({char:z,selectInside:!1,json:g(eA),selection:g(DA),readOnly:C(),parser:y(),onPatch:Ft,onReplaceJson:_A,onSelect:WA})})).apply(this,arguments)}function zn(z){var wA;z.preventDefault(),QA((wA=z.clipboardData)===null||wA===void 0?void 0:wA.getData("text/plain"))}function QA(z){z!==void 0&&saA({clipboardText:z,json:g(eA),selection:g(DA),readOnly:C(),parser:y(),onPatch:Ft,onChangeText:Ce,onPasteMultilineText:zi,openRepairModal:Fn})}function _A(z,wA){var ee={json:g(eA),text:g(RA)},Me={json:g(eA),documentState:g(yA),selection:g(DA),sortedColumn:g(We),text:g(RA),textIsRepaired:g(be)},ke=cc(z,g(yA)),ze=typeof wA=="function"?wA(z,ke,g(DA)):void 0;b(eA,ze?.json!==void 0?ze.json:z),b(yA,ze?.state!==void 0?ze.state:ke),b(DA,ze?.selection!==void 0?ze.selection:g(DA)),b(We,void 0),b(RA,void 0),b(be,!1),b(oA,void 0),Qe(g(eA)),Vi(Me),Tt(ee,void 0)}function Ce(z,wA){o("handleChangeText");var ee={json:g(eA),text:g(RA)},Me={json:g(eA),documentState:g(yA),selection:g(DA),sortedColumn:g(We),text:g(RA),textIsRepaired:g(be)};try{b(eA,F()(z)),b(yA,cc(g(eA),g(yA))),b(RA,void 0),b(be,!1),b(oA,void 0)}catch(ze){try{b(eA,F()(yc(z))),b(yA,cc(g(eA),g(yA))),b(RA,z),b(be,!0),b(oA,void 0)}catch{b(eA,void 0),b(yA,void 0),b(RA,z),b(be,!1),b(oA,g(RA)!==""?XE(g(RA),ze.message||String(ze)):void 0)}}if(typeof wA=="function"){var ke=wA(g(eA),g(yA),g(DA));b(eA,ke?.json!==void 0?ke.json:g(eA)),b(yA,ke?.state!==void 0?ke.state:g(yA)),b(DA,ke?.selection!==void 0?ke.selection:g(DA))}Qe(g(eA)),Vi(Me),Tt(ee,void 0)}function Pt(z){o("select validation error",z),b(DA,hi(z.path)),Yn(z.path)}function Li(z){if(g(eA)!==void 0){var{id:wA,onTransform:ee,onClose:Me}=z,ke=z.rootPath||[];GA=!0,VA()({id:wA||l,json:g(eA),rootPath:ke||[],onTransform:ze=>{ee?ee({operations:ze,json:g(eA),transformedJson:Ba(g(eA),ze)}):(o("onTransform",ke,ze),Ft(ze))},onClose:()=>{GA=!1,setTimeout(Ye),Me&&Me()}})}}function ai(z){o("openJSONEditorModal",{path:z}),GA=!0,ce()({content:{json:Fe(g(eA),z)},path:z,onPatch:Ft,onClose:()=>{GA=!1,setTimeout(Ye)}})}function Fn(z,wA){b(Re,{text:z,onParse:ee=>P3(ee,Me=>O3(Me,y())),onRepair:lsA,onApply:wA,onClose:Ye})}function Co(){(function(z){C()||g(eA)===void 0||(GA=!0,jA()({id:c,json:g(eA),rootPath:z,onSort:wA=>{var{operations:ee,itemPath:Me,direction:ke}=wA;o("onSort",ee,z,Me,ke),Ft(ee,(ze,Pe)=>({state:Pe,sortedColumn:{path:Me,sortDirection:ke===-1?ml.desc:ml.asc}}))},onClose:()=>{GA=!1,setTimeout(Ye)}}))})([])}function Qn(){Li({rootPath:[]})}function un(z){o("openFind",{findAndReplace:z}),b(w,!1),b(D,!1),go(),b(w,!0),b(D,z)}function jt(){if(!C()&&E().canUndo){var z=E().undo();if(oy(z)){var wA={json:g(eA),text:g(RA)};b(eA,z.undo.patch?Ba(g(eA),z.undo.patch):z.undo.json),b(yA,z.undo.documentState),b(DA,z.undo.selection),b(We,z.undo.sortedColumn),b(RA,z.undo.text),b(be,z.undo.textIsRepaired),b(oA,void 0),o("undo",{item:z,json:g(eA)}),Tt(wA,z.undo.patch&&z.redo.patch?{json:g(eA),previousJson:wA.json,redo:z.undo.patch,undo:z.redo.patch}:void 0),Ye(),g(DA)&&Yn(je(g(DA)),{scrollToWhenVisible:!1})}else IA()(z)}}function Nn(){if(!C()&&E().canRedo){var z=E().redo();if(oy(z)){var wA={json:g(eA),text:g(RA)};b(eA,z.redo.patch?Ba(g(eA),z.redo.patch):z.redo.json),b(yA,z.redo.documentState),b(DA,z.redo.selection),b(We,z.redo.sortedColumn),b(RA,z.redo.text),b(be,z.redo.textIsRepaired),b(oA,void 0),o("redo",{item:z,json:g(eA)}),Tt(wA,z.undo.patch&&z.redo.patch?{json:g(eA),previousJson:wA.json,redo:z.redo.patch,undo:z.undo.patch}:void 0),Ye(),g(DA)&&Yn(je(g(DA)),{scrollToWhenVisible:!1})}else lA()(z)}}function ut(z){b(Y,z.getBoundingClientRect().height)}fA(()=>(W(v()),W(L())),()=>{b(EA,K_({escapeControlCharacters:v(),escapeUnicodeCharacters:L()}))}),fA(()=>g(w),()=>{(function(z){if(g(TA)){var wA=z?p3:-100;g(TA).scrollTo({top:lc(TA,g(TA).scrollTop+=wA),left:g(TA).scrollLeft})}})(g(w))}),fA(()=>W(d()),()=>{(function(z){var wA={json:g(eA)},ee=M3(z)?z.text!==g(RA):!Ei(wA.json,z.json);if(o("update external content",{isChanged:ee}),ee){var Me={json:g(eA),documentState:g(yA),selection:g(DA),sortedColumn:g(We),text:g(RA),textIsRepaired:g(be)};if(M3(z))try{b(eA,F()(z.text)),b(yA,cc(g(eA),g(yA))),b(RA,z.text),b(be,!1),b(oA,void 0)}catch(ke){try{b(eA,F()(yc(z.text))),b(yA,cc(g(eA),g(yA))),b(RA,z.text),b(be,!0),b(oA,void 0)}catch{b(eA,void 0),b(yA,void 0),b(RA,z.text),b(be,!1),b(oA,g(RA)!==""?XE(g(RA),ke.message||String(ke)):void 0)}}else b(eA,z.json),b(yA,cc(g(eA),g(yA))),b(RA,void 0),b(be,!1),b(oA,void 0);Qe(g(eA)),b(We,void 0),Vi(Me)}})(d())}),fA(()=>W(B()),()=>{(function(z){Ei(g(DA),z)||(o("applyExternalSelection",{selection:g(DA),externalSelection:z}),F3(z)&&b(DA,z))})(B())}),fA(()=>(g(KA),g(eA),W(x()),g(kA)),()=>{b(KA,ao(g(eA))?function(z,wA){var ee=new Set(wA.map(nt)),Me=new Set(z.map(nt));for(var ke of ee)Me.has(ke)||ee.delete(ke);for(var ze of Me)ee.has(ze)||ee.add(ze);return[...ee].map(da)}(gYA(g(eA),x(),g(kA)),g(KA)):[])}),fA(()=>(g(eA),g(KA)),()=>{b(Ie,!(!g(eA)||sn(g(KA))))}),fA(()=>(g(eA),g(kA)),()=>{b(A,Array.isArray(g(eA))&&g(eA).length>g(kA))}),fA(()=>(g(AA),g(Y),g(eA),g(w),p3),()=>{b(i,IYA(g(AA),g(Y),g(eA),G,dA,g(w)?p3:0))}),fA(()=>g(eA),()=>{g(eA),g(TA)&&g(TA).scrollTo({top:g(TA).scrollTop,left:g(TA).scrollLeft})}),fA(()=>g(DA),()=>{var z;z=g(DA),Ei(z,B())||(o("onSelect",z),j()(z))}),fA(()=>(W(C()),W(Q()),W(y()),g(EA),g(eA),g(yA),W(uA())),()=>{b(It,{mode:tr.table,readOnly:C(),truncateTextSize:Q(),parser:y(),normalization:g(EA),getJson:()=>g(eA),getDocumentState:()=>g(yA),findElement:Sn,findNextInside:ui,focus:Ye,onPatch:(z,wA)=>Ft(function(ee,Me){return ee.flatMap(ke=>{if(Q8(ke)){var ze=da(ke.path);if(ze.length>0){for(var Pe=[ke],qe=pi(ze);qe.length>0&&!Qs(Me,qe);)Pe.unshift({op:"add",path:nt(qe),value:{}}),qe=pi(qe);return Pe}}return ke})}(z,g(eA)),wA),onSelect:WA,onFind:un,onPasteJson:Ht,onRenderValue:uA()})}),fA(()=>(g(eA),W(U()),W(y()),W(T())),()=>{Ci(g(eA),U(),y(),T())}),fA(()=>(g(on),g(KA)),()=>{b(n,CYA(g(on),g(KA)))}),nn(),Rt(!0);var Xo=yJA();re("mousedown",q0,function(z){!ch(z.target,wA=>wA===g(sA))&&Ma(g(DA))&&(o("click outside the editor, exit edit mode"),b(DA,Fg(g(DA))),oe&&g(Ke)&&(g(Ke).focus(),g(Ke).blur()),o("blur (outside editor)"),g(Ke)&&g(Ke).blur())});var Oe,ni=Bt(Xo),fn=$(ni),Yi=z=>{(function(wA,ee){st(ee,!1);var Me=k(ee,"containsValidArray",9),ke=k(ee,"readOnly",9),ze=k(ee,"showSearch",13,!1),Pe=k(ee,"history",9),qe=k(ee,"onSort",9),oi=k(ee,"onTransform",9),xi=k(ee,"onContextMenu",9),Di=k(ee,"onUndo",9),cn=k(ee,"onRedo",9),qr=k(ee,"onRenderMenu",9);function J(){ze(!ze())}var rA=X(void 0,!0),JA=X(void 0,!0);fA(()=>(W(ke()),W(qe()),W(Me()),W(oi()),W(xi()),W(Di()),W(Pe()),W(cn())),()=>{b(rA,ke()?[{type:"space"}]:[{type:"button",icon:Vu,title:"Sort",className:"jse-sort",onClick:qe(),disabled:ke()||!Me()},{type:"button",icon:Pu,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:oi(),disabled:ke()||!Me()},{type:"button",icon:Zu,title:"Search (Ctrl+F)",className:"jse-search",onClick:J,disabled:!Me()},{type:"button",icon:_S,title:H_,className:"jse-contextmenu",onClick:xi()},{type:"separator"},{type:"button",icon:s5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:Di(),disabled:!Pe().canUndo},{type:"button",icon:r5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:cn(),disabled:!Pe().canRedo},{type:"space"}])}),fA(()=>(W(qr()),g(rA)),()=>{b(JA,qr()(g(rA))||g(rA))}),nn(),Rt(!0),Ly(wA,{get items(){return g(JA)}}),at()})(z,{get containsValidArray(){return g(Ie)},get readOnly(){return C()},get history(){return E()},onSort:Co,onTransform:Qn,onUndo:jt,onRedo:Nn,onContextMenu:No,get onRenderMenu(){return p()},get showSearch(){return g(w)},set showSearch(wA){b(w,wA)},$$legacy:!0})};MA(fn,z=>{u()&&z(Yi)});var ir=gA(fn,2),Xi=z=>{var wA=wJA(),ee=Bt(wA),Me=$(ee);Me.readOnly=!0,to(Me,qe=>b(Ke,qe),()=>g(Ke));var ke=gA(ee,2),ze=qe=>{var oi=mJA(),xi=Bt(oi);taA($(xi),{get json(){return g(eA)},get documentState(){return g(yA)},get parser(){return y()},get showSearch(){return g(w)},get showReplace(){return g(D)},get readOnly(){return C()},get columns(){return g(KA)},onSearch:O,onFocus:Z,onPatch:Ft,onClose:CA});var Di=gA(xi,2),cn=$(Di),qr=$(cn),J=$(qr),rA=$(J),JA=$(rA),Se=At=>{var Ni=po(),Oo=PA(()=>{var Po;return ON([],(Po=g(n))===null||Po===void 0?void 0:Po.root)}),Dr=Bt(Ni),Eo=Po=>{var Vr=CJA();VE($(Vr),{get validationError(){return g(Oo)},onExpand:Kc}),iA(Po,Vr)};MA(Dr,Po=>{g(Oo)&&Po(Eo)}),iA(At,Ni)};MA(JA,At=>{var Ni;sn((Ni=g(n))===null||Ni===void 0?void 0:Ni.root)||At(Se)});var pe=gA(rA);Fo(pe,1,()=>g(KA),Zo,(At,Ni)=>{var Oo=dJA();(function(Dr,Eo){st(Eo,!1);var Po=X(void 0,!0),Vr=X(void 0,!0),o2=X(void 0,!0),xa=k(Eo,"path",9),Oc=k(Eo,"sortedColumn",9),Gl=k(Eo,"readOnly",9),Pc=k(Eo,"onSort",9);fA(()=>(W(xa()),Dl),()=>{b(Po,sn(xa())?"values":Dl(xa()))}),fA(()=>(W(Oc()),W(xa())),()=>{var Go;b(Vr,Oc()&&Ei(xa(),(Go=Oc())===null||Go===void 0?void 0:Go.path)?Oc().sortDirection:void 0)}),fA(()=>(g(Vr),JoA),()=>{b(o2,g(Vr)?JoA[g(Vr)]:void 0)}),nn(),Rt(!0);var Ur,Ss=tJA(),Fa=$(Ss),jg=$(Fa),Na=gA(Fa,2),Do=Go=>{var jo=eJA(),qg=$(jo),vh=PA(()=>g(Vr)===ml.asc?k0:yW);Si(qg,{get data(){return g(vh)}}),Ee(()=>en(jo,"title","Currently sorted in ".concat(g(o2)," order"))),iA(Go,jo)};MA(Na,Go=>{g(Vr)!==void 0&&Go(Do)}),Ee((Go,jo)=>{Ur=xt(Ss,1,"jse-column-header svelte-2i3vdx",null,Ur,Go),en(Ss,"title",Gl()?g(Po):g(Po)+" (Click to sort the data by this column)"),Et(jg,jo)},[()=>({"jse-readonly":Gl()}),()=>S3(g(Po),50)],PA),re("click",Ss,function(){Gl()||Pc()({path:xa(),sortDirection:g(Vr)===ml.asc?ml.desc:ml.asc})}),iA(Dr,Ss),at()})($(Oo),{get path(){return g(Ni)},get sortedColumn(){return g(We)},get readOnly(){return C()},onSort:qA}),iA(At,Oo)});var me=gA(pe),ft=At=>{var Ni=BJA(),Oo=$(Ni),Dr=PA(()=>Array.isArray(g(eA))?g(eA).length:0);(function(Eo,Po){st(Po,!1);var Vr=k(Po,"count",9),o2=k(Po,"maxSampleCount",9),xa=k(Po,"readOnly",9),Oc=k(Po,"onRefresh",9);Rt(!0);var Gl,Pc=IJA();Si($(Pc),{data:xW}),Ee(Ur=>{Gl=xt(Pc,1,"jse-column-header svelte-fzj761",null,Gl,Ur),en(Pc,"title","The Columns are created by sampling ".concat(o2()," items out of ").concat(Vr(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":xa()})],PA),re("click",Pc,()=>Oc()()),iA(Eo,Pc),at()})(Oo,{get count(){return g(Dr)},get maxSampleCount(){return g(kA)},get readOnly(){return C()},onRefresh:()=>b(kA,1/0)}),iA(At,Ni)};MA(me,At=>{g(A)&&At(ft)});var mt,ci,rn=gA(J),yi=$(rn),Rn=gA(rn);Fo(Rn,1,()=>g(i).visibleItems,Zo,(At,Ni,Oo)=>{var Dr=fJA(),Eo=PA(()=>g(i).startIndex+Oo),Po=PA(()=>g(n).rows[g(Eo)]),Vr=PA(()=>{var Ur;return ON([String(g(Eo))],(Ur=g(Po))===null||Ur===void 0?void 0:Ur.row)}),o2=PA(()=>kC(g(eA),g(f),[String(g(Eo))])),xa=$(Dr);$rA(xa,()=>g(Eo),Ur=>{var Ss=EJA(),Fa=$(Ss),jg=gA(Fa),Na=Do=>{VE(Do,{get validationError(){return g(Vr)},onExpand:Kc})};MA(jg,Do=>{g(Vr)&&Do(Na)}),bs(Ss,(Do,Go)=>OD?.(Do,Go),()=>Do=>function(Go,jo){G[jo]=Go.getBoundingClientRect().height}(Do,g(Eo))),Ee(()=>{var Do;return Et(Fa,"".concat((Do=g(Eo))!==null&&Do!==void 0?Do:""," "))}),iA(Ur,Ss)});var Oc=gA(xa);Fo(Oc,1,()=>g(KA),Zo,(Ur,Ss,Fa,jg)=>{var Na,Do=QJA(),Go=PA(()=>[String(g(Eo))].concat(g(Ss))),jo=PA(()=>Fe(g(Ni),g(Ss))),qg=PA(()=>dn(g(DA))&&e2(g(DA).path,g(Go))),vh=PA(()=>{var $o;return($o=g(Po))===null||$o===void 0?void 0:$o.columns[Fa]}),ed=PA(()=>ON(g(Go),g(vh))),bh=$(Do),td=$(bh),Mh=$o=>{var dc=PA(()=>E_(kC(g(Ni),g(o2),g(Ss)))),kh=PA(()=>!!g(dc)&&g(dc).some(Z1=>Z1.active)),Sh=PA(()=>!sn(g(dc)));(function(Z1,Zr){st(Zr,!1);var Rh=k(Zr,"path",9),tgA=k(Zr,"value",9),igA=k(Zr,"parser",9),ngA=k(Zr,"isSelected",9),ogA=k(Zr,"containsSearchResult",9),rgA=k(Zr,"containsActiveSearchResult",9),sgA=k(Zr,"onEdit",9);Rt(!0);var SU,kf=AJA(),agA=$(kf);Ee((Lh,cgA)=>{SU=xt(kf,1,"jse-inline-value svelte-h57m0p",null,SU,Lh),Et(agA,cgA)},[()=>({"jse-selected":ngA(),"jse-highlight":ogA(),"jse-active":rgA()}),()=>{var Lh;return S3((Lh=igA().stringify(tgA()))!==null&&Lh!==void 0?Lh:"",50)}],PA),re("dblclick",kf,()=>sgA()(Rh())),iA(Z1,kf),at()})($o,{get path(){return g(Go)},get value(){return g(jo)},get parser(){return y()},get isSelected(){return g(qg)},get containsSearchResult(){return g(Sh)},get containsActiveSearchResult(){return g(kh)},onEdit:ai})},p7=$o=>{var dc=PA(()=>{var Zr;return(Zr=kC(g(eA),g(f),g(Go)))===null||Zr===void 0?void 0:Zr.searchResults}),kh=PA(()=>g(jo)!==void 0?g(jo):""),Sh=PA(()=>Z0(g(eA),g(yA),g(Go))),Z1=PA(()=>g(qg)?g(DA):void 0);AaA($o,{get path(){return g(Go)},get value(){return g(kh)},get enforceString(){return g(Sh)},get selection(){return g(Z1)},get searchResultItems(){return g(dc)},get context(){return g(It)}})};MA(td,$o=>{zo(g(jo))?$o(Mh):$o(p7,!1)});var w7=gA(td),D7=$o=>{var dc=hJA();R1($(dc),{selected:!0,onContextMenu:io}),iA($o,dc)};MA(w7,$o=>{C()||!g(qg)||Ma(g(DA))||$o(D7)});var Ul=gA(bh,2),V1=$o=>{VE($o,{get validationError(){return g(ed)},onExpand:Kc})};MA(Ul,$o=>{g(ed)&&$o(V1)}),Ee(($o,dc)=>{en(Do,"data-path",$o),Na=xt(bh,1,"jse-value-outer svelte-u14cgx",null,Na,dc)},[()=>a_(g(Go)),()=>({"jse-selected-value":g(qg)})],PA),iA(Ur,Do)});var Gl=gA(Oc),Pc=Ur=>{iA(Ur,uJA())};MA(Gl,Ur=>{g(A)&&Ur(Pc)}),iA(At,Dr)});var bt,Bo=$(gA(Rn));to(Di,At=>b(TA,At),()=>g(TA)),bs(Di,(At,Ni)=>OD?.(At,Ni),()=>ut),Nr(()=>re("scroll",Di,Ai));var mn=gA(Di,2),Hn=At=>{var Ni=PA(()=>"You pasted a JSON ".concat(Array.isArray(g(ne).contents)?"array":"object"," as text"));Cc(At,{type:"info",get message(){return g(Ni)},actions:[{icon:M0,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:se},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Xe}]})};MA(mn,At=>{g(ne)&&At(Hn)});var ji=gA(mn,2),ht=At=>{Cc(At,{type:"info",message:"Multiline text was pasted as array",actions:[{icon:M0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:it},{text:"Leave as is",title:"Keep the pasted array",onClick:Ot}]})};MA(ji,At=>{g(h)&&At(ht)});var Fi=gA(ji,2),Qt=At=>{var Ni=PA(()=>C()?[]:[{icon:a5,text:"Ok",title:"Accept the repaired document",onClick:Oi},{icon:ju,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Pi}]);Cc(At,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return g(Ni)},onClose:Ye})};MA(Fi,At=>{g(be)&&At(Qt)}),nG(gA(Fi,2),{get validationErrors(){return g(on)},selectError:Pt}),Ee(At=>{mt=xt(rn,1,"jse-table-invisible-start-section svelte-u14cgx",null,mt,At),en(yi,"colspan",g(KA).length),ci=vl(yi,"",ci,{height:g(i).startHeight+"px"}),en(Bo,"colspan",g(KA).length),bt=vl(Bo,"",bt,{height:g(i).endHeight+"px"})},[()=>({"jse-search-box-background":g(w)})],PA),iA(qe,oi)},Pe=(qe,oi)=>{var xi=cn=>{var qr=pJA(),J=Bt(qr),rA=PA(()=>C()?[]:[{icon:ju,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Pi}]);Cc(J,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return g(rA)}}),laA(gA(J,2),{get text(){return g(RA)},get json(){return g(eA)},get indentation(){return N()},get parser(){return y()}}),iA(cn,qr)},Di=cn=>{gJA(cn,{get text(){return g(RA)},get json(){return g(eA)},get readOnly(){return C()},get parser(){return y()},openJSONEditorModal:ai,extractPath:Nt,get onChangeMode(){return H()},onClick:()=>{Ye()}})};MA(qe,cn=>{g(oA)&&g(RA)!==void 0&&g(RA)!==""?cn(xi):cn(Di,!1)},oi)};MA(ke,qe=>{g(Ie)?qe(ze):qe(Pe,!1)}),re("paste",Me,zn),iA(z,wA)},ks=z=>{iA(z,DJA())};MA(ir,z=>{I?z(ks,!1):z(Xi)}),to(ni,z=>b(sA,z),()=>g(sA));var La=gA(ni,2),_o=z=>{XsA(z,{onClose:()=>b(M,!1)})};MA(La,z=>{g(M)&&z(_o)});var yn=gA(La,2),Gr=z=>{$sA(z,U1(()=>g(Re),{onClose:()=>{var wA;(wA=g(Re))===null||wA===void 0||wA.onClose(),b(Re,void 0)}}))};return MA(yn,z=>{g(Re)&&z(Gr)}),Ee(z=>Oe=xt(ni,1,"jse-table-mode svelte-u14cgx",null,Oe,z),[()=>({"no-main-menu":!u()})],PA),re("mousedown",ni,function(z){if(z.buttons===1||z.buttons===2){var wA=z.target;wA.isContentEditable||Ye();var ee=fsA(wA);if(ee){if(Ma(g(DA))&&N3(g(eA),g(DA),ee))return;b(DA,hi(ee)),z.preventDefault()}}}),re("keydown",ni,function(z){var wA=A2(z);if(o("keydown",{combo:wA,key:z.key}),wA==="Ctrl+X"&&(z.preventDefault(),Jt(!0)),wA==="Ctrl+Shift+X"&&(z.preventDefault(),Jt(!1)),wA==="Ctrl+C"&&(z.preventDefault(),Ct(!0)),wA==="Ctrl+Shift+C"&&(z.preventDefault(),Ct(!1)),wA==="Ctrl+D"&&(z.preventDefault(),Wi()),wA!=="Delete"&&wA!=="Backspace"||(z.preventDefault(),$e()),wA==="Insert"&&z.preventDefault(),wA==="Ctrl+A"&&z.preventDefault(),wA==="Ctrl+Q"&&Wo(z),wA==="ArrowLeft"&&(z.preventDefault(),ei(),g(DA))){var ee=function(oi,xi){var{rowIndex:Di,columnIndex:cn}=Uc(je(xi),oi);return cn>0?hi(yC({rowIndex:Di,columnIndex:cn-1},oi)):xi}(g(KA),g(DA));b(DA,ee),Ho(je(ee))}if(wA==="ArrowRight"&&(z.preventDefault(),ei(),g(DA))){var Me=function(oi,xi){var{rowIndex:Di,columnIndex:cn}=Uc(je(xi),oi);return cn0?hi(yC({rowIndex:Di-1,columnIndex:cn},oi)):xi}(g(KA),g(DA));b(DA,ke),Ho(je(ke))}if(wA==="ArrowDown"&&(z.preventDefault(),ei(),g(DA))){var ze=function(oi,xi,Di){var{rowIndex:cn,columnIndex:qr}=Uc(je(Di),xi);return cnb(EA,M)}).get()),sA=X(a());function TA(M){if(OoA(M)){b(sA,M.undo.mode);var G=g(EA).items(),Y=G.findIndex(dA=>dA===M),AA=Y!==-1?G[Y-1]:void 0;ce("handleUndo",{index:Y,item:M,items:G,prevItem:AA}),AA&&i(AA.redo.selection),U()(g(sA))}}function Ke(M){if(OoA(M)){b(sA,M.redo.mode);var G=g(EA).items(),Y=G.findIndex(dA=>dA===M),AA=Y!==-1?G[Y+1]:void 0;ce("handleRedo",{index:Y,item:M,items:G,nextItem:AA}),AA&&i(AA.undo.selection),U()(g(sA))}}var Re=X(),hA={type:"separator"},eA=X(),RA=X();function oA(M){if(g(aA))return g(aA).patch(M);if(g(jA))return g(jA).patch(M);if(g(VA))return g(VA).patch(M);throw new Error('Method patch is not available in mode "'.concat(g(sA),'"'))}function ne(M,G){if(g(aA))return g(aA).expand(M,G);throw new Error('Method expand is not available in mode "'.concat(g(sA),'"'))}function h(M,G){if(g(aA))return g(aA).collapse(M,G);throw new Error('Method collapse is not available in mode "'.concat(g(sA),'"'))}function f(M){if(g(VA))g(VA).openTransformModal(M);else if(g(aA))g(aA).openTransformModal(M);else{if(!g(jA))throw new Error('Method transform is not available in mode "'.concat(g(sA),'"'));g(jA).openTransformModal(M)}}function w(){if(g(VA))return g(VA).validate();if(g(aA))return g(aA).validate();if(g(jA))return g(jA).validate();throw new Error('Method validate is not available in mode "'.concat(g(sA),'"'))}function D(){return g(aA)?g(aA).acceptAutoRepair():A()}function O(M){if(g(aA))return g(aA).scrollTo(M);if(g(jA))return g(jA).scrollTo(M);throw new Error('Method scrollTo is not available in mode "'.concat(g(sA),'"'))}function Z(M){if(g(aA))return g(aA).findElement(M);if(g(jA))return g(jA).findElement(M);throw new Error('Method findElement is not available in mode "'.concat(g(sA),'"'))}function q(){g(VA)?g(VA).focus():g(aA)?g(aA).focus():g(jA)&&g(jA).focus()}function CA(){return kA.apply(this,arguments)}function kA(){return(kA=yt(function*(){g(VA)&&(yield g(VA).refresh())})).apply(this,arguments)}fA(()=>W(a()),()=>{(function(M){if(M!==g(sA)){var G={type:"mode",undo:{mode:g(sA),selection:void 0},redo:{mode:M,selection:void 0}};g(sA)==="text"&&g(VA)&&g(VA).flush(),ce("add history item",G),g(EA).add(G),b(sA,M)}})(a())}),fA(()=>(g(sA),W(U())),()=>{b(Re,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(g(sA),")"),className:"jse-group-button jse-first"+(g(sA)===tr.text?" jse-selected":""),onClick:()=>U()(tr.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(g(sA),")"),className:"jse-group-button "+(g(sA)===tr.tree?" jse-selected":""),onClick:()=>U()(tr.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(g(sA),")"),className:"jse-group-button jse-last"+(g(sA)===tr.table?" jse-selected":""),onClick:()=>U()(tr.table)}])}),fA(()=>(g(Re),W(H()),g(sA),W(y()),W(n())),()=>{b(eA,M=>{var G=psA(M[0])?g(Re).concat(M):g(Re).concat(hA,M),Y=Tu(G);return H()(G,{mode:g(sA),modal:y(),readOnly:n()})||Y})}),fA(()=>(W(j()),g(sA),W(y()),W(n()),W(i())),()=>{b(RA,M=>{var G,Y=Tu(M);return(G=j()(M,{mode:g(sA),modal:y(),readOnly:n(),selection:i()}))!==null&&G!==void 0?G:!n()&&Y})}),nn(),Rt();var KA=po(),Ie=Bt(KA),GA=M=>{to($YA(M,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return g(EA)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return I()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return B()},get parser(){return Q()},get validator(){return v()},get validationParser(){return L()},get onChange(){return F()},get onChangeMode(){return U()},get onSelect(){return T()},onUndo:TA,onRedo:Ke,get onError(){return IA()},get onFocus(){return lA()},get onBlur(){return uA()},get onRenderMenu(){return g(eA)},get onSortModal(){return p()},get onTransformModal(){return V()},$$legacy:!0}),G=>b(VA,G),()=>g(VA))},oe=(M,G)=>{var Y=dA=>{to(vJA(dA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return g(EA)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get flattenColumns(){return E()},get parser(){return Q()},get parseMemoizeOne(){return u()},get validator(){return v()},get validationParser(){return L()},get indentation(){return o()},get onChange(){return F()},get onChangeMode(){return U()},get onSelect(){return T()},onUndo:TA,onRedo:Ke,get onRenderValue(){return N()},get onFocus(){return lA()},get onBlur(){return uA()},get onRenderMenu(){return g(eA)},get onRenderContextMenu(){return g(RA)},get onSortModal(){return p()},get onTransformModal(){return V()},get onJSONEditorModal(){return cA()},$$legacy:!0}),WA=>b(jA,WA),()=>g(jA))},AA=dA=>{to(M_(dA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return g(EA)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return l()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get parser(){return Q()},get parseMemoizeOne(){return u()},get validator(){return v()},get validationParser(){return L()},get pathParser(){return x()},get onError(){return IA()},get onChange(){return F()},get onChangeMode(){return U()},get onSelect(){return T()},onUndo:TA,onRedo:Ke,get onRenderValue(){return N()},get onClassName(){return K()},get onFocus(){return lA()},get onBlur(){return uA()},get onRenderMenu(){return g(eA)},get onRenderContextMenu(){return g(RA)},get onSortModal(){return p()},get onTransformModal(){return V()},get onJSONEditorModal(){return cA()},$$legacy:!0}),WA=>b(aA,WA),()=>g(aA))};MA(M,dA=>{g(sA)===tr.table?dA(Y):dA(AA,!1)},G)};return MA(Ie,M=>{g(sA)===tr.text||String(g(sA))==="code"?M(GA):M(oe,!1)}),iA(t,KA),kt(e,"patch",oA),kt(e,"expand",ne),kt(e,"collapse",h),kt(e,"transform",f),kt(e,"validate",w),kt(e,"acceptAutoRepair",D),kt(e,"scrollTo",O),kt(e,"findElement",Z),kt(e,"focus",q),kt(e,"refresh",CA),at({patch:oA,expand:ne,collapse:h,transform:f,validate:w,acceptAutoRepair:D,scrollTo:O,findElement:Z,focus:q,refresh:CA})}vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-wrapper.svelte-v0el4e { + flex: 1; + display: flex; + min-width: 0; + min-height: 0; + flex-direction: column; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) { + font-weight: bold; + display: block; + box-sizing: border-box; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) .jse-label-inner:where(.svelte-v0el4e) { + margin-top: calc(2 * var(--jse-padding, 10px)); + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); + box-sizing: border-box; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-modal-inline-editor:where(.svelte-v0el4e) { + flex: 1; + min-height: 150px; + min-width: 0; + max-width: 100%; + display: flex; + --jse-theme-color: var(--jse-modal-editor-theme-color, #707070); + --jse-theme-color-highlight: var(--jse-modal-editor-theme-color-highlight, #646464); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) { + gap: var(--jse-padding, 10px); + align-items: center; +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) .jse-error:where(.svelte-v0el4e) { + flex: 1; + color: var(--jse-error-color, #ee5341); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-secondary-background, #d3d3d3); + color: var(--jse-button-secondary-color, var(--jse-text-color, #4d4d4d)); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):hover { + background: var(--jse-button-secondary-background-highlight, #e1e1e1); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):disabled { + background: var(--jse-button-secondary-background-disabled, #9d9d9d); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e) { + border: var(--jse-input-border, 1px solid #d8dbdf); + outline: none; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: inherit; + background: var(--jse-input-background, var(--jse-background-color, #fff)); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):read-only { + background: var(--jse-input-background-readonly, transparent); +}`);var bJA=pA('
      '),MJA=pA(''),kJA=pA(''),SJA=pA(''),RJA=pA('
      Path
      Contents
      ',1),LJA=pA('
      '),xJA={};vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-contents.svelte-1v9c92j { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) { + width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) th:where(.svelte-1v9c92j), +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) td:where(.svelte-1v9c92j) { + text-align: left; + vertical-align: middle; + font-weight: normal; + padding-bottom: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-1v9c92j input.jse-path:where(.svelte-1v9c92j) { + width: 100%; + box-sizing: border-box; + padding: 5px 10px; + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: var(--jse-input-radius, 3px); + font-family: inherit; + font-size: inherit; + background: inherit; + background: var(--jse-input-background-readonly, transparent); + color: inherit; + outline: none; +} +.jse-modal-contents.svelte-1v9c92j .svelte-select input { + box-sizing: border-box; +} +.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) { + height: 200px; +} +.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) .jse-error:where(.svelte-1v9c92j) { + color: var(--jse-error-color, #ee5341); +}`);var KE=Dy(()=>xJA),FJA=pA('Property'),NJA=pA('
      '),_JA=pA('
      Path
      Direction
      ',1);vt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-main.svelte-57bmz4 { + width: 100%; + height: 100%; + min-width: 0; + min-height: 150px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + position: relative; + display: flex; + flex-direction: row; +} +.jse-main.svelte-57bmz4:not(.jse-focus) { + --jse-selection-background-color: var(--jse-selection-background-inactive-color, #e8e8e8); + --jse-context-menu-pointer-background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); +}`);var GJA=pA('
      ',1);function UJA(t,e){st(e,!1);var A=X(void 0,!0),i=wr("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=tr.tree,a=!0,c=!0,l=!0,I=!0,C=!1,d=!1,B=!0,E=JSON,Q=void 0,u=JSON,v={parse:qGA,stringify:Dl},L=[lGA],x=L[0].id,y=Kc,F=void 0,U=void 0,T=jGA,N=Kc,K=Kc,H=Kc,j=Kc,IA=se=>{console.error(se),alert(se.toString())},lA=Kc,uA=Kc,p=k(e,"content",13,n),V=k(e,"selection",13,o),cA=k(e,"readOnly",13,r),aA=k(e,"indentation",13,2),jA=k(e,"tabSize",13,4),VA=k(e,"truncateTextSize",13,1e3),ce=k(e,"mode",13,s),EA=k(e,"mainMenuBar",13,a),sA=k(e,"navigationBar",13,c),TA=k(e,"statusBar",13,l),Ke=k(e,"askToFormat",13,I),Re=k(e,"escapeControlCharacters",13,C),hA=k(e,"escapeUnicodeCharacters",13,d),eA=k(e,"flattenColumns",13,B),RA=k(e,"parser",13,E),oA=k(e,"validator",13,Q),ne=k(e,"validationParser",13,u),h=k(e,"pathParser",13,v),f=k(e,"queryLanguages",13,L),w=k(e,"queryLanguageId",13,x),D=k(e,"onChangeQueryLanguage",13,y),O=k(e,"onChange",13,F),Z=k(e,"onSelect",13,U),q=k(e,"onRenderValue",13,T),CA=k(e,"onClassName",13,N),kA=k(e,"onRenderMenu",13,K),KA=k(e,"onRenderContextMenu",13,H),Ie=k(e,"onChangeMode",13,j),GA=k(e,"onError",13,IA),oe=k(e,"onFocus",13,lA),M=k(e,"onBlur",13,uA),G=X(TE(),!0),Y=X(!1,!0),AA=X(void 0,!0),dA=X(void 0,!0),WA=X(void 0,!0),Qe=X(void 0,!0),yA=X(RA(),!0);function DA(){return p()}function We(se){i("set");var fi=MN(se);if(fi)throw new Error(fi);b(G,TE()),p(se),go()}function be(se){i("update");var fi=MN(se);if(fi)throw new Error(fi);p(se),go()}function qA(se){var fi=g(AA).patch(se);return go(),fi}function It(se){V(se),go()}function Vi(se,fi){g(AA).expand(se,fi),go()}function on(se){var fi=arguments.length>1&&arguments[1]!==void 0&&arguments[1];g(AA).collapse(se,fi),go()}function Hi(){var se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g(AA).transform(se),go()}function Ci(){return g(AA).validate()}function Zi(){var se=g(AA).acceptAutoRepair();return go(),se}function Qi(se){return Ft.apply(this,arguments)}function Ft(){return(Ft=yt(function*(se){yield g(AA).scrollTo(se)})).apply(this,arguments)}function Tt(se){return g(AA).findElement(se)}function Ht(){g(AA).focus(),go()}function zi(){return ui.apply(this,arguments)}function ui(){return(ui=yt(function*(){yield g(AA).refresh()})).apply(this,arguments)}function Ye(se){var fi,bA,fe,it,Gt,Xe,Ot,Pi,Jt,Ki,Ct,ti,$e,Nt,Wi,Tn,ii,Ri,dt,zn,QA,_A,Ce,Pt,Li,ai,Fn,Co,Qn,un,jt,Nn=Object.keys(se);for(var ut of Nn)switch(ut){case"content":p((fi=se[ut])!==null&&fi!==void 0?fi:n);break;case"selection":V((bA=se[ut])!==null&&bA!==void 0?bA:o);break;case"readOnly":cA((fe=se[ut])!==null&&fe!==void 0?fe:r);break;case"indentation":aA((it=se[ut])!==null&&it!==void 0?it:2);break;case"tabSize":jA((Gt=se[ut])!==null&&Gt!==void 0?Gt:4);break;case"truncateTextSize":VA((Xe=se[ut])!==null&&Xe!==void 0?Xe:1e3);break;case"mode":ce((Ot=se[ut])!==null&&Ot!==void 0?Ot:s);break;case"mainMenuBar":EA((Pi=se[ut])!==null&&Pi!==void 0?Pi:a);break;case"navigationBar":sA((Jt=se[ut])!==null&&Jt!==void 0?Jt:c);break;case"statusBar":TA((Ki=se[ut])!==null&&Ki!==void 0?Ki:l);break;case"askToFormat":Ke((Ct=se[ut])!==null&&Ct!==void 0?Ct:I);break;case"escapeControlCharacters":Re((ti=se[ut])!==null&&ti!==void 0?ti:C);break;case"escapeUnicodeCharacters":hA(($e=se[ut])!==null&&$e!==void 0?$e:d);break;case"flattenColumns":eA((Nt=se[ut])!==null&&Nt!==void 0?Nt:B);break;case"parser":RA((Wi=se[ut])!==null&&Wi!==void 0?Wi:E);break;case"validator":oA((Tn=se[ut])!==null&&Tn!==void 0?Tn:Q);break;case"validationParser":ne((ii=se[ut])!==null&&ii!==void 0?ii:u);break;case"pathParser":h((Ri=se[ut])!==null&&Ri!==void 0?Ri:v);break;case"queryLanguages":f((dt=se[ut])!==null&&dt!==void 0?dt:L);break;case"queryLanguageId":w((zn=se[ut])!==null&&zn!==void 0?zn:x);break;case"onChangeQueryLanguage":D((QA=se[ut])!==null&&QA!==void 0?QA:y);break;case"onChange":O((_A=se[ut])!==null&&_A!==void 0?_A:F);break;case"onRenderValue":q((Ce=se[ut])!==null&&Ce!==void 0?Ce:T);break;case"onClassName":CA((Pt=se[ut])!==null&&Pt!==void 0?Pt:N);break;case"onRenderMenu":kA((Li=se[ut])!==null&&Li!==void 0?Li:K);break;case"onRenderContextMenu":KA((ai=se[ut])!==null&&ai!==void 0?ai:H);break;case"onChangeMode":Ie((Fn=se[ut])!==null&&Fn!==void 0?Fn:j);break;case"onSelect":Z((Co=se[ut])!==null&&Co!==void 0?Co:U);break;case"onError":GA((Qn=se[ut])!==null&&Qn!==void 0?Qn:IA);break;case"onFocus":oe((un=se[ut])!==null&&un!==void 0?un:lA);break;case"onBlur":M((jt=se[ut])!==null&&jt!==void 0?jt:uA);break;default:Xo(ut)}function Xo(Oe){i('Unknown property "'.concat(Oe,'"'))}f().some(Oe=>Oe.id===w())||w(f()[0].id),go()}function Ai(){return ei.apply(this,arguments)}function ei(){return(ei=yt(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function Oi(se,fi,bA){p(se),O()&&O()(se,fi,bA)}function Yn(se){V(se),Z()&&Z()(Tu(se))}function Dn(){b(Y,!0),oe()&&oe()()}function Ho(){b(Y,!1),M()&&M()()}function Sn(se){return io.apply(this,arguments)}function io(){return(io=yt(function*(se){ce()!==se&&(ce(se),go(),Ht(),Ie()(se))})).apply(this,arguments)}function Wo(se){i("handleChangeQueryLanguage",se),w(se),D()(se)}function No(se){var{id:fi,json:bA,rootPath:fe,onTransform:it,onClose:Gt}=se;cA()||b(Qe,{id:fi,json:bA,rootPath:fe,indentation:aA(),truncateTextSize:VA(),escapeControlCharacters:Re(),escapeUnicodeCharacters:hA(),parser:RA(),parseMemoizeOne:g(A),validationParser:ne(),pathParser:h(),queryLanguages:f(),queryLanguageId:w(),onChangeQueryLanguage:Wo,onRenderValue:q(),onRenderMenu:Xe=>kA()(Xe,{mode:ce(),modal:!0,readOnly:cA()}),onRenderContextMenu:Xe=>KA()(Xe,{mode:ce(),modal:!0,readOnly:cA(),selection:V()}),onClassName:CA(),onTransform:it,onClose:Gt})}function Jn(se){cA()||b(WA,se)}function hn(se){var{content:fi,path:bA,onPatch:fe,onClose:it}=se;i("onJSONEditorModal",{content:fi,path:bA}),b(dA,{content:fi,path:bA,onPatch:fe,readOnly:cA(),indentation:aA(),tabSize:jA(),truncateTextSize:VA(),mainMenuBar:EA(),navigationBar:sA(),statusBar:TA(),askToFormat:Ke(),escapeControlCharacters:Re(),escapeUnicodeCharacters:hA(),flattenColumns:eA(),parser:RA(),validator:void 0,validationParser:ne(),pathParser:h(),onRenderValue:q(),onClassName:CA(),onRenderMenu:kA(),onRenderContextMenu:KA(),onSortModal:Jn,onTransformModal:No,onClose:it})}function wo(se){se.stopPropagation()}return fA(()=>(W(RA()),g(yA),W(p()),TE),()=>{if(!IsA(RA(),g(yA))){if(i("parser changed, recreate editor"),k3(p())){var se=g(yA).stringify(p().json);p({json:se!==void 0?RA().parse(se):void 0})}b(yA,RA()),b(G,TE())}}),fA(()=>W(p()),()=>{var se=MN(p());se&&console.error("Error: "+se)}),fA(()=>W(V()),()=>{V()===null&&console.warn("selection is invalid: it is null but should be undefined")}),fA(()=>W(RA()),()=>{b(A,VB(RA().parse))}),fA(()=>W(ce()),()=>{i("mode changed to",ce())}),nn(),Rt(!0),c_(t,{children:(se,fi)=>{var bA,fe=GJA(),it=Bt(fe);$rA($(it),()=>g(G),Ct=>{to(urA(Ct,{get externalMode(){return ce()},get content(){return p()},get selection(){return V()},get readOnly(){return cA()},get indentation(){return aA()},get tabSize(){return jA()},get truncateTextSize(){return VA()},get statusBar(){return TA()},get askToFormat(){return Ke()},get mainMenuBar(){return EA()},get navigationBar(){return sA()},get escapeControlCharacters(){return Re()},get escapeUnicodeCharacters(){return hA()},get flattenColumns(){return eA()},get parser(){return RA()},get parseMemoizeOne(){return g(A)},get validator(){return oA()},get validationParser(){return ne()},get pathParser(){return h()},insideModal:!1,get onError(){return GA()},onChange:Oi,onChangeMode:Sn,onSelect:Yn,get onRenderValue(){return q()},get onClassName(){return CA()},onFocus:Dn,onBlur:Ho,get onRenderMenu(){return kA()},get onRenderContextMenu(){return KA()},onSortModal:Jn,onTransformModal:No,onJSONEditorModal:hn,$$legacy:!0}),ti=>b(AA,ti),()=>g(AA))});var Gt=gA(it,2),Xe=Ct=>{(function(ti,$e){var Nt,Wi;st($e,!1);var Tn=X(void 0,!0),ii=X(void 0,!0),Ri=X(void 0,!0),dt=X(void 0,!0),zn=wr("jsoneditor:SortModal"),QA=k($e,"id",9),_A=k($e,"json",9),Ce=k($e,"rootPath",9),Pt=k($e,"onSort",9),Li=k($e,"onClose",9),ai={value:1,label:"ascending"},Fn=[ai,{value:-1,label:"descending"}],Co="".concat(QA(),":").concat(nt(Ce())),Qn=X((Nt=KE()[Co])===null||Nt===void 0?void 0:Nt.selectedProperty,!0),un=X(((Wi=KE()[Co])===null||Wi===void 0?void 0:Wi.selectedDirection)||ai,!0),jt=X(void 0,!0);function Nn(){try{var Xo,Oe,ni;b(jt,void 0);var fn=((Xo=g(Qn))===null||Xo===void 0?void 0:Xo.value)||((Oe=g(dt))===null||Oe===void 0||(Oe=Oe[0])===null||Oe===void 0?void 0:Oe.value)||[],Yi=(ni=g(un))===null||ni===void 0?void 0:ni.value,ir=eaA(_A(),Ce(),fn,Yi);Pt()!==void 0&&Ce()!==void 0&&Pt()({operations:ir,rootPath:Ce(),itemPath:fn,direction:Yi}),Li()()}catch(Xi){b(jt,String(Xi))}}function ut(Xo){Xo.focus()}fA(()=>(W(_A()),W(Ce())),()=>{b(Tn,Fe(_A(),Ce()))}),fA(()=>g(Tn),()=>{b(ii,Array.isArray(g(Tn)))}),fA(()=>(g(ii),g(Tn)),()=>{b(Ri,g(ii)?r_(g(Tn)):void 0)}),fA(()=>(g(Ri),L1),()=>{b(dt,g(Ri)?g(Ri).map(L1):void 0)}),fA(()=>(KE(),g(Qn),g(un)),()=>{KE(KE()[Co]={selectedProperty:g(Qn),selectedDirection:g(un)}),zn("store state in memory",Co,KE()[Co])}),nn(),Rt(!0),U3(ti,{get onClose(){return Li()},className:"jse-sort-modal",children:(Xo,Oe)=>{var ni=_JA(),fn=Bt(ni),Yi=PA(()=>g(ii)?"Sort array items":"Sort object keys");dy(fn,{get title(){return g(Yi)},get onClose(){return Li()}});var ir=$(gA(fn,2)),Xi=gA($(ir)),ks=$(Xi),La=gA($(ks)),_o=$(La),yn=gA(ks),Gr=Pe=>{var qe=FJA(),oi=gA($(qe));bC($(oi),{showChevron:!0,get items(){return g(dt)},get value(){return g(Qn)},set value(xi){b(Qn,xi)},$$legacy:!0}),iA(Pe,qe)};MA(yn,Pe=>{var qe;g(ii)&&g(dt)&&((qe=g(dt))===null||qe===void 0?void 0:qe.length)>1&&Pe(Gr)});var z=gA(yn),wA=gA($(z));bC($(wA),{showChevron:!0,clearable:!1,items:Fn,get value(){return g(un)},set value(Pe){b(un,Pe)},$$legacy:!0});var ee=gA(ir,2),Me=$(ee),ke=Pe=>{var qe=NJA(),oi=$(qe);Ee(()=>Et(oi,g(jt))),iA(Pe,qe)};MA(Me,Pe=>{g(jt)&&Pe(ke)});var ze=$(gA(ee,2));Nr(()=>re("click",ze,Nn)),bs(ze,Pe=>ut?.(Pe)),Ee(Pe=>{var qe;GC(_o,Pe),ze.disabled=!!(g(ii)&&g(dt)&&((qe=g(dt))===null||qe===void 0?void 0:qe.length)>1)&&!g(Qn)},[()=>Ce()&&!sn(Ce())?Dl(Ce()):"(document root)"],PA),iA(Xo,ni)},$$slots:{default:!0}}),at()})(Ct,U1(()=>g(WA),{onClose:()=>{var ti;(ti=g(WA))===null||ti===void 0||ti.onClose(),b(WA,void 0)}}))};MA(Gt,Ct=>{g(WA)&&Ct(Xe)});var Ot=gA(Gt,2),Pi=Ct=>{YYA(Ct,U1(()=>g(Qe),{onClose:()=>{var ti;(ti=g(Qe))===null||ti===void 0||ti.onClose(),b(Qe,void 0)}}))};MA(Ot,Ct=>{g(Qe)&&Ct(Pi)});var Jt=gA(Ot,2),Ki=Ct=>{(function(ti,$e){st($e,!1);var Nt=X(void 0,!0),Wi=X(void 0,!0),Tn=X(void 0,!0),ii=X(void 0,!0),Ri=wr("jsoneditor:JSONEditorModal"),dt=k($e,"content",9),zn=k($e,"path",9),QA=k($e,"onPatch",9),_A=k($e,"readOnly",9),Ce=k($e,"indentation",9),Pt=k($e,"tabSize",9),Li=k($e,"truncateTextSize",9),ai=k($e,"mainMenuBar",9),Fn=k($e,"navigationBar",9),Co=k($e,"statusBar",9),Qn=k($e,"askToFormat",9),un=k($e,"escapeControlCharacters",9),jt=k($e,"escapeUnicodeCharacters",9),Nn=k($e,"flattenColumns",9),ut=k($e,"parser",9),Xo=k($e,"validator",9),Oe=k($e,"validationParser",9),ni=k($e,"pathParser",9),fn=k($e,"onRenderValue",9),Yi=k($e,"onClassName",9),ir=k($e,"onRenderMenu",9),Xi=k($e,"onRenderContextMenu",9),ks=k($e,"onSortModal",9),La=k($e,"onTransformModal",9),_o=k($e,"onClose",9),yn=X(void 0,!0),Gr=X(void 0,!0),z={mode:Me(dt()),content:dt(),selection:void 0,relativePath:zn()},wA=X([z],!0),ee=X(void 0,!0);function Me(rA){return k3(rA)&&ao(rA.json)?tr.table:tr.tree}function ke(){var rA,JA=(rA=ri(g(wA)))===null||rA===void 0?void 0:rA.selection;F3(JA)&&g(yn).scrollTo(je(JA))}function ze(){if(Ri("handleApply"),!_A())try{b(ee,void 0);var rA=g(Nt).relativePath,JA=g(Nt).content,Se=[{op:"replace",path:nt(rA),value:_oA(JA,ut()).json}];if(g(wA).length>1){var pe=_oA(g(wA)[g(wA).length-2].content,ut()).json,me={json:Ba(pe,Se)},ft=Be(Be({},g(wA)[g(wA).length-2]||z),{},{content:me});b(wA,[...g(wA).slice(0,g(wA).length-2),ft]),go(),ke()}else QA()(Se),_o()()}catch(mt){b(ee,String(mt))}}function Pe(){if(Ri("handleClose"),g(Gr))b(Gr,!1);else if(g(wA).length>1){var rA;b(wA,pi(g(wA))),go(),(rA=g(yn))===null||rA===void 0||rA.focus(),ke(),b(ee,void 0)}else _o()()}function qe(rA){Ri("handleChange",rA),Di(JA=>Be(Be({},JA),{},{content:rA}))}function oi(rA){Ri("handleChangeSelection",rA),Di(JA=>Be(Be({},JA),{},{selection:rA}))}function xi(rA){Ri("handleChangeMode",rA),Di(JA=>Be(Be({},JA),{},{mode:rA}))}function Di(rA){var JA=rA(ri(g(wA)));b(wA,[...pi(g(wA)),JA])}function cn(rA){b(ee,rA.toString()),console.error(rA)}function qr(rA){var JA,{content:Se,path:pe}=rA;Ri("handleJSONEditorModal",{content:Se,path:pe});var me={mode:Me(Se),content:Se,selection:void 0,relativePath:pe};b(wA,[...g(wA),me]),go(),(JA=g(yn))===null||JA===void 0||JA.focus()}function J(rA){rA.focus()}ls(()=>{var rA;(rA=g(yn))===null||rA===void 0||rA.focus()}),fA(()=>g(wA),()=>{b(Nt,ri(g(wA))||z)}),fA(()=>g(wA),()=>{b(Wi,g(wA).flatMap(rA=>rA.relativePath))}),fA(()=>(g(Wi),Dl),()=>{b(Tn,sn(g(Wi))?"(document root)":Dl(g(Wi)))}),fA(()=>W(ut()),()=>{b(ii,VB(ut().parse))}),nn(),Rt(!0),U3(ti,{onClose:Pe,className:"jse-jsoneditor-modal",get fullscreen(){return g(Gr)},children:(rA,JA)=>{var Se=LJA();c_($(Se),{children:(pe,me)=>{var ft=RJA(),mt=Bt(ft),ci=PA(()=>g(wA).length>1?" (".concat(g(wA).length,")"):"");dy(mt,{get title(){var Qt;return"Edit nested content ".concat((Qt=g(ci))!==null&&Qt!==void 0?Qt:"")},fullScreenButton:!0,onClose:Pe,get fullscreen(){return g(Gr)},set fullscreen(Qt){b(Gr,Qt)},$$legacy:!0});var rn=gA(mt,2),yi=gA($(rn),2),Rn=gA(yi,4);to(urA($(Rn),{get externalMode(){return g(Nt).mode},get content(){return g(Nt).content},get selection(){return g(Nt).selection},get readOnly(){return _A()},get indentation(){return Ce()},get tabSize(){return Pt()},get truncateTextSize(){return Li()},get statusBar(){return Co()},get askToFormat(){return Qn()},get mainMenuBar(){return ai()},get navigationBar(){return Fn()},get escapeControlCharacters(){return un()},get escapeUnicodeCharacters(){return jt()},get flattenColumns(){return Nn()},get parser(){return ut()},get parseMemoizeOne(){return g(ii)},get validator(){return Xo()},get validationParser(){return Oe()},get pathParser(){return ni()},insideModal:!0,onError:cn,onChange:qe,onChangeMode:xi,onSelect:oi,get onRenderValue(){return fn()},get onClassName(){return Yi()},onFocus:Kc,onBlur:Kc,get onRenderMenu(){return ir()},get onRenderContextMenu(){return Xi()},get onSortModal(){return ks()},get onTransformModal(){return La()},onJSONEditorModal:qr,$$legacy:!0}),Qt=>b(yn,Qt),()=>g(yn));var bt=$(gA(Rn,2)),Bo=Qt=>{var At=bJA(),Ni=$(At);Ee(()=>Et(Ni,g(ee))),iA(Qt,At)};MA(bt,Qt=>{g(ee)&&Qt(Bo)});var mn=gA(bt,2),Hn=Qt=>{var At=MJA();Si($(At),{data:mW}),re("click",At,Pe),iA(Qt,At)};MA(mn,Qt=>{g(wA).length>1&&Qt(Hn)});var ji=gA(mn,2),ht=Qt=>{var At=kJA();Nr(()=>re("click",At,ze)),bs(At,Ni=>J?.(Ni)),iA(Qt,At)},Fi=Qt=>{var At=SJA();re("click",At,Pe),iA(Qt,At)};MA(ji,Qt=>{_A()?Qt(Fi,!1):Qt(ht)}),Ee(()=>GC(yi,g(Tn))),iA(pe,ft)},$$slots:{default:!0}}),iA(rA,Se)},$$slots:{default:!0}}),at()})(Ct,U1(()=>g(dA),{onClose:()=>{var ti;(ti=g(dA))===null||ti===void 0||ti.onClose(),b(dA,void 0)}}))};MA(Jt,Ct=>{g(dA)&&Ct(Ki)}),Ee(Ct=>bA=xt(it,1,"jse-main svelte-57bmz4",null,bA,Ct),[()=>({"jse-focus":g(Y)})],PA),re("keydown",it,wo),iA(se,fe)},$$slots:{default:!0}}),kt(e,"get",DA),kt(e,"set",We),kt(e,"update",be),kt(e,"patch",qA),kt(e,"select",It),kt(e,"expand",Vi),kt(e,"collapse",on),kt(e,"transform",Hi),kt(e,"validate",Ci),kt(e,"acceptAutoRepair",Zi),kt(e,"scrollTo",Qi),kt(e,"findElement",Tt),kt(e,"focus",Ht),kt(e,"refresh",zi),kt(e,"updateProps",Ye),kt(e,"destroy",Ai),at({get:DA,set:We,update:be,patch:qA,select:It,expand:Vi,collapse:on,transform:Hi,validate:Ci,acceptAutoRepair:Zi,scrollTo:Qi,findElement:Tt,focus:Ht,refresh:zi,updateProps:Ye,destroy:Ai})}function daA(t){var{target:e,props:A}=t,i=R_A(UJA,{target:e,props:A});return i.destroy=yt(function*(){return function(n,o){var r=n_.get(n);return r?(n_.delete(n),r(o)):Promise.resolve()}(i)}),go(),i}var HC=class t{constructor(e){this.el=e}jsonString;editor=null;ngAfterViewInit(){let e={text:this.jsonString};this.editor=daA({target:document.getElementById("json-editor"),props:{content:e,mode:tr.text,mainMenuBar:!1}})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(A){return new(A||t)(zA(te))};static \u0275cmp=YA({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},standalone:!1,decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(A,i){A&1&&UA(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:300px;max-height:300px}"]})};var W3=class t{constructor(e,A){this.dialogRef=e;this.data=A;this.toolArgs=JSON.stringify(A.args,null,2),this.functionName=A.functionName}jsonEditorComponent;toolArgs="";functionName="";ngOnInit(){}onSave(){try{this.toolArgs=this.jsonEditorComponent.getJsonString();let e=JSON.parse(this.toolArgs);this.dialogRef.close(e)}catch(e){alert("Invalid JSON: "+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(zA(cr),zA($r))};static \u0275cmp=YA({type:t,selectors:[["app-edit-function-args-dialog"]],viewQuery:function(A,i){if(A&1&&Ge(HC,5),A&2){let n;$A(n=Ae())&&(i.jsonEditorComponent=n.first)}},standalone:!1,decls:11,vars:2,consts:[[1,"dialog-container"],["mat-dialog-title",""],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),tA(2,"Edit function arguments"),R(),S(3,"mat-dialog-content"),tA(4),UA(5,"app-json-editor",2),R(),S(6,"mat-dialog-actions",3)(7,"button",4),tA(8,"Cancel"),R(),S(9,"button",5),mA("click",function(){return i.onSave()}),tA(10,"Save"),R()()()),A&2&&(_(4),ot(" ",i.functionName," "),_(),vA("jsonString",i.toolArgs))},dependencies:[ur,hs,ga,Ia,gg,HC],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px #0006}.editor[_ngcontent-%COMP%]{padding-top:12px}"]})};var JJA=["input"],TJA=["label"],zJA=["*"],HJA=new BA("mat-checkbox-default-options",{providedIn:"root",factory:EaA});function EaA(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Ms=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Ms||{}),OJA={provide:uc,useExisting:nr(()=>gh),multi:!0},sG=class{source;checked},BaA=EaA(),gh=(()=>{class t{_elementRef=m(te);_changeDetectorRef=m(lt);_ngZone=m(de);_animationMode=m(mi,{optional:!0});_options=m(HJA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new sG;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new XA;indeterminateChange=new XA;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ms.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){m(Ln).load(Qr);let A=m(new Er("tabindex"),{optional:!0});this._options=this._options||BaA,this.color=this._options.color||BaA.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=m($i).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(Ms.Indeterminate):this._transitionCheckState(this.checked?Ms.Checked:Ms.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===A||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ms.Checked:Ms.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case Ms.Init:if(i===Ms.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ms.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ms.Unchecked:return i===Ms.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ms.Checked:return i===Ms.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ms.Indeterminate:return i===Ms.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(Ge(JJA,5),Ge(TJA,5)),i&2){let o;$A(o=Ae())&&(n._inputElement=o.first),$A(o=Ae())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(Fs("id",n.id),_e("tabindex",null)("aria-label",null)("aria-labelledby",null),vo(n.color?"mat-"+n.color:"mat-accent"),ue("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",ae],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",ae],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ae],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:Mi(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae],checked:[2,"checked","checked",ae],disabled:[2,"disabled","disabled",ae],indeterminate:[2,"indeterminate","indeterminate",ae]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ct([OJA,{provide:d0,useExisting:t,multi:!0}]),Kt],ngContentSelectors:zJA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=De();Yt(),S(0,"div",3),mA("click",function(s){return LA(o),xA(n._preventBubblingFromLabel(s))}),S(1,"div",4,0)(3,"div",5),mA("click",function(){return LA(o),xA(n._onTouchTargetClick())}),R(),S(4,"input",6,1),mA("blur",function(){return LA(o),xA(n._onBlur())})("click",function(){return LA(o),xA(n._onInputClick())})("change",function(s){return LA(o),xA(n._onInteractionEvent(s))}),R(),UA(6,"div",7),S(7,"div",8),hr(),S(8,"svg",9),UA(9,"path",10),R(),uI(),UA(10,"div",11),R(),UA(11,"div",12),R(),S(12,"label",13,2),xe(14),R()()}if(i&2){let o=or(2);vA("labelPosition",n.labelPosition),_(4),ue("mdc-checkbox--selected",n.checked),vA("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),_e("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),_(7),vA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),vA("for",n.inputId)}},dependencies:[Gs,BB],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var haA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[gh,Ve,Ve]})}return t})();var qJA=[[["caption"]],[["colgroup"],["col"]],"*"],VJA=["caption","colgroup, col","*"];function ZJA(t,e){t&1&&xe(0,2)}function WJA(t,e){t&1&&(S(0,"thead",0),Mr(1,1),R(),S(2,"tbody",0),Mr(3,2)(4,3),R(),S(5,"tfoot",0),Mr(6,4),R())}function XJA(t,e){t&1&&Mr(0,1)(1,2)(2,3)(3,4)}var Ll=new BA("CDK_TABLE");var Uy=(()=>{class t{template=m(vn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),Ky=(()=>{class t{template=m(vn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),faA=(()=>{class t{template=m(vn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),Ih=(()=>{class t{_table=m(Ll,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(Ii(o,Uy,5),Ii(o,Ky,5),Ii(o,faA,5)),i&2){let r;$A(r=Ae())&&(n.cell=r.first),$A(r=Ae())&&(n.headerCell=r.first),$A(r=Ae())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",ae],stickyEnd:[2,"stickyEnd","stickyEnd",ae]},features:[ct([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),Fy=class{constructor(e,A){A.nativeElement.classList.add(...e._columnCssClassName)}},maA=(()=>{class t extends Fy{constructor(){super(m(Ih),m(te))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[et]})}return t})();var paA=(()=>{class t extends Fy{constructor(){let A=m(Ih),i=m(te);super(A,i);let n=A._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[et]})}return t})(),Ny=class{tasks=[];endTasks=[]},_y=new BA("_COALESCED_STYLE_SCHEDULER"),cG=(()=>{class t{_currentSchedule=null;_ngZone=m(de);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new Ny,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new Ny;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();var lG=(()=>{class t{template=m(vn);_differs=m(Xl);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof X3?A.headerCell.template:this instanceof gG?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,features:[Kt]})}return t})(),X3=(()=>{class t extends lG{_table=m(Ll,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(m(vn),m(Xl))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",ae]},features:[et,Kt]})}return t})(),gG=(()=>{class t extends lG{_table=m(Ll,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(m(vn),m(Xl))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",ae]},features:[et,Kt]})}return t})(),Yy=(()=>{class t extends lG{_table=m(Ll,{optional:!0});when;constructor(){super(m(vn),m(Xl))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[et]})}return t})(),OC=(()=>{class t{_viewContainer=m(Un);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),IG=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&Mr(0,0)},dependencies:[OC],encapsulation:2})}return t})();var CG=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&Mr(0,0)},dependencies:[OC],encapsulation:2})}return t})(),waA=(()=>{class t{templateRef=m(vn);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),QaA=["top","bottom","left","right"],aG=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(e=>this._updateCachedSizes(e)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(e,A,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=e,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(e,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(e);let i=[];for(let n of e)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,A)}})}updateStickyColumns(e,A,i,n=!0,o=!0){if(!e.length||!this._isBrowser||!(A.some(Q=>Q)||i.some(Q=>Q))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=e[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",l=a?"left":"right",I=A.lastIndexOf(!0),C=i.indexOf(!0),d,B,E;o&&this._updateStickyColumnReplayQueue({rows:[...e],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{d=this._getCellWidths(r,n),B=this._getStickyStartColumnPositions(d,A),E=this._getStickyEndColumnPositions(d,i)},write:()=>{for(let Q of e)for(let u=0;u!!Q)&&(this._positionListener.stickyColumnsUpdated({sizes:I===-1?[]:d.slice(0,I+1).map((Q,u)=>A[u]?Q:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:d.slice(C).map((Q,u)=>i[u+C]?Q:null).reverse()}))}})}stickRows(e,A,i){if(!this._isBrowser)return;let n=i==="bottom"?e.slice().reverse():e,o=i==="bottom"?A.slice().reverse():A,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,l=0;c{let c=o.lastIndexOf(!0);for(let l=0;l{let i=e.querySelector("tfoot");i&&(A.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(e,A){for(let n of A)e.style[n]="",e.classList.remove(this._borderCellCss[n]);QaA.some(n=>A.indexOf(n)===-1&&e.style[n])?e.style.zIndex=this._getCalculatedZIndex(e):(e.style.zIndex="",this._needsPositionStickyOnElement&&(e.style.position=""),e.classList.remove(this._stickCellCss))}_addStickyStyle(e,A,i,n){e.classList.add(this._stickCellCss),n&&e.classList.add(this._borderCellCss[A]),e.style[A]=`${i}px`,e.style.zIndex=this._getCalculatedZIndex(e),this._needsPositionStickyOnElement&&(e.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(e){let A={top:100,bottom:10,left:1,right:1},i=0;for(let n of QaA)e.style[n]&&(i+=A[n]);return i?`${i}`:""}_getCellWidths(e,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=e.children;for(let o=0;o0;o--)A[o]&&(i[o]=n,n+=e[o]);return i}_retrieveElementSize(e){let A=this._elemSizeCache.get(e);if(A)return A;let i=e.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(e,n),this._resizeObserver.observe(e,{box:"border-box"})),n}_updateStickyColumnReplayQueue(e){this._removeFromStickyColumnReplayQueue(e.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(e)}_removeFromStickyColumnReplayQueue(e){let A=new Set(e);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!A.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(e){let A=!1;for(let i of e){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&$JA(i.target)&&(A=!0),this._elemSizeCache.set(i.target,n)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(e){this._tableInjector?Vo(e,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{e.earlyRead?.(),e.write()})}};function $JA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(e=>t.classList.contains(e))}var Gy=new BA("CDK_SPL");var dG=(()=>{class t{viewContainer=m(Un);elementRef=m(te);constructor(){let A=m(Ll);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","rowOutlet",""]]})}return t})(),BG=(()=>{class t{viewContainer=m(Un);elementRef=m(te);constructor(){let A=m(Ll);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),EG=(()=>{class t{viewContainer=m(Un);elementRef=m(te);constructor(){let A=m(Ll);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),hG=(()=>{class t{viewContainer=m(Un);elementRef=m(te);constructor(){let A=m(Ll);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var QG=(()=>{class t{_differs=m(Xl);_changeDetectorRef=m(lt);_elementRef=m(te);_dir=m(bo,{optional:!0});_platform=m(Zt);_viewRepeater=m(Qu);_coalescedStyleScheduler=m(_y);_viewportRuler=m(mc);_stickyPositioningListener=m(Gy,{optional:!0,skipSelf:!0});_document=m(tt);_data;_onDestroy=new HA;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new XA;viewChange=new li({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=m(Dt);constructor(){m(new Er("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(wt(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),A8(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===hB.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=uaA(this._headerRowOutlet,"thead");n&&(n.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=uaA(this._footerRowOutlet,"tfoot");n&&(n.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:A,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),xy(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=xy(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=xy(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=xy(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(A,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(A,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(A){this._data=[],A8(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;A8(this.dataSource)?A=this.dataSource.connect(this):a2(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=ve(this.dataSource)),this._renderChangeSubscription=A.pipe(wt(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(A,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let n=0;n!o.when||o.when(i,A));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,A))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(A,i){let n=A.rowDef,o={$implicit:A.data};return{templateRef:n.template,context:o,index:i}}_renderRow(A,i,n,o={}){let r=A.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(A,i){for(let n of this._getCellTemplates(A))OC.mostRecentCellOutlet&&OC.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,n=A.length;i{let n=this._columnDefsByName.get(i);return A.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new aG(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:ve()).pipe(wt(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(A.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(A._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(Ii(o,waA,5),Ii(o,Ih,5),Ii(o,Yy,5),Ii(o,X3,5),Ii(o,gG,5)),i&2){let r;$A(r=Ae())&&(n._noDataRow=r.first),$A(r=Ae())&&(n._contentColumnDefs=r),$A(r=Ae())&&(n._contentRowDefs=r),$A(r=Ae())&&(n._contentHeaderRowDefs=r),$A(r=Ae())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&ue("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",ae],fixedLayout:[2,"fixedLayout","fixedLayout",ae]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[ct([{provide:Ll,useExisting:t},{provide:Qu,useClass:QB},{provide:_y,useClass:cG},{provide:Gy,useValue:null}])],ngContentSelectors:VJA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&(Yt(qJA),xe(0),xe(1,1),NA(2,ZJA,1,0)(3,WJA,7,0)(4,XJA,4,0)),i&2&&(_(2),FA(n._isServer?2:-1),_(),FA(n._isNativeHtmlTable?3:4))},dependencies:[BG,dG,hG,EG],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function xy(t,e){return t.concat(Array.from(e))}function uaA(t,e){let A=e.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===A)return i;if(n==="TABLE")break;i=i.parentNode}return null}var DaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[uu]})}return t})();var ATA=[[["caption"]],[["colgroup"],["col"]],"*"],eTA=["caption","colgroup, col","*"];function tTA(t,e){t&1&&xe(0,2)}function iTA(t,e){t&1&&(S(0,"thead",0),Mr(1,1),R(),S(2,"tbody",2),Mr(3,3)(4,4),R(),S(5,"tfoot",0),Mr(6,5),R())}function nTA(t,e){t&1&&Mr(0,1)(1,3)(2,4)(3,5)}var yaA=(()=>{class t extends QG{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ct([{provide:QG,useExisting:t},{provide:Ll,useExisting:t},{provide:_y,useClass:cG},{provide:Qu,useClass:QB},{provide:Gy,useValue:null}]),et],ngContentSelectors:eTA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&(Yt(ATA),xe(0),xe(1,1),NA(2,tTA,1,0)(3,iTA,7,0)(4,nTA,4,0)),i&2&&(_(2),FA(n._isServer?2:-1),_(),FA(n._isNativeHtmlTable?3:4))},dependencies:[BG,dG,hG,EG],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),vaA=(()=>{class t extends Uy{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matCellDef",""]],features:[ct([{provide:Uy,useExisting:t}]),et]})}return t})(),baA=(()=>{class t extends Ky{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matHeaderCellDef",""]],features:[ct([{provide:Ky,useExisting:t}]),et]})}return t})();var MaA=(()=>{class t extends Ih{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[ct([{provide:Ih,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),et]})}return t})(),kaA=(()=>{class t extends maA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[et]})}return t})();var SaA=(()=>{class t extends paA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[et]})}return t})();var RaA=(()=>{class t extends X3{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",ae]},features:[ct([{provide:X3,useExisting:t}]),et]})}return t})();var LaA=(()=>{class t extends Yy{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[ct([{provide:Yy,useExisting:t}]),et]})}return t})(),xaA=(()=>{class t extends IG{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[ct([{provide:IG,useExisting:t}]),et],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&Mr(0,0)},dependencies:[OC],encapsulation:2})}return t})();var FaA=(()=>{class t extends CG{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[ct([{provide:CG,useExisting:t}]),et],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&Mr(0,0)},dependencies:[OC],encapsulation:2})}return t})();var NaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,DaA,Ve]})}return t})(),oTA=9007199254740991,$3=class extends $6{_data;_renderData=new li([]);_filter=new li("");_internalPageChanges=new HA;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(e){e=Array.isArray(e)?e:[],this._data.next(e),this._renderChangesSubscription||this._filterData(e)}get filter(){return this._filter.value}set filter(e){this._filter.next(e),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(e){this._sort=e,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(e){this._paginator=e,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(e,A)=>{let i=e[A];if(OM(i)){let n=Number(i);return n{let i=A.active,n=A.direction;return!i||n==""?e:e.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,l=typeof a;c!==l&&(c==="number"&&(s+=""),l==="number"&&(a+=""));let I=0;return s!=null&&a!=null?s>a?I=1:s{let i=A.trim().toLowerCase();return Object.values(e).some(n=>`${n}`.toLowerCase().includes(i))};constructor(e=[]){super(),this._data=new li(e),this._updateChangeSubscription()}_updateChangeSubscription(){let e=this._sort?ho(this._sort.sortChange,this._sort.initialized):ve(null),A=this._paginator?ho(this._paginator.page,this._internalPageChanges,this._paginator.initialized):ve(null),i=this._data,n=Ls([i,this._filter]).pipe(Je(([s])=>this._filterData(s))),o=Ls([n,e]).pipe(Je(([s])=>this._orderData(s))),r=Ls([o,A]).pipe(Je(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(e){return this.filteredData=this.filter==null||this.filter===""?e:e.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(e){return this.sort?this.sortData(e.slice(),this.sort):e}_pageData(e){if(!this.paginator)return e;let A=this.paginator.pageIndex*this.paginator.pageSize;return e.slice(A,A+this.paginator.pageSize)}_updatePaginator(e){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=e,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,n=Math.min(A.pageIndex,i);n!==A.pageIndex&&(A.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var _aA=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var gs=[];for(let t=0;t<256;++t)gs.push((t+256).toString(16).slice(1));function GaA(t,e=0){return(gs[t[e+0]]+gs[t[e+1]]+gs[t[e+2]]+gs[t[e+3]]+"-"+gs[t[e+4]]+gs[t[e+5]]+"-"+gs[t[e+6]]+gs[t[e+7]]+"-"+gs[t[e+8]]+gs[t[e+9]]+"-"+gs[t[e+10]]+gs[t[e+11]]+gs[t[e+12]]+gs[t[e+13]]+gs[t[e+14]]+gs[t[e+15]]).toLowerCase()}var uG,sTA=new Uint8Array(16);function fG(){if(!uG){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");uG=crypto.getRandomValues.bind(crypto)}return uG(sTA)}var aTA=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),mG={randomUUID:aTA};function cTA(t,e,A){if(mG.randomUUID&&!e&&!t)return mG.randomUUID();t=t||{};let i=t.random??t.rng?.()??fG();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){if(A=A||0,A<0||A+16>e.length)throw new RangeError(`UUID byte range ${A}:${A+15} is out of buffer bounds`);for(let n=0;n<16;++n)e[A+n]=i[n];return e}return GaA(i)}var Af=cTA;var zc=class t{constructor(e){this.http=e}apiServerDomain=Es.getApiServerBaseUrl();getEvalSets(e){if(this.apiServerDomain!=null){let A=this.apiServerDomain+`/apps/${e}/eval_sets`;return this.http.get(A)}return new Ze}createNewEvalSet(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/eval_sets/${A}`;return this.http.post(i,{})}return new Ze}listEvalCases(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals`;return this.http.get(i,{})}return new Ze}addCurrentSession(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/add_session`;return this.http.post(r,{evalId:i,sessionId:n,userId:o})}runEval(e,A,i,n){let o=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/run_eval`;return this.http.post(o,{evalIds:i,evalMetrics:n})}listEvalResults(e){if(this.apiServerDomain!=null){let A=this.apiServerDomain+`/apps/${e}/eval_results`;return this.http.get(A,{})}return new Ze}getEvalResult(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/eval_results/${A}`;return this.http.get(i,{})}return new Ze}getEvalCase(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals/${i}`;return this.http.get(n,{})}return new Ze}updateEvalCase(e,A,i,n){let o=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals/${i}`;return this.http.put(o,{evalId:i,conversation:n.conversation,sessionInput:n.sessionInput,creationTimestamp:n.creationTimestamp})}deleteEvalCase(e,A,i){let n=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals/${i}`;return this.http.delete(n,{})}static \u0275fac=function(A){return new(A||t)(he(Bs))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var KaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),UaA=og({passive:!0}),YaA=(()=>{class t{_platform=m(Zt);_ngZone=m(de);_styleLoader=m(Ln);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return Ar;this._styleLoader.load(KaA);let i=sa(A),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new HA,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,UaA),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,UaA)}}),o}stopMonitoring(A){let i=sa(A),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var JaA=(()=>{class t{_elementRef=m(te);_platform=m(Zt);_ngZone=m(de);_renderer=m(Gi);_resizeEvents=new HA;_previousValue;_initialHeight;_destroyed=new HA;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=Ns(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=Ns(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=m(tt,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){m(Ln).load(KaA),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(Cd(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(r);let s=A.scrollHeight-4;return A.classList.remove(r),o&&(A.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!A&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:n}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&mA("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",ae],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),TaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();var gTA=new BA("MAT_INPUT_VALUE_ACCESSOR"),ITA=["button","checkbox","file","hidden","image","radio","range","reset","submit"],CTA=new BA("MAT_INPUT_CONFIG"),P1=(()=>{class t{_elementRef=m(te);_platform=m(Zt);ngControl=m(Pa,{optional:!0,self:!0});_autofillMonitor=m(YaA);_ngZone=m(de);_formField=m(wu,{optional:!0});_renderer=m(Gi);_uid=m($i).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=m(CTA,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new HA;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Yo(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Oa.required)??!1}set required(A){this._required=Yo(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&TM().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Yo(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>TM().has(A));constructor(){let A=m(jQ,{optional:!0}),i=m(bI,{optional:!0}),n=m(dB),o=m(gTA,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?h2(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new UI(n,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&mQ(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){ITA.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||A;o=A.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=A;this._formFieldDescribedBy=A,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&mA("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(Fs("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),_e("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),ue("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae]},exportAs:["matInput"],features:[ct([{provide:pu,useExisting:t}]),Kt]})}return t})(),Ty=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,f0,f0,TaA,Ve]})}return t})();var ef=class t{constructor(e,A,i){this.evalService=e;this.data=A;this.dialogRef=i}newCaseId="case"+Af().slice(0,6);createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)(zA(zc),zA($r),zA(cr))};static \u0275cmp=YA({type:t,selectors:[["app-add-eval-session-dialog"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),tA(1,"Add Current Session To Eval Set"),R(),S(2,"mat-dialog-content"),tA(3,` Please enter the eval case name +`),R(),S(4,"mat-form-field",1)(5,"input",2),ta("ngModelChange",function(o){return Ja(i.newCaseId,o)||(i.newCaseId=o),o}),mA("keydown.enter",function(){return i.createNewEvalCase()}),R()(),S(6,"mat-dialog-actions",3)(7,"button",4),tA(8,"Cancel"),R(),S(9,"button",5),mA("click",function(){return i.createNewEvalCase()}),tA(10,"Create"),R()()),A&2&&(_(5),ea("ngModel",i.newCaseId))},dependencies:[fc,na,ja,lg,P1,ur,hs,ga,Ia,gg],encapsulation:2})};var tf=class t{constructor(e,A,i){this.evalService=e;this.data=A;this.dialogRef=i}newSetId="evalset"+Af().slice(0,6);createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)(zA(zc),zA($r),zA(cr))};static \u0275cmp=YA({type:t,selectors:[["app-new-eval-set-dialog-component"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),tA(1,"Create New Eval Set"),R(),S(2,"mat-dialog-content"),tA(3,` Please enter the eval set name +`),R(),S(4,"mat-form-field",1)(5,"input",2),ta("ngModelChange",function(o){return Ja(i.newSetId,o)||(i.newSetId=o),o}),mA("keydown.enter",function(){return i.createNewEvalSet()}),R()(),S(6,"mat-dialog-actions",3)(7,"button",4),tA(8,"Cancel"),R(),S(9,"button",5),mA("click",function(){return i.createNewEvalSet()}),tA(10,"Create"),R()()),A&2&&(_(5),ea("ngModel",i.newSetId))},dependencies:[fc,na,ja,lg,P1,ur,hs,ga,Ia,gg],encapsulation:2})};var dTA=["knob"],BTA=["valueIndicatorContainer"];function ETA(t,e){if(t&1&&(S(0,"div",2,1)(2,"div",5)(3,"span",6),tA(4),R()()()),t&2){let A=P();_(4),Mt(A.valueIndicatorText)}}var hTA=["trackActive"],QTA=["*"];function uTA(t,e){if(t&1&&UA(0,"div"),t&2){let A=e.$implicit,i=e.$index,n=P(3);vo(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),so("transform",n._calcTickMarkTransform(i))}}function fTA(t,e){if(t&1&&ln(0,uTA,1,4,"div",8,Kd),t&2){let A=P(2);gn(A._tickMarks)}}function mTA(t,e){if(t&1&&(S(0,"div",6,1),NA(2,fTA,2,0),R()),t&2){let A=P();_(2),FA(A._cachedWidth?2:-1)}}function pTA(t,e){if(t&1&&UA(0,"mat-slider-visual-thumb",7),t&2){let A=P();vA("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var $t=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}($t||{}),Ch=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(Ch||{}),pG=new BA("_MatSlider"),zaA=new BA("_MatSliderThumb"),wTA=new BA("_MatSliderRangeThumb"),HaA=new BA("_MatSliderVisualThumb");var DTA=(()=>{class t{_cdr=m(lt);_ngZone=m(de);_slider=m(pG);_renderer=m(Gi);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=m(te).nativeElement;_platform=m(Zt);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===_s.FADING_IN||A?.state===_s.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===$t.START?$t.END:$t.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===$t.START?$t.END:$t.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(Ge(Gs,5),Ge(dTA,5),Ge(BTA,5)),i&2){let o;$A(o=Ae())&&(n._ripple=o.first),$A(o=Ae())&&(n._knob=o.first),$A(o=Ae())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[ct([{provide:HaA,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(NA(0,ETA,5,1,"div",2),UA(1,"div",3,0)(3,"div",4)),i&2&&(FA(n.discrete?0:-1),_(3),vA("matRippleDisabled",!0))},dependencies:[Gs],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),OaA=(()=>{class t{_ngZone=m(de);_cdr=m(lt);_elementRef=m(te);_dir=m(bo,{optional:!0});_globalRippleOptions=m(L2,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput($t.END),n=this._getInput($t.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput($t.END),n=this._getInput($t.START),o=i.value,r=n.value;n.min=A.new,i.min=Math.max(A.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(A){let i=this._getInput($t.END);if(i){let n=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput($t.END),i=this._getInput($t.START),n=A.value,o=i.value,r=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=m(Zt);constructor(){m(Ln).load(Qr);let A=m(mi,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput($t.END),i=this._getInput($t.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let n=this._getThumb($t.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput($t.END),i=this._getInput($t.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput($t.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb($t.START)._isActive||this._getThumb($t.END)._isActive}_getValue(A=$t.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput($t.START)?._skipUIUpdate||this._getInput($t.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput($t.END),i=this._getInput($t.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput($t.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput($t.START),i=this._getInput($t.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),n=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===$t.END?$t.END:$t.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===$t.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(A.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput($t.END),i=this._getInput($t.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/A),0)+1,o=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(Ch.ACTIVE).concat(Array(o).fill(Ch.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),n=this._getValue($t.START),o=Math.max(Math.round((n-this.min)/A),0),r=Math.max(Math.round((i-n)/A)+1,0),s=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(o).fill(Ch.INACTIVE).concat(Array(r).fill(Ch.ACTIVE),Array(s).fill(Ch.INACTIVE))}_getInput(A){if(A===$t.END&&this._input)return this._input;if(this._inputs?.length)return A===$t.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===$t.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=A.clientX-o,a=A.clientY-r;return Math.pow(s,2)+Math.pow(a,2)wG),multi:!0};var wG=(()=>{class t{_ngZone=m(de);_elementRef=m(te);_cdr=m(lt);_slider=m(pG);_platform=m(Zt);_listenerCleanups;get value(){return Mi(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new XA;dragStart=new XA;dragEnd=new XA;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=$t.END;get min(){return Mi(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return Mi(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return Mi(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return ae(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Ko("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new HA;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=m(Gi);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,l=Math.round(c/o)*o,I=this.value;if(l===I){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=l,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&mA("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&_e("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",Mi]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[ct([yTA,{provide:zaA,useExisting:t}])]})}return t})();var PaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Xa]})}return t})();var nf=class t{constructor(e,A,i){this.dialogRef=e;this.fb=A;this.data=i;this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[Oa.required,Oa.min(0),Oa.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[Oa.required,Oa.min(0),Oa.max(1)]]}),this.evalMetrics=this.data.evalMetrics}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(e){return this.evalMetrics.find(A=>A.metricName===e)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:e,response_match_score_threshold:A}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=e:i.metricName==="response_match_score"&&(i.threshold=A);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(zA(cr),zA(BH),zA($r))};static \u0275cmp=YA({type:t,selectors:[["app-run-eval-config-dialog"]],standalone:!1,decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),tA(2,"EVALUATION METRIC"),R(),S(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),tA(7,"Tool trajectory avg score: "),R(),S(8,"div",5)(9,"mat-slider",6),UA(10,"input",7),R(),S(11,"span",8),tA(12),R()()(),S(13,"div",3)(14,"div",4),tA(15,"Response match score: "),R(),S(16,"div",5)(17,"mat-slider",6),UA(18,"input",9),R(),S(19,"span",8),tA(20),R()()()()(),S(21,"mat-dialog-actions",10)(22,"button",11),mA("click",function(){return i.onCancel()}),tA(23,"Cancel"),R(),S(24,"button",12),mA("click",function(){return i.onStart()}),tA(25,"Start"),R()()()),A&2&&(_(4),vA("formGroup",i.evalForm),_(8),ot(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),_(8),ot(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[CH,fc,na,rH,ur,hs,ga,Ia,OaA,wG,bI,lM],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px #0006}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: #4285f4;--mdc-slider-inactive-track-color: #616161;--mdc-slider-handle-color: #4285f4;--mdc-slider-ripple-color: #4285f4;width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, black);border:none!important;box-shadow:none!important}"]})};var Jg=class t{constructor(e){this.http=e}apiServerDomain=Es.getApiServerBaseUrl();createSession(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(i,null)}return new Ze}listSessions(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.get(i)}return new Ze}deleteSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.delete(n)}getSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.get(n)}importSession(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(n,{appName:A,userId:e,events:i})}return new Ze}static \u0275fac=function(A){return new(A||t)(he(Bs))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var bTA=["determinateSpinner"];function MTA(t,e){if(t&1&&(hr(),S(0,"svg",11),UA(1,"circle",12),R()),t&2){let A=P();_e("viewBox",A._viewBox()),_(),so("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),_e("r",A._circleRadius())}}var kTA=new BA("mat-progress-spinner-default-options",{providedIn:"root",factory:STA});function STA(){return{diameter:jaA}}var jaA=100,RTA=10,qaA=(()=>{class t{_elementRef=m(te);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=m(mi,{optional:!0}),i=m(kTA);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=jaA;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-RTA)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&Ge(bTA,5),i&2){let o;$A(o=Ae())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(_e("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),vo("mat-"+n.color),so("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),ue("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",Mi],diameter:[2,"diameter","diameter",Mi],strokeWidth:[2,"strokeWidth","strokeWidth",Mi]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(NA(0,MTA,2,8,"ng-template",null,0,fQ),S(2,"div",2,1),hr(),S(4,"svg",3),UA(5,"circle",4),R()(),uI(),S(6,"div",5)(7,"div",6)(8,"div",7),Mr(9,8),R(),S(10,"div",9),Mr(11,8),R(),S(12,"div",10),Mr(13,8),R()()()),i&2){let o=or(1);_(4),_e("viewBox",n._viewBox()),_(),so("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),_e("r",n._circleRadius()),_(4),vA("ngTemplateOutlet",o),_(2),vA("ngTemplateOutlet",o),_(2),vA("ngTemplateOutlet",o)}},dependencies:[vQ],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();var VaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve]})}return t})();function xTA(t,e){if(t&1){let A=De();S(0,"div",1)(1,"div"),tA(2,"All eval sets"),R(),S(3,"mat-icon",2),mA("click",function(){LA(A);let n=P();return xA(n.openNewEvalSetDialog())}),tA(4,"add"),R()()}}function FTA(t,e){if(t&1){let A=De();S(0,"div")(1,"div",3)(2,"div",4),tA(3," Create New Evaluation Set "),R(),S(4,"div",5),tA(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),R(),S(6,"div",6),mA("click",function(){LA(A);let n=P();return xA(n.openNewEvalSetDialog())}),tA(7," Create Evaluation Set "),R()()()}}function NTA(t,e){if(t&1){let A=De();S(0,"div",8),mA("click",function(){let n=LA(A).$implicit,o=P(2);return xA(o.selectEvalSet(n))}),S(1,"div",9)(2,"span",10),tA(3,"folder"),R(),S(4,"div",11),tA(5),R()(),S(6,"div")(7,"mat-icon",12),tA(8,"chevron_right"),R()()()}if(t&2){let A=e.$implicit;_(5),Mt(A)}}function _TA(t,e){if(t&1&&(S(0,"div"),ln(1,NTA,9,1,"div",7,Kn),R()),t&2){let A=P();_(),gn(A.evalsets)}}function GTA(t,e){if(t&1){let A=De();S(0,"th",29)(1,"mat-checkbox",30),mA("change",function(n){LA(A);let o=P(4);return xA(n?o.toggleAllRows():null)}),R()()}if(t&2){let A=P(4);_(),vA("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function UTA(t,e){if(t&1){let A=De();S(0,"td",31)(1,"mat-checkbox",32),mA("click",function(n){return LA(A),xA(n.stopPropagation())})("change",function(n){let o=LA(A).$implicit,r=P(4);return xA(n?r.selection.toggle(o):null)}),R()()}if(t&2){let A=e.$implicit,i=P(4);_(),vA("checked",i.selection.isSelected(A))}}function KTA(t,e){t&1&&(S(0,"th",29),tA(1," Case ID "),R())}function YTA(t,e){if(t&1){let A=De();S(0,"td",33),mA("click",function(){let n=LA(A).$implicit,o=P(4);return xA(o.getEvalCase(n))}),tA(1),R()}if(t&2){let A,i=e.$implicit,n=P(4);ue("selected-eval-case",i===((A=n.selectedEvalCase())==null?null:A.evalId)),_(),ot(" ",i," ")}}function JTA(t,e){t&1&&(S(0,"th",29),tA(1," Result "),R())}function TTA(t,e){if(t&1){let A=De();S(0,"button",35),mA("click",function(){LA(A);let n=P().$implicit,o=P(4);return xA(o.getSession(n))}),S(1,"span",36),tA(2),R(),S(3,"div",37),tA(4),R()()}if(t&2){let A=P().$implicit,i=P(4);vA("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),_(2),ot(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),_(2),ot("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function zTA(t,e){if(t&1&&(S(0,"td",31),NA(1,TTA,5,3,"button",34),R()),t&2){let A=e.$implicit,i=P(4);_(),FA(i.getEvalResultForCase(A)?1:-1)}}function HTA(t,e){t&1&&UA(0,"tr",38)}function OTA(t,e){t&1&&UA(0,"tr",39)}function PTA(t,e){if(t&1){let A=De();S(0,"div")(1,"div",16)(2,"button",17),mA("click",function(){LA(A);let n=P(3);return xA(n.openEvalConfigDialog())}),tA(3,"Run Evaluation"),R(),S(4,"mat-icon",18),mA("click",function(){LA(A);let n=P(3);return xA(n.toggleEvalHistoryButton())}),tA(5,"history"),R()(),S(6,"div",19)(7,"table",20),f2(8,21),NA(9,GTA,2,2,"th",22)(10,UTA,2,1,"td",23),m2(),f2(11,24),NA(12,KTA,2,0,"th",22)(13,YTA,2,3,"td",25),m2(),f2(14,26),NA(15,JTA,2,0,"th",22)(16,zTA,2,1,"td",23),m2(),NA(17,HTA,1,0,"tr",27)(18,OTA,1,0,"tr",28),R()()()}if(t&2){let A=P(3);_(7),vA("dataSource",A.dataSource),_(10),vA("matHeaderRowDef",A.displayedColumns),_(),vA("matRowDefColumns",A.displayedColumns)}}function jTA(t,e){if(t&1&&(S(0,"div")(1,"span",50),tA(2,"|"),R(),S(3,"span",51),tA(4),R()()),t&2){let A=P().$implicit,i=P(4);_(4),ot("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function qTA(t,e){if(t&1&&(S(0,"span",52),tA(1),R()),t&2){let A=e.$implicit;_(),Mb(" ",A.metricName,": ",A.threshold," ")}}function VTA(t,e){if(t&1&&(S(0,"div",46),ln(1,qTA,2,2,"span",52,Kn),R()),t&2){let A=P().$implicit,i=P(4);_(),gn(i.getEvalMetrics(A))}}function ZTA(t,e){if(t&1){let A=De();S(0,"div")(1,"div",53)(2,"span"),tA(3),R(),S(4,"button",54),mA("click",function(){let n=LA(A).$implicit,o=P(6);return xA(o.getHistorySession(n))}),S(5,"span",36),tA(6),R(),S(7,"div",37),tA(8),R()()()()}if(t&2){let A=e.$implicit;_(3),ot(" ",A.evalId," "),_(),vA("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),_(2),ot(" ",A.finalEvalStatus==1?"check":"close"," "),_(2),ot("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function WTA(t,e){if(t&1&&(S(0,"div",49),ln(1,ZTA,9,4,"div",null,Kn),R()),t&2){let A=P().$implicit,i=P(4);_(),gn(i.generateHistoryEvaluationDatasource(A.timestamp))}}function XTA(t,e){if(t&1){let A=De();S(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),tA(5),R(),S(6,"div",44)(7,"span",45),tA(8),R(),NA(9,jTA,5,1,"div"),R(),NA(10,VTA,3,0,"div",46),R(),S(11,"div",47)(12,"mat-icon",48),mA("click",function(){let n=LA(A).$implicit,o=P(4);return xA(o.toggleHistoryStatusCard(n.timestamp))}),tA(13),R()()(),NA(14,WTA,3,0,"div",49),R()()}if(t&2){let A=e.$implicit,i=P(4);_(5),Mt(i.formatTimestamp(A.timestamp)),_(3),ot("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),_(),FA(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),_(),FA(i.getEvalMetrics(A)?10:-1),_(3),Mt(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),_(),FA(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function $TA(t,e){if(t&1&&(S(0,"div"),ln(1,XTA,15,6,"div",null,Kn),R()),t&2){let A=P(3);_(),gn(A.getEvalHistoryOfCurrentSetSorted())}}function AzA(t,e){if(t&1&&(S(0,"div"),NA(1,PTA,19,3,"div")(2,$TA,3,0,"div"),R()),t&2){let A=P(2);_(),FA(A.showEvalHistory()?-1:1),_(),FA(A.showEvalHistory()?2:-1)}}function ezA(t,e){if(t&1){let A=De();S(0,"button",55),mA("click",function(){LA(A);let n=P(2);return xA(n.openNewEvalCaseDialog())}),S(1,"div",56)(2,"mat-icon"),tA(3,"add"),R(),S(4,"div",57),tA(5),R()()()}if(t&2){let A=P(2);_(5),ot(" Add current session to ",A.selectedEvalSet," ")}}function tzA(t,e){t&1&&(S(0,"div"),UA(1,"mat-spinner",58),R()),t&2&&(_(),vA("diameter",28)("strokeWidth",3))}function izA(t,e){if(t&1){let A=De();S(0,"div")(1,"div",9)(2,"mat-icon",13),mA("click",function(){LA(A);let n=P();return xA(n.clearSelectedEvalSet())}),tA(3,"chevron_left"),R(),S(4,"div",14),mA("click",function(){LA(A);let n=P();return xA(n.clearSelectedEvalSet())}),tA(5),R()(),NA(6,AzA,3,2,"div")(7,ezA,6,1,"button",15)(8,tzA,2,2,"div"),R()}if(t&2){let A=P();_(5),ot(" ",A.selectedEvalSet," "),_(),FA(A.evalCases.length>0&&!A.evalRunning()?6:-1),_(),FA(!A.evalRunning()&&!A.showEvalHistory()?7:-1),_(),FA(A.evalRunning()?8:-1)}}var PC=class t{constructor(e,A){this.evalService=e;this.sessionService=A;this.evalCasesSubject.subscribe(i=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&i.length>0?(this.selectNewEvalCase(i),this.deletedEvalCaseIndex=-1):i.length===0&&this.shouldReturnToSession.emit(!0)})}checkboxes;appName="";userId="";sessionId="";sessionSelected=new XA;shouldShowTab=new XA;evalNotInstalledMsg=new XA;evalCaseSelected=new XA;evalSetIdSelected=new XA;shouldReturnToSession=new XA;evalCasesSubject=new li([]);changeDetectorRef=m(lt);flagService=m(vB);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Ko(null);deletedEvalCaseIndex=-1;dataSource=new $3(this.evalCases);selection=new F2(!0,[]);showEvalHistory=Ko(!1);evalRunning=Ko(!1);evalMetrics=_aA;currentEvalResultBySet=new Map;dialog=m(Us);appEvaluationResults={};ngOnChanges(e){e.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(e){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===e.length&&(A=0),this.getEvalCase(e[A])}getEvalSet(){this.appName!=""&&this.evalService.getEvalSets(this.appName).pipe(dr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),ve(null)):ve([]))).subscribe(e=>{e!==null&&(this.shouldShowTab.emit(!0),this.evalsets=e)})}openNewEvalSetDialog(){this.dialog.open(tf,{width:"600px",data:{appName:this.appName}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(ef,{width:"600px",data:{appName:this.appName,userId:this.userId,sessionId:this.sessionId,evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName,this.selectedEvalSet).subscribe(e=>{this.evalCases=e,this.dataSource=new $3(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName,this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(dr(e=>(e.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(e.error.detail),ve([])))).subscribe(e=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,e),this.getEvaluationResult()})}selectEvalSet(e){this.selectedEvalSet=e,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let e=this.selection.selected.length,A=this.dataSource.data.length;return e===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(e){let A=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==e);if(!(!A||A.length==0))return A[0].finalEvalStatus}formatToolUses(e){let A=[];for(let i of e)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(e,A){let i=A.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==e)[0],i=A.sessionId;this.sessionService.getSession(this.userId,this.appName,i).subscribe(n=>{this.addEvalCaseResultToEvents(n,A);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let e=this.getEvalHistoryOfCurrentSet();return Object.keys(e).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:e[n]}))}getPassCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(e){let A=Number(e);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(e){this.getEvalHistoryOfCurrentSet()[e].isToggled=!this.getEvalHistoryOfCurrentSet()[e].isToggled}isEvaluationStatusCardToggled(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled}generateHistoryEvaluationDatasource(e){return this.getEvalHistoryOfCurrentSet()[e].evaluationResults}getHistorySession(e){this.addEvalCaseResultToEvents(e.sessionDetails,e);let A=this.fromApiResultToSession(e.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(e){this.evalService.getEvalCase(this.appName,this.selectedEvalSet,e).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(e){this.evalService.deleteEvalCase(this.appName,this.selectedEvalSet,e).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(e),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName).pipe(dr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),ve(null)):ve([]))).subscribe(e=>{for(let A of e)this.evalService.getEvalResult(this.appName,A).subscribe(i=>{this.appEvaluationResults[this.appName]||(this.appEvaluationResults[this.appName]={}),this.appEvaluationResults[this.appName][i.evalSetId]||(this.appEvaluationResults[this.appName][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName][i.evalSetId][n]||(this.appEvaluationResults[this.appName][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName][i.evalSetId][n]=o})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(nf,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(e){if(!e||!e.evaluationResults||!e.evaluationResults.evaluationResults)return this.evalMetrics;let A=e.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(A){return new(A||t)(zA(zc),zA(Jg))};static \u0275cmp=YA({type:t,selectors:[["app-eval-tab"]],viewQuery:function(A,i){if(A&1&&Ge(gh,5),A&2){let n;$A(n=Ae())&&(i.checkboxes=n)}},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},standalone:!1,features:[Kt],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(S(0,"div",0),NA(1,xTA,5,0,"div",1)(2,FTA,8,0,"div")(3,_TA,3,0,"div")(4,izA,9,4,"div"),R()),A&2&&(_(),FA(i.selectedEvalSet==""?1:-1),_(),FA(i.evalsets.length==0?2:-1),_(),FA(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),_(),FA(i.selectedEvalSet!=""?4:-1))},dependencies:[Ha,T2,gh,yaA,baA,RaA,MaA,vaA,LaA,kaA,SaA,xaA,FaA,wB,qaA],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:#9aa0a6;font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:#202124;border-radius:8px;box-shadow:0 2px 6px 2px #00000026,0 1px 2px #0000004d}.info-title[_ngcontent-%COMP%]{color:#e8eaed;font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:#e8eaed;font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--Blue-300, #8ab4f8);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:#8ab4f8}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,#8ab4f83d 0% 100%),#202124;border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--Blue-100, #d2e3fc);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--Grey-700, #5f6368);background-color:transparent;padding:8px 24px;margin-top:16px;color:#8ab4f8;cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:#202124}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--Grey-700, #5f6368);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:#202124}.result-btn.pass[_ngcontent-%COMP%]{color:#44c265}.result-btn.fail[_ngcontent-%COMP%]{color:#ff8983}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:#2d2d2d;padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:#e0e0e0;margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:#bbb}.status-card__failed[_ngcontent-%COMP%]{color:#ff6b6b}.status-card__separator[_ngcontent-%COMP%]{color:#666;margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:#63e6be}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#bdbdbd;cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:#bdbdbd;font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function ozA(t,e){t&1&&UA(0,"div",6)}function rzA(t,e){if(t&1&&(S(0,"div",3)(1,"div",5),ln(2,ozA,1,0,"div",6,Kd),R(),S(4,"span",7),tA(5),R(),S(6,"div",8),tA(7),S(8,"span",9),tA(9),R()(),S(10,"div",10)(11,"div",11),tA(12),R()()()),t&2){let A=e.$implicit,i=P();_(2),gn(i.getArray(A.level)),_(3),ot(" ",i.getSpanIcon(A.span.name)," "),_(),so("width",400-A.level*20,"px"),_(),ot(" ",A.span.name," "),_(2),ot(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),_(2),so("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),ot(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var of=class t{constructor(e,A){this.dialogRef=e;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration}buildSpanTree(e){let A=e.map(o=>nA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}static \u0275fac=function(A){return new(A||t)(zA(cr),zA($r))};static \u0275cmp=YA({type:t,selectors:[["app-trace-chart"]],standalone:!1,decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(S(0,"h2",0),tA(1),R(),S(2,"mat-dialog-content",1)(3,"div",2),ln(4,rzA,13,10,"div",3,Kn),R()(),S(6,"mat-dialog-actions")(7,"button",4),tA(8,"Close"),R()()),A&2&&(_(),ot("Invocation ",i.data.invocId,""),_(3),gn(i.flatTree))},dependencies:[ur,hs,ga,Ia,gg],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}"]})};var ZaA=(()=>{class t{get vertical(){return this._vertical}set vertical(A){this._vertical=Yo(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Yo(A)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(_e("aria-orientation",n.vertical?"vertical":"horizontal"),ue("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),WaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Ve]})}return t})();var azA=["*"],czA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',lzA=["unscopedContent"],gzA=["text"],IzA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],CzA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var dzA=new BA("ListOption"),BzA=(()=>{class t{_elementRef=m(te);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),EzA=(()=>{class t{_elementRef=m(te);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),hzA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),XaA=(()=>{class t{_listOption=m(dzA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,hostVars:4,hostBindings:function(i,n){i&2&&ue("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),QzA=(()=>{class t extends XaA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[et]})}return t})(),uzA=(()=>{class t extends XaA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[et]})}return t})(),fzA=new BA("MAT_LIST_CONFIG"),yG=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Yo(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Yo(A)}_disabled=!1;_defaultOptions=m(fzA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,hostVars:1,hostBindings:function(i,n){i&2&&_e("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),mzA=(()=>{class t{_elementRef=m(te);_ngZone=m(de);_listBase=m(yG,{optional:!0});_platform=m(Zt);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=Ns(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Yo(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Yo(A)}_disabled=!1;_subscriptions=new _t;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){m(Ln).load(Qr);let A=m(L2,{optional:!0}),i=m(mi,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new CB(this,this._ngZone,this._hostElement,this._platform,m(Dt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(ho(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,contentQueries:function(i,n,o){if(i&1&&(Ii(o,QzA,4),Ii(o,uzA,4)),i&2){let r;$A(r=Ae())&&(n._avatars=r),$A(r=Ae())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(_e("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),ue("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var $aA=(()=>{class t extends yG{static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[ct([{provide:yG,useExisting:t}]),et],ngContentSelectors:azA,decls:1,vars:0,template:function(i,n){i&1&&(Yt(),xe(0))},styles:[czA],encapsulation:2,changeDetection:0})}return t})(),AcA=(()=>{class t extends mzA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Yo(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(Ii(o,EzA,5),Ii(o,BzA,5),Ii(o,hzA,5)),i&2){let r;$A(r=Ae())&&(n._lines=r),$A(r=Ae())&&(n._titles=r),$A(r=Ae())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(Ge(lzA,5),Ge(gzA,5)),i&2){let o;$A(o=Ae())&&(n._unscopedContent=o.first),$A(o=Ae())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(_e("aria-current",n._getAriaCurrent()),ue("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[et],ngContentSelectors:CzA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=De();Yt(IzA),xe(0),S(1,"span",1),xe(2,1),xe(3,2),S(4,"span",2,0),mA("cdkObserveContent",function(){return LA(o),xA(n._updateItemLines(!0))}),xe(6,3),R()(),xe(7,4),xe(8,5),UA(9,"div",3)}},dependencies:[N6],encapsulation:2,changeDetection:0})}return t})();var ecA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[gB,Ve,Xa,ck,WaA]})}return t})();var wzA=["button"],DzA=["*"];function yzA(t,e){if(t&1&&(S(0,"div",2),UA(1,"mat-pseudo-checkbox",6),R()),t&2){let A=P();_(),vA("disabled",A.disabled)}}var tcA=new BA("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:vzA});function vzA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var icA=new BA("MatButtonToggleGroup"),bzA={provide:uc,useExisting:nr(()=>vG),multi:!0},Hy=class{source;value;constructor(e,A){this.source=e,this.value=A}},vG=(()=>{class t{_changeDetector=m(lt);_dir=m(bo,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=m($i).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new XA;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new XA;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=m(tcA,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new F2(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let n=A.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(A.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(A.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(A){let i=new Hy(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,n=!1,o=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(A,n)):this._updateModelValue(A,n)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(n,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let n of i)if(n.value===A){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&Ii(o,Oy,5),i&2){let r;$A(r=Ae())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._keydown(r)}),i&2&&(_e("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),ue("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",ae],value:"value",multiple:[2,"multiple","multiple",ae],disabled:[2,"disabled","disabled",ae],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ae],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",ae]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ct([bzA,{provide:icA,useExisting:t}])]})}return t})(),Oy=(()=>{class t{_changeDetectorRef=m(lt);_elementRef=m(te);_focusMonitor=m(Jr);_idGenerator=m($i);_animationMode=m(mi,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new XA;constructor(){m(Ln).load(Qr);let A=m(icA,{optional:!0}),i=m(new Er("tabindex"),{optional:!0})||"",n=m(tcA,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new Hy(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&Ge(wzA,5),i&2){let o;$A(o=Ae())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&mA("focus",function(){return n.focus()}),i&2&&(_e("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),ue("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",ae],appearance:"appearance",checked:[2,"checked","checked",ae],disabled:[2,"disabled","disabled",ae],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:DzA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=De();Yt(),S(0,"button",1,0),mA("click",function(){return LA(o),xA(n._onButtonClick())}),NA(2,yzA,2,1,"div",2),S(3,"span",3),xe(4),R()(),UA(5,"span",4)(6,"span",5)}if(i&2){let o=or(1);vA("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),_e("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(2),FA(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),_(4),vA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Gs,ak],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})(),ncA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Xa,Oy,Ve]})}return t})();function kzA(t,e){t&1&&(S(0,"p"),tA(1,"Conversations"),R())}function SzA(t,e){t&1&&(S(0,"p"),tA(1,"Trace"),R())}function RzA(t,e){if(t&1){let A=De();S(0,"mat-button-toggle-group",5),ta("ngModelChange",function(n){LA(A);let o=P(2);return Ja(o.view,n)||(o.view=n),xA(n)}),S(1,"mat-button-toggle",6),tA(2,"Events"),R(),S(3,"mat-button-toggle",7),tA(4,"Trace"),R()()}if(t&2){let A=P(2);ea("ngModel",A.view)}}function LzA(t,e){if(t&1){let A=De();S(0,"mat-list-item",8),mA("click",function(){let n=LA(A).$implicit,o=P(3);return xA(o.selectEvent(n.key))}),S(1,"span",9),tA(2),R(),S(3,"span",10),tA(4),R()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),Mt(i),_(2),Mt(A.value.title)}}function xzA(t,e){if(t&1&&(S(0,"mat-list",4),ln(1,LzA,5,2,"mat-list-item",null,Kn),Ta(3,"keyvalue"),R()),t&2){let A=P(2);_(),gn(uQ(3,0,A.eventsMap,A.mapOrderPreservingSort))}}function FzA(t,e){if(t&1){let A=De();S(0,"mat-list-item",8),mA("click",function(){let n=LA(A).$implicit,o=P(3);return xA(o.openDialog(n.key))}),S(1,"span",9),tA(2),R(),S(3,"span"),tA(4),R()()}if(t&2){let A=e.$implicit,i=e.$index,n=P(3);_(2),Mt(i),_(2),ot("Invocation ",n.findInvocIdFromTraceId(A.key),"")}}function NzA(t,e){if(t&1&&(S(0,"mat-list",4),ln(1,FzA,5,2,"mat-list-item",null,Kn),Ta(3,"keyvalue"),R()),t&2){let A=P(2);_(),gn(uQ(3,0,A.invocTraces,A.mapOrderPreservingSort))}}function _zA(t,e){if(t&1&&(S(0,"div",1)(1,"div",2),NA(2,kzA,2,0,"p")(3,SzA,2,0,"p")(4,RzA,5,1,"mat-button-toggle-group",3),R(),NA(5,xzA,4,3,"mat-list",4)(6,NzA,4,3,"mat-list",4),R()),t&2){let A=P();_(2),FA(A.isTraceView()?-1:2),_(),FA(A.isTraceView()?3:-1),_(),FA(A.traceData?4:-1),_(),FA(A.isTraceView()?-1:5),_(),FA(A.isTraceView()?6:-1)}}function GzA(t,e){t&1&&(S(0,"div")(1,"p"),tA(2,"No conversations"),R()())}var jC=class t{constructor(e){this.dialog=e}eventsMap=new Map;selectedEvent=new XA;traceData=[];llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";isDetailsPanelOpen=!1;view="events";invocTraces=new Map;ngOnChanges(e){"traceData"in e&&this.prcessTraceDataToInvocTrace()}showJson=Array(this.eventsMap.size).fill(!1);toggleJson(e){this.showJson[e]=!this.showJson[e]}selectEvent(e){this.selectedEvent.emit(e)}isTraceView(){return this.view=="trace"}mapOrderPreservingSort=(e,A)=>0;prcessTraceDataToInvocTrace(){!this.traceData||this.traceData.length==0||(this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map))}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}openDialog(e){let A=this.dialog.open(of,{width:"auto",maxWidth:"90vw",data:{spans:this.invocTraces.get(e),invocId:this.findInvocIdFromTraceId(e)}})}static \u0275fac=function(A){return new(A||t)(zA(Us))};static \u0275cmp=YA({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:"eventsMap",traceData:"traceData"},outputs:{selectedEvent:"selectedEvent"},standalone:!1,features:[Kt],decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(A,i){A&1&&(S(0,"div",0),NA(1,_zA,7,5,"div",1)(2,GzA,3,0,"div"),R()),A&2&&(_(),FA(i.eventsMap.size>0?1:-1),_(),FA(i.eventsMap.size==0?2:-1))},dependencies:[na,ja,$aA,AcA,vG,Oy,MQ],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:#9aa0a6;font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:#80868b;font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: orange}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: #2b2b2f}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid #5f6368;cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:#1c1b1c}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function KzA(t,e){t&1&&(S(0,"h2",0),tA(1,"Events List"),R())}function YzA(t,e){t&1&&(S(0,"h2",0),tA(1,"Send Response To Pending Event"),R())}function JzA(t,e){t&1&&(S(0,"h2",4),tA(1,"Events List"),R())}function TzA(t,e){t&1&&(S(0,"h2",4),tA(1,"Send Response To Pending Event"),R())}function zzA(t,e){if(t&1){let A=De();S(0,"div")(1,"p"),tA(2,"Name"),R(),S(3,"p"),tA(4),R(),S(5,"p"),tA(6,"Args"),R(),S(7,"p"),tA(8),R(),S(9,"mat-form-field",5)(10,"mat-label"),tA(11,"Response"),R(),S(12,"textarea",6),ta("ngModelChange",function(n){LA(A);let o=P();return Ja(o.selectedEvent.response,n)||(o.selectedEvent.response=n),xA(n)}),R()()()}if(t&2){let A=P();_(4),Mt(A.selectedEvent.name),_(4),Mt(A.argsToJson(A.selectedEvent.args)),_(4),ea("ngModel",A.selectedEvent.response)}}function HzA(t,e){if(t&1){let A=De();S(0,"button",7),mA("click",function(){LA(A);let n=P();return xA(n.sendResponse())}),tA(1),R()}if(t&2){let A=P();vA("disabled",A.sending),_(),ot(" ",A.sending?"Sending...":"Send"," ")}}var rf=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.agentService=i;this.selectedEvent=A.event,this.appName=A.appName,this.userId=A.userId,this.sessionId=A.sessionId,this.functionCallEventId=A.functionCallEventId}selectedEvent=null;appName;userId;sessionId;functionCallEventId;sending=!1;response=[];argsToJson(e){return JSON.stringify(e)}sendResponse(){this.sending=!0;let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};this.selectedEvent.response&&(e.functionCallEventId=this.functionCallEventId,e.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.runSse(e).subscribe({next:A=>_n(this,null,function*(){let i=JSON.parse(A);this.response.push(i)}),error:A=>console.error("SSE error:",A),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(A){return new(A||t)(zA(cr),zA($r),zA(K2))};static \u0275cmp=YA({type:t,selectors:[["app-pending-event-dialog"]],standalone:!1,decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(NA(0,KzA,2,0,"h2",0)(1,YzA,2,0,"h2",0)(2,JzA,2,0,"h2",1)(3,TzA,2,0,"h2",1),S(4,"mat-dialog-content"),NA(5,zzA,13,3,"div"),R(),S(6,"mat-dialog-actions"),NA(7,HzA,2,2,"button",2),S(8,"button",3),tA(9,"Close"),R()()),A&2&&(FA(i.selectedEvent?-1:0),_(),FA(i.selectedEvent?1:-1),_(),vA("ngIf",!i.selectedEvent),_(),vA("ngIf",i.selectedEvent),_(2),FA(i.selectedEvent?5:-1),_(2),FA(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[DQ,fc,na,ja,lg,r8,P1,ur,hs,ga,Ia,gg],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var dh=class t{constructor(e,A){this.dialogRef=e;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||t)(zA(cr),zA($r))};static \u0275cmp=YA({type:t,selectors:[["app-delete-session-dialog"]],standalone:!1,decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),tA(2),R(),S(3,"mat-dialog-content")(4,"p"),tA(5),R()(),S(6,"mat-dialog-actions",2)(7,"button",3),mA("click",function(){return i.onCancel()}),tA(8),R(),S(9,"button",4),mA("click",function(){return i.onConfirm()}),tA(10),R()()()),A&2&&(_(2),Mt(i.data.title),_(3),Mt(i.data.message),_(3),Mt(i.data.cancelButtonText),_(2),Mt(i.data.confirmButtonText))},dependencies:[ur,hs,ga,Ia],encapsulation:2})};function OzA(t,e){if(t&1){let A=De();S(0,"div",3),mA("click",function(){let n=LA(A).$implicit,o=P();return xA(o.getSession(n.id))}),S(1,"div",4)(2,"div",5),tA(3),R(),S(4,"div",6),tA(5),R()()()}if(t&2){let A=e.$implicit,i=P();vA("ngClass",A.id===i.sessionId?"session-item current":"session-item"),_(3),ot(" ",A.id," "),_(2),ot(" ",i.getDate(A)," ")}}var qC=class t{constructor(e,A){this.sessionService=e;this.dialog=A;this.refreshSessionsSubject.pipe(no(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(i=>{i=i.sort((n,o)=>Number(o.lastUpdateTime)-Number(n.lastUpdateTime)),this.sessionList=i})}userId="";appName="";sessionId="";sessionSelected=new XA;sessionReloaded=new XA;sessionList=[];refreshSessionsSubject=new HA;ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(e){let A=e.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(e){return{id:e?.id??"",appName:e?.appName??"",userId:e?.userId??"",state:e?.state??[],events:e?.events??[]}}reloadSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(e){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==e);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||t)(zA(Jg),zA(Us))};static \u0275cmp=YA({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},standalone:!1,decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),ln(2,OzA,6,3,"div",2,Kn),R()()),A&2&&(_(2),gn(i.sessionList))},dependencies:[Ha],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:#9aa0a6;font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:#303030;border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:#141414}.session-item.current[_ngcontent-%COMP%]{background-color:#004a77}.session-id[_ngcontent-%COMP%]{color:#e8eaed;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var Bh=class t{constructor(e){this.http=e}apiServerDomain=Es.getApiServerBaseUrl();getLatestArtifact(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(A){return new(A||t)(he(Bs))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var qzA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},VzA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",sf=class t extends cd{constructor(e,A){if(super(),this._socket=null,e instanceof Ze)this.destination=A,this.source=e;else{let i=this._config=Object.assign({},qzA);if(this._output=new HA,typeof e=="string")i.url=e;else for(let n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new qc}}lift(e){let A=new t(this._config,this.destination);return A.operator=e,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new qc),this._output=new HA}multiplex(e,A,i){let n=this;return new Ze(o=>{try{n.next(e())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(A())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:e,protocol:A,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=A?new e(i,A):new e(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new _t(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:l}=this._config;l&&l.next(a);let I=this.destination;this.destination=Zg.create(C=>{if(r.readyState===1)try{let{serializer:d}=this._config;r.send(d(C))}catch(d){this.destination.error(d)}},C=>{let{closingObserver:d}=this._config;d&&d.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(VzA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),I&&I instanceof qc&&s.add(I.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(e){let{source:A}=this;return A?A.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),e)}unsubscribe(){let{_socket:e}=this;e&&(e.readyState===1||e.readyState===0)&&e.close(),this._resetState(),super.unsubscribe()}};var Tg=class t{socket$;messages$=new li("");audioContext=new AudioContext({sampleRate:22e3});audioBuffer=[];audioIntervalId=null;lastAudioTime=0;closeReasonSubject=new HA;constructor(){}connect(e){this.socket$=new sf({url:e,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.processBufferedAudio(),250)}sendMessage(e){if(e.blob.data=this.arrayBufferToBase64(e.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(e)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(e){let A="",i=new Uint8Array(e),n=i.byteLength;for(let o=0;on+o.length,0),A=new Uint8Array(e),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;this.playPCM(A),this.audioBuffer=[]}base64ToUint8Array(e){let A=atob(this.urlSafeBase64ToBase64(e)),i=A.length,n=new Uint8Array(i);for(let o=0;o=32768&&(a-=65536),A[s]=a/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}urlSafeBase64ToBase64(e){let A=e.replace(/_/g,"/").replace(/-/g,"+");for(;A.length%4!==0;)A+="=";return A}emitWsCloseReason(e){this.closeReasonSubject.next(e)}onCloseReason(){return this.closeReasonSubject.asObservable()}static \u0275fac=function(A){return new(A||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Eh=class t{constructor(e){this.wsService=e}mediaRecorder;stream;audioContext;source;processor;audioBuffer=[];audioIntervalId=null;startRecording(){return _n(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule("./assets/audio-processor.js"),this.source=this.audioContext.createMediaStreamSource(this.stream);let e=new AudioWorkletNode(this.audioContext,"audio-processor");e.port.onmessage=A=>{let i=A.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(e),e.connect(this.audioContext.destination),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(e){console.error("Error accessing microphone:",e)}})}sendBufferedAudio(){if(this.audioBuffer.length===0)return;let e=this.audioBuffer.reduce((o,r)=>o+r.length,0),A=new Uint8Array(e),i=0;for(let o of this.audioBuffer)A.set(o,i),i+=o.length;let n={blob:{mime_type:"audio/pcm",data:A}};this.wsService.sendMessage(n),this.audioBuffer=[]}stopRecording(){this.processor&&this.processor.disconnect(),this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(e=>e.stop()),this.audioIntervalId&&(clearInterval(this.audioIntervalId),this.audioIntervalId=null)}float32ToPCM(e){let A=new ArrayBuffer(e.length*2),i=new DataView(A);for(let n=0;nthis.captureAndSendFrame(),1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}captureAndSendFrame(){return _n(this,null,function*(){try{let e=yield this.captureFrame(),i={blob:{mime_type:"image/jpeg",data:yield this.blobToUint8Array(e)}};this.wsService.sendMessage(i)}catch(e){console.error("Error capturing frame:",e)}})}blobToUint8Array(e){return _n(this,null,function*(){let A=yield e.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return _n(this,null,function*(){return new Promise((e,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){A(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?e(o):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}sendBufferedVideo(){if(this.videoBuffer.length===0)return;let e=this.videoBuffer.reduce((o,r)=>o+r.length,0),A=new Uint8Array(e),i=0;for(let o of this.videoBuffer)A.set(o,i),i+=o.length;let n={blob:{mime_type:"image/jpeg",data:A}};this.wsService.sendMessage(n),this.videoBuffer=[]}stopRecording(e){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),clearInterval(this.videoIntervalId),this.clearVideoElement(e)}clearVideoElement(e){let A=e.nativeElement.querySelector("video");A&&this.renderer.removeChild(e.nativeElement,A)}static \u0275fac=function(A){return new(A||t)(he(Tg),he(ds))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var j1=class t{constructor(e){this.http=e}apiServerDomain=Es.getApiServerBaseUrl();getEventTrace(e){let A=this.apiServerDomain+`/debug/trace/${e}`;return this.http.get(A)}getTrace(e){let A=this.apiServerDomain+`/debug/trace/session/${e}`;return this.http.get(A)}getEvent(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/events/${n}/graph`;return this.http.get(o)}static \u0275fac=function(A){return new(A||t)(he(Bs))};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var zg=class t{selectedTraceRowSource=new li(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new li(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndiciesSource=new li([]);hoveredMessageIndicies$=this.hoveredMessageIndiciesSource.asObservable();messagesSource=new li([]);messages$=this.messagesSource.asObservable();selectedRow(e){this.selectedTraceRowSource.next(e)}setEventData(e){this.eventDataSource.next(e)}setMessages(e){this.messagesSource.next(e)}setHoveredMessages(e,A){if(!e){this.hoveredMessageIndiciesSource.next([]);return}let i=e.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=A){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndiciesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndiciesSource.next([])}static \u0275fac=function(A){return new(A||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac,providedIn:"root"})};var XzA=["*"];var $zA=new BA("MAT_CARD_CONFIG"),rcA=(()=>{class t{appearance;constructor(){let A=m($zA,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&ue("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:XzA,decls:1,vars:0,template:function(i,n){i&1&&(Yt(),xe(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var scA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Ve]})}return t})();var eHA=t=>["segment",t],tHA=(t,e)=>({"segment-main":!0,expandable:t,expanded:e});function iHA(t,e){t&1&&UA(0,"div",9)}function nHA(t,e){if(t&1&&(S(0,"span",10),tA(1),R()),t&2){let A=P().$implicit;_(),Mt(A.description)}}function oHA(t,e){if(t&1&&(S(0,"section",11),UA(1,"ngx-json-viewer",12),R()),t&2){let A=P().$implicit,i=P();_(),vA("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function rHA(t,e){if(t&1){let A=De();S(0,"section",2)(1,"section",3),mA("click",function(){let n=LA(A).$implicit,o=P();return xA(o.toggle(n))}),NA(2,iHA,1,0,"div",4),S(3,"span",5),tA(4),R(),S(5,"span",6),tA(6,": "),R(),NA(7,nHA,2,1,"span",7),R(),NA(8,oHA,2,4,"section",8),R()}if(t&2){let A=e.$implicit,i=P();vA("ngClass",Yr(6,eHA,"segment-type-"+A.type)),_(),vA("ngClass",p2(8,tHA,i.isExpandable(A),A.expanded)),_(),vA("ngIf",i.isExpandable(A)),_(2),Mt(A.key),_(3),vA("ngIf",!A.expanded||!i.isExpandable(A)),_(),vA("ngIf",A.expanded&&i.isExpandable(A))}}var Qh=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let n={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,l){a[l]=n(c,r+"["+l+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(A,"$")}}return t.\u0275fac=function(A){return new(A||t)},t.\u0275cmp=YA({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[Kt],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(S(0,"section",0),NA(1,rHA,9,11,"section",1),R()),A&2&&(_(),vA("ngForOf",i.segments))},dependencies:[Ha,kp,DQ,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),acA=(()=>{class t{}return t.\u0275fac=function(A){return new(A||t)},t.\u0275mod=ge({type:t}),t.\u0275inj=le({imports:[g0]}),t})();var ccA=["*"],sHA=["content"],aHA=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],cHA=["mat-drawer","mat-drawer-content","*"];function lHA(t,e){if(t&1){let A=De();S(0,"div",1),mA("click",function(){LA(A);let n=P();return xA(n._onBackdropClicked())}),R()}if(t&2){let A=P();ue("mat-drawer-shown",A._isShowingBackdrop())}}function gHA(t,e){t&1&&(S(0,"mat-drawer-content"),xe(1,2),R())}var IHA=new BA("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:CHA}),lcA=new BA("MAT_DRAWER_CONTAINER");function CHA(){return!1}var SG=(()=>{class t extends h0{_platform=m(Zt);_changeDetectorRef=m(lt);_container=m(LG);constructor(){let A=m(te),i=m(N2),n=m(de);super(A,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(so("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),ue("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[ct([{provide:h0,useExisting:t}]),et],ngContentSelectors:ccA,decls:1,vars:0,template:function(i,n){i&1&&(Yt(),xe(0))},encapsulation:2,changeDetection:0})}return t})(),RG=(()=>{class t{_elementRef=m(te);_focusTrapFactory=m(P6);_focusMonitor=m(Jr);_platform=m(Zt);_ngZone=m(de);_renderer=m(Gi);_interactivityChecker=m(hu);_doc=m(tt,{optional:!0});_container=m(lcA,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Yo(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Yo(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Yo(A))}_opened=!1;_openedVia;_animationStarted=new HA;_animationEnd=new HA;openedChange=new XA(!0);_openedStream=this.openedChange.pipe(pt(A=>A),Je(()=>{}));openedStart=this._animationStarted.pipe(pt(()=>this.opened),dd(void 0));_closedStream=this.openedChange.pipe(pt(A=>!A),Je(()=>{}));closedStart=this._animationStarted.pipe(pt(()=>!this.opened),dd(void 0));_destroyed=new HA;onPositionChanged=new XA;_content;_modeChanged=new HA;_injector=m(Dt);_changeDetectorRef=m(lt);constructor(){this.openedChange.pipe(wt(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;Oh(A,"keydown").pipe(pt(i=>i.keyCode===27&&!this.disableClose&&!rr(i)),wt(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Vo(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let n=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),n}_setOpen(A,i,n){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(Pn(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&Ge(sHA,5),i&2){let o;$A(o=Ae())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(_e("align",null),so("visibility",!n._container&&!n.opened?"hidden":null),ue("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:ccA,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&(Yt(),S(0,"div",1,0),xe(2),R())},dependencies:[h0],encapsulation:2,changeDetection:0})}return t})(),LG=(()=>{class t{_dir=m(bo,{optional:!0});_element=m(te);_ngZone=m(de);_changeDetectorRef=m(lt);_animationMode=m(mi,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new Ec;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Yo(A)}_autosize=m(IHA);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Yo(A)}_backdropOverride;backdropClick=new XA;_start;_end;_left;_right;_destroyed=new HA;_doCheckSubject=new HA;_contentMargins={left:null,right:null};_contentMarginChanges=new HA;get scrollable(){return this._userContent||this._content}_injector=m(Dt);constructor(){let A=m(Zt),i=m(mc);this._dir?.change.pipe(wt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(wt(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(Qo(this._allDrawers),wt(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(Qo(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(Vc(10),wt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();A+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,A-=n}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(wt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(wt(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(wt(this._drawers.changes)).subscribe(()=>{Vo({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(wt(ho(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";A?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(Ii(o,SG,5),Ii(o,RG,5)),i&2){let r;$A(r=Ae())&&(n._content=r.first),$A(r=Ae())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&Ge(SG,5),i&2){let o;$A(o=Ae())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[ct([{provide:lcA,useExisting:t}])],ngContentSelectors:cHA,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&(Yt(aHA),NA(0,lHA,1,2,"div",0),xe(1),xe(2,1),NA(3,gHA,2,0,"mat-drawer-content")),i&2&&(FA(n.hasBackdrop?0:-1),_(3),FA(n._content?-1:3))},dependencies:[SG],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var gcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,E0,E0,Ve]})}return t})();var _G=["*"];function BHA(t,e){t&1&&xe(0)}var EHA=["tabListContainer"],hHA=["tabList"],QHA=["tabListInner"],uHA=["nextPaginator"],fHA=["previousPaginator"],mHA=t=>({animationDuration:t}),pHA=(t,e)=>({value:t,params:e});function wHA(t,e){}var DHA=["tabBodyWrapper"],yHA=["tabHeader"];function vHA(t,e){}function bHA(t,e){if(t&1&&NA(0,vHA,0,0,"ng-template",12),t&2){let A=P().$implicit;vA("cdkPortalOutlet",A.templateLabel)}}function MHA(t,e){if(t&1&&tA(0),t&2){let A=P().$implicit;Mt(A.textLabel)}}function kHA(t,e){if(t&1){let A=De();S(0,"div",7,2),mA("click",function(){let n=LA(A),o=n.$implicit,r=n.$index,s=P(),a=or(1);return xA(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=LA(A).$index,r=P();return xA(r._tabFocusChanged(n,o))}),UA(2,"span",8)(3,"div",9),S(4,"span",10)(5,"span",11),NA(6,bHA,1,1,null,12)(7,MHA,1,1),R()()()}if(t&2){let A=e.$implicit,i=e.$index,n=or(1),o=P();vo(A.labelClass),ue("mdc-tab--active",o.selectedIndex===i),vA("id",o._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",o.fitInkBarToContent),_e("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),_(3),vA("matRippleTrigger",n)("matRippleDisabled",A.disabled||o.disableRipple),_(3),FA(A.templateLabel?6:7)}}function SHA(t,e){t&1&&xe(0)}function RHA(t,e){if(t&1){let A=De();S(0,"mat-tab-body",13),mA("_onCentered",function(){LA(A);let n=P();return xA(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){LA(A);let o=P();return xA(o._setTabBodyWrapperHeight(n))}),R()}if(t&2){let A=e.$implicit,i=e.$index,n=P();vo(A.bodyClass),ue("mat-mdc-tab-body-active",n.selectedIndex===i),vA("id",n._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),_e("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var LHA=new BA("MatTabContent"),xHA=(()=>{class t{template=m(vn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matTabContent",""]],features:[ct([{provide:LHA,useExisting:t}])]})}return t})(),FHA=new BA("MatTabLabel"),dcA=new BA("MAT_TAB"),GG=(()=>{class t extends OO{_closestTab=m(dcA,{optional:!0});static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ct([{provide:FHA,useExisting:t}]),et]})}return t})(),BcA=new BA("MAT_TAB_GROUP"),af=(()=>{class t{_viewContainerRef=m(Un);_closestTabGroup=m(BcA,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new HA;position=null;origin=null;isActive=!1;constructor(){m(Ln).load(Qr)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new aa(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(Ii(o,GG,5),Ii(o,xHA,7,vn)),i&2){let r;$A(r=Ae())&&(n.templateLabel=r.first),$A(r=Ae())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&Ge(vn,7),i&2){let o;$A(o=Ae())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",ae],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ct([{provide:dcA,useExisting:t}]),Kt],ngContentSelectors:_G,decls:1,vars:0,template:function(i,n){i&1&&(Yt(),NA(0,BHA,1,0,"ng-template"))},encapsulation:2})}return t})(),xG="mdc-tab-indicator--active",IcA="mdc-tab-indicator--no-transition",FG=class{_items;_currentItem;constructor(e){this._items=e}hide(){this._items.forEach(e=>e.deactivateInkBar()),this._currentItem=void 0}alignToElement(e){let A=this._items.find(n=>n.elementRef.nativeElement===e),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(n),this._currentItem=A}}},NHA=(()=>{class t{_elementRef=m(te);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(xG);return}let n=i.getBoundingClientRect(),o=A.width/n.width,r=A.left-n.left;i.classList.add(IcA),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(IcA),i.classList.add(xG),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(xG)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),n=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ae]}})}return t})();var EcA=(()=>{class t extends NHA{elementRef=m(te);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275dir=OA({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(_e("aria-disabled",!!n.disabled),ue("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",ae]},features:[et]})}return t})(),CcA={passive:!0},_HA=650,GHA=100,UHA=(()=>{class t{_elementRef=m(te);_changeDetectorRef=m(lt);_viewportRuler=m(mc);_dir=m(bo,{optional:!0});_ngZone=m(de);_platform=m(Zt);_sharedResizeObserver=m(n8);_injector=m(Dt);_renderer=m(Gi);_animationMode=m(mi,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new HA;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new HA;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new XA;indexFocused=new XA;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(HM(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),CcA),HM(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),CcA))}ngAfterContentInit(){let A=this._dir?this._dir.change:ve("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Vc(32),wt(this._destroyed)),n=this._viewportRuler.change(150).pipe(wt(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new du(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Vo(o,{injector:this._injector}),ho(A,n,i,this._items.changes,this._itemsResized()).pipe(wt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?Ar:this._items.changes.pipe(Qo(this._items),no(A=>new Ze(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return A.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),eI(1),pt(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!rr(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,n=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,l=this.scrollDistance+n;sl&&(this.scrollDistance+=Math.min(a-l,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=A-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),AI(_HA,GHA).pipe(wt(ho(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(A);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",ae],selectedIndex:[2,"selectedIndex","selectedIndex",Mi]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),KHA=(()=>{class t extends UHA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new FG(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(n){return(A||(A=bi(t)))(n||t)}})();static \u0275cmp=YA({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&Ii(o,EcA,4),i&2){let r;$A(r=Ae())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(Ge(EHA,7),Ge(hHA,7),Ge(QHA,7),Ge(uHA,5),Ge(fHA,5)),i&2){let o;$A(o=Ae())&&(n._tabListContainer=o.first),$A(o=Ae())&&(n._tabList=o.first),$A(o=Ae())&&(n._tabListInner=o.first),$A(o=Ae())&&(n._nextPaginator=o.first),$A(o=Ae())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&ue("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",ae]},features:[et],ngContentSelectors:_G,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=De();Yt(),S(0,"div",5,0),mA("click",function(){return LA(o),xA(n._handlePaginatorClick("before"))})("mousedown",function(s){return LA(o),xA(n._handlePaginatorPress("before",s))})("touchend",function(){return LA(o),xA(n._stopInterval())}),UA(2,"div",6),R(),S(3,"div",7,1),mA("keydown",function(s){return LA(o),xA(n._handleKeydown(s))}),S(5,"div",8,2),mA("cdkObserveContent",function(){return LA(o),xA(n._onContentChanges())}),S(7,"div",9,3),xe(9),R()()(),S(10,"div",10,4),mA("mousedown",function(s){return LA(o),xA(n._handlePaginatorPress("after",s))})("click",function(){return LA(o),xA(n._handlePaginatorClick("after"))})("touchend",function(){return LA(o),xA(n._stopInterval())}),UA(12,"div",6),R()}i&2&&(ue("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),vA("matRippleDisabled",n._disableScrollBefore||n.disableRipple),_(3),ue("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),_e("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),_(5),ue("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),vA("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[Gs,N6],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),YHA=new BA("MAT_TABS_CONFIG"),JHA={translateTab:cg("translateTab",[wc("center, void, left-origin-center, right-origin-center",ar({transform:"none",visibility:"visible"})),wc("left",ar({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),wc("right",ar({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),la("* => left, * => right, left => center, right => center",$a("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),la("void => left-origin-center",[ar({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),$a("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),la("void => right-origin-center",[ar({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),$a("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},THA=(()=>{class t extends ca{_host=m(hcA);_centeringSub=_t.EMPTY;_leavingSub=_t.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Qo(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["","matTabBodyHost",""]],features:[et]})}return t})(),hcA=(()=>{class t{_elementRef=m(te);_dir=m(bo,{optional:!0});_positionIndex;_dirChangeSubscription=_t.EMPTY;_position;_translateTabComplete=new HA;_onCentering=new XA;_beforeCentering=new XA;_afterLeavingCenter=new XA;_onCentered=new XA(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=m(lt);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&Ge(ca,5),i&2){let o;$A(o=Ae())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=De();S(0,"div",1,0),mA("@translateTab.start",function(s){return LA(o),xA(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return LA(o),xA(n._translateTabComplete.next(s))}),NA(2,wHA,0,0,"ng-template",2),R()}i&2&&vA("@translateTab",p2(3,pHA,n._position,Yr(1,mHA,n.animationDuration)))},dependencies:[THA,h0],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[JHA.translateTab]}})}return t})(),zHA=!0,Py=(()=>{class t{_elementRef=m(te);_changeDetectorRef=m(lt);_animationMode=m(mi,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new Ec;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=_t.EMPTY;_tabLabelSubscription=_t.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!zHA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new XA;focusChange=new XA;animationDone=new XA;selectedTabChange=new XA(!0);_groupId;_isServer=!m(Zt).isBrowser;constructor(){let A=m(YHA,{optional:!0});this._groupId=m($i).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Qo(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new NG;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=ho(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,n){i.focusIndex=n,A.disabled||(this.selectedIndex=n)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&Ii(o,af,5),i&2){let r;$A(r=Ae())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(Ge(DHA,5),Ge(yHA,5)),i&2){let o;$A(o=Ae())&&(n._tabBodyWrapper=o.first),$A(o=Ae())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(_e("mat-align-tabs",n.alignTabs),vo("mat-"+(n.color||"primary")),so("--mat-tab-animation-duration",n.animationDuration),ue("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ae],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",ae],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",ae],selectedIndex:[2,"selectedIndex","selectedIndex",Mi],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",Mi],disablePagination:[2,"disablePagination","disablePagination",ae],disableRipple:[2,"disableRipple","disableRipple",ae],preserveContent:[2,"preserveContent","preserveContent",ae],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ct([{provide:BcA,useExisting:t}])],ngContentSelectors:_G,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=De();Yt(),S(0,"mat-tab-header",3,0),mA("indexFocused",function(s){return LA(o),xA(n._focusChanged(s))})("selectFocusedIndex",function(s){return LA(o),xA(n.selectedIndex=s)}),ln(2,kHA,8,17,"div",4,Kn),R(),NA(4,SHA,1,0),S(5,"div",5,1),ln(7,RHA,1,13,"mat-tab-body",6,Kn),R()}i&2&&(vA("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),_(2),gn(n._tabs),_(2),FA(n._isServer?4:-1),_(),ue("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),gn(n._tabs))},dependencies:[KHA,EcA,SO,Gs,ca,hcA],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),NG=class{index;tab};var QcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Ve]})}return t})();function HHA(t,e){t&1&&UA(0,"div",2)}var OHA=new BA("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var mcA=(()=>{class t{_elementRef=m(te);_ngZone=m(de);_changeDetectorRef=m(lt);_renderer=m(Gi);_cleanupTransitionEnd;_animationMode=m(mi,{optional:!0});constructor(){let A=m(OHA,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=fcA(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=fcA(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new XA;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(_e("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),vo("mat-"+n.color),ue("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",Mi],bufferValue:[2,"bufferValue","bufferValue",Mi],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(S(0,"div",0),UA(1,"div",1),NA(2,HHA,1,0,"div",2),R(),S(3,"div",3),UA(4,"span",4),R(),S(5,"div",5),UA(6,"span",4),R()),i&2&&(_(),so("flex-basis",n._getBufferBarFlexBasis()),_(),FA(n.mode==="buffer"?2:-1),_(),so("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function fcA(t,e=0,A=100){return Math.max(e,Math.min(A,t))}var pcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve]})}return t})();function YG(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ZC=YG();function McA(t){ZC=t}var gf={exec:()=>null};function xn(t,e=""){let A=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(Ps.caret,"$1"),A=A.replace(n,r),i},getRegex:()=>new RegExp(A,e)};return i}var Ps={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},jHA=/^(?:[ \t]*(?:\n|$))+/,qHA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,VHA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Cf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ZHA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,JG=/(?:[*+-]|\d{1,9}[.)])/,kcA=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ScA=xn(kcA).replace(/bull/g,JG).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),WHA=xn(kcA).replace(/bull/g,JG).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),TG=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,XHA=/^[^\n]+/,zG=/(?!\s*\])(?:\\.|[^\[\]\\])+/,$HA=xn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",zG).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),AOA=xn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,JG).getRegex(),Vy="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",HG=/|$))/,eOA=xn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",HG).replace("tag",Vy).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),RcA=xn(TG).replace("hr",Cf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Vy).getRegex(),tOA=xn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",RcA).getRegex(),OG={blockquote:tOA,code:qHA,def:$HA,fences:VHA,heading:ZHA,hr:Cf,html:eOA,lheading:ScA,list:AOA,newline:jHA,paragraph:RcA,table:gf,text:XHA},wcA=xn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Cf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Vy).getRegex(),iOA=Ne(nA({},OG),{lheading:WHA,table:wcA,paragraph:xn(TG).replace("hr",Cf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",wcA).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Vy).getRegex()}),nOA=Ne(nA({},OG),{html:xn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",HG).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:gf,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:xn(TG).replace("hr",Cf).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",ScA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),oOA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,rOA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,LcA=/^( {2,}|\\)\n(?!\s*$)/,sOA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,NcA=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,IOA=xn(NcA,"u").replace(/punct/g,Zy).getRegex(),COA=xn(NcA,"u").replace(/punct/g,FcA).getRegex(),_cA="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",dOA=xn(_cA,"gu").replace(/notPunctSpace/g,xcA).replace(/punctSpace/g,PG).replace(/punct/g,Zy).getRegex(),BOA=xn(_cA,"gu").replace(/notPunctSpace/g,lOA).replace(/punctSpace/g,cOA).replace(/punct/g,FcA).getRegex(),EOA=xn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,xcA).replace(/punctSpace/g,PG).replace(/punct/g,Zy).getRegex(),hOA=xn(/\\(punct)/,"gu").replace(/punct/g,Zy).getRegex(),QOA=xn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),uOA=xn(HG).replace("(?:-->|$)","-->").getRegex(),fOA=xn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",uOA).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),qy=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,mOA=xn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",qy).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),GcA=xn(/^!?\[(label)\]\[(ref)\]/).replace("label",qy).replace("ref",zG).getRegex(),UcA=xn(/^!?\[(ref)\](?:\[\])?/).replace("ref",zG).getRegex(),pOA=xn("reflink|nolink(?!\\()","g").replace("reflink",GcA).replace("nolink",UcA).getRegex(),jG={_backpedal:gf,anyPunctuation:hOA,autolink:QOA,blockSkip:gOA,br:LcA,code:rOA,del:gf,emStrongLDelim:IOA,emStrongRDelimAst:dOA,emStrongRDelimUnd:EOA,escape:oOA,link:mOA,nolink:UcA,punctuation:aOA,reflink:GcA,reflinkSearch:pOA,tag:fOA,text:sOA,url:gf},wOA=Ne(nA({},jG),{link:xn(/^!?\[(label)\]\((.*?)\)/).replace("label",qy).getRegex(),reflink:xn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",qy).getRegex()}),UG=Ne(nA({},jG),{emStrongRDelimAst:BOA,emStrongLDelim:COA,url:xn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},DcA=t=>yOA[t];function Hg(t,e){if(e){if(Ps.escapeTest.test(t))return t.replace(Ps.escapeReplace,DcA)}else if(Ps.escapeTestNoEncode.test(t))return t.replace(Ps.escapeReplaceNoEncode,DcA);return t}function ycA(t){try{t=encodeURI(t).replace(Ps.percentDecode,"%")}catch{return null}return t}function vcA(t,e){let A=t.replace(Ps.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=A.split(Ps.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length0?-2:-1}function bcA(t,e,A,i,n){let o=e.href,r=e.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:A,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function bOA(t,e,A){let i=t.match(A.other.indentCodeCompensation);if(i===null)return e;let n=i[1];return e.split(` +`).map(o=>{let r=o.match(A.other.beginningSpace);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(` +`)}var fh=class{options;rules;lexer;constructor(e){this.options=e||ZC}space(e){let A=this.rules.block.newline.exec(e);if(A&&A[0].length>0)return{type:"space",raw:A[0]}}code(e){let A=this.rules.block.code.exec(e);if(A){let i=A[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:A[0],codeBlockStyle:"indented",text:this.options.pedantic?i:lf(i,` +`)}}}fences(e){let A=this.rules.block.fences.exec(e);if(A){let i=A[0],n=bOA(i,A[3]||"",this.rules);return{type:"code",raw:i,lang:A[2]?A[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):A[2],text:n}}}heading(e){let A=this.rules.block.heading.exec(e);if(A){let i=A[2].trim();if(this.rules.other.endingHash.test(i)){let n=lf(i,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(i=n.trim())}return{type:"heading",raw:A[0],depth:A[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(e){let A=this.rules.block.hr.exec(e);if(A)return{type:"hr",raw:lf(A[0],` +`)}}blockquote(e){let A=this.rules.block.blockquote.exec(e);if(A){let i=lf(A[0],` +`).split(` +`),n="",o="",r=[];for(;i.length>0;){let s=!1,a=[],c;for(c=0;c1,o={type:"list",raw:"",ordered:n,start:n?+i.slice(0,-1):"",loose:!1,items:[]};i=n?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=n?i:"[*+-]");let r=this.rules.other.listItemRegex(i),s=!1;for(;e;){let c=!1,l="",I="";if(!(A=r.exec(e))||this.rules.block.hr.test(e))break;l=A[0],e=e.substring(l.length);let C=A[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,v=>" ".repeat(3*v.length)),d=e.split(` +`,1)[0],B=!C.trim(),E=0;if(this.options.pedantic?(E=2,I=C.trimStart()):B?E=A[1].length+1:(E=A[2].search(this.rules.other.nonSpaceChar),E=E>4?1:E,I=C.slice(E),E+=A[1].length),B&&this.rules.other.blankLine.test(d)&&(l+=d+` +`,e=e.substring(d.length+1),c=!0),!c){let v=this.rules.other.nextBulletRegex(E),L=this.rules.other.hrRegex(E),x=this.rules.other.fencesBeginRegex(E),y=this.rules.other.headingBeginRegex(E),F=this.rules.other.htmlBeginRegex(E);for(;e;){let U=e.split(` +`,1)[0],T;if(d=U,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),T=d):T=d.replace(this.rules.other.tabCharGlobal," "),x.test(d)||y.test(d)||F.test(d)||v.test(d)||L.test(d))break;if(T.search(this.rules.other.nonSpaceChar)>=E||!d.trim())I+=` +`+T.slice(E);else{if(B||C.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||x.test(C)||y.test(C)||L.test(C))break;I+=` +`+d}!B&&!d.trim()&&(B=!0),l+=U+` +`,e=e.substring(U.length+1),C=T.slice(E)}}o.loose||(s?o.loose=!0:this.rules.other.doubleBlankLine.test(l)&&(s=!0));let Q=null,u;this.options.gfm&&(Q=this.rules.other.listIsTask.exec(I),Q&&(u=Q[0]!=="[ ] ",I=I.replace(this.rules.other.listReplaceTask,""))),o.items.push({type:"list_item",raw:l,task:!!Q,checked:u,loose:!1,text:I,tokens:[]}),o.raw+=l}let a=o.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;o.raw=o.raw.trimEnd();for(let c=0;cC.type==="space"),I=l.length>0&&l.some(C=>this.rules.other.anyLine.test(C.raw));o.loose=I}if(o.loose)for(let c=0;c({text:a,tokens:this.lexer.inline(a),header:!1,align:r.align[c]})));return r}}lheading(e){let A=this.rules.block.lheading.exec(e);if(A)return{type:"heading",raw:A[0],depth:A[2].charAt(0)==="="?1:2,text:A[1],tokens:this.lexer.inline(A[1])}}paragraph(e){let A=this.rules.block.paragraph.exec(e);if(A){let i=A[1].charAt(A[1].length-1)===` +`?A[1].slice(0,-1):A[1];return{type:"paragraph",raw:A[0],text:i,tokens:this.lexer.inline(i)}}}text(e){let A=this.rules.block.text.exec(e);if(A)return{type:"text",raw:A[0],text:A[0],tokens:this.lexer.inline(A[0])}}escape(e){let A=this.rules.inline.escape.exec(e);if(A)return{type:"escape",raw:A[0],text:A[1]}}tag(e){let A=this.rules.inline.tag.exec(e);if(A)return!this.lexer.state.inLink&&this.rules.other.startATag.test(A[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(A[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(A[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(A[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:A[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:A[0]}}link(e){let A=this.rules.inline.link.exec(e);if(A){let i=A[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(i)){if(!this.rules.other.endAngleBracket.test(i))return;let r=lf(i.slice(0,-1),"\\");if((i.length-r.length)%2===0)return}else{let r=vOA(A[2],"()");if(r===-2)return;if(r>-1){let a=(A[0].indexOf("!")===0?5:4)+A[1].length+r;A[2]=A[2].substring(0,r),A[0]=A[0].substring(0,a).trim(),A[3]=""}}let n=A[2],o="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(n);r&&(n=r[1],o=r[3])}else o=A[3]?A[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(i)?n=n.slice(1):n=n.slice(1,-1)),bcA(A,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:o&&o.replace(this.rules.inline.anyPunctuation,"$1")},A[0],this.lexer,this.rules)}}reflink(e,A){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let n=(i[2]||i[1]).replace(this.rules.other.multipleSpaceGlobal," "),o=A[n.toLowerCase()];if(!o){let r=i[0].charAt(0);return{type:"text",raw:r,text:r}}return bcA(i,o,i[0],this.lexer,this.rules)}}emStrong(e,A,i=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!n||n[3]&&i.match(this.rules.other.unicodeAlphaNumeric))return;if(!(n[1]||n[2]||"")||!i||this.rules.inline.punctuation.exec(i)){let r=[...n[0]].length-1,s,a,c=r,l=0,I=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(I.lastIndex=0,A=A.slice(-1*e.length+r);(n=I.exec(A))!=null;){if(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!s)continue;if(a=[...s].length,n[3]||n[4]){c+=a;continue}else if((n[5]||n[6])&&r%3&&!((r+a)%3)){l+=a;continue}if(c-=a,c>0)continue;a=Math.min(a,a+c+l);let C=[...n[0]][0].length,d=e.slice(0,r+n.index+C+a);if(Math.min(r,a)%2){let E=d.slice(1,-1);return{type:"em",raw:d,text:E,tokens:this.lexer.inlineTokens(E)}}let B=d.slice(2,-2);return{type:"strong",raw:d,text:B,tokens:this.lexer.inlineTokens(B)}}}}codespan(e){let A=this.rules.inline.code.exec(e);if(A){let i=A[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(i),o=this.rules.other.startingSpaceChar.test(i)&&this.rules.other.endingSpaceChar.test(i);return n&&o&&(i=i.substring(1,i.length-1)),{type:"codespan",raw:A[0],text:i}}}br(e){let A=this.rules.inline.br.exec(e);if(A)return{type:"br",raw:A[0]}}del(e){let A=this.rules.inline.del.exec(e);if(A)return{type:"del",raw:A[0],text:A[2],tokens:this.lexer.inlineTokens(A[2])}}autolink(e){let A=this.rules.inline.autolink.exec(e);if(A){let i,n;return A[2]==="@"?(i=A[1],n="mailto:"+i):(i=A[1],n=i),{type:"link",raw:A[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}}}url(e){let A;if(A=this.rules.inline.url.exec(e)){let i,n;if(A[2]==="@")i=A[0],n="mailto:"+i;else{let o;do o=A[0],A[0]=this.rules.inline._backpedal.exec(A[0])?.[0]??"";while(o!==A[0]);i=A[0],A[1]==="www."?n="http://"+A[0]:n=A[0]}return{type:"link",raw:A[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(e){let A=this.rules.inline.text.exec(e);if(A){let i=this.lexer.state.inRawBlock;return{type:"text",raw:A[0],text:A[0],escaped:i}}}},xl=class t{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||ZC,this.options.tokenizer=this.options.tokenizer||new fh,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:Ps,block:jy.normal,inline:cf.normal};this.options.pedantic?(A.block=jy.pedantic,A.inline=cf.pedantic):this.options.gfm&&(A.block=jy.gfm,this.options.breaks?A.inline=cf.breaks:A.inline=cf.gfm),this.tokenizer.rules=A}static get rules(){return{block:jy,inline:cf}}static lex(e,A){return new t(A).lex(e)}static lexInline(e,A){return new t(A).inlineTokens(e)}lex(e){e=e.replace(Ps.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let A=0;A(n=r.call({lexer:this},e,A))?(e=e.substring(n.raw.length),A.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=A.at(-1);n.raw.length===1&&r!==void 0?r.raw+=` +`:A.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),A.push(n);continue}let o=e;if(this.options.extensions?.startBlock){let r=1/0,s=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},s),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(o=e.substring(0,r+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let r=A.at(-1);i&&r?.type==="paragraph"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n),i=o.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(e){let r="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,A}inline(e,A=[]){return this.inlineQueue.push({src:e,tokens:A}),A}inlineTokens(e,A=[]){let i=e,n=null;if(this.tokens.links){let s=Object.keys(this.tokens.links);if(s.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)s.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let o=!1,r="";for(;e;){o||(r=""),o=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},e,A))?(e=e.substring(s.raw.length),A.push(s),!0):!1))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);let c=A.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(s=this.tokenizer.emStrong(e,i,r)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),A.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),A.push(s);continue}let a=e;if(this.options.extensions?.startInline){let c=1/0,l=e.slice(1),I;this.options.extensions.startInline.forEach(C=>{I=C.call({lexer:this},l),typeof I=="number"&&I>=0&&(c=Math.min(c,I))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(s=this.tokenizer.inlineText(a)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(r=s.raw.slice(-1)),o=!0;let c=A.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return A}},Og=class{options;parser;constructor(e){this.options=e||ZC}space(e){return""}code({text:e,lang:A,escaped:i}){let n=(A||"").match(Ps.notSpaceStart)?.[0],o=e.replace(Ps.endingNewline,"")+` +`;return n?'
      '+(i?o:Hg(o,!0))+`
      +`:"
      "+(i?o:Hg(o,!0))+`
      +`}blockquote({tokens:e}){return`
      +${this.parser.parse(e)}
      +`}html({text:e}){return e}heading({tokens:e,depth:A}){return`${this.parser.parseInline(e)} +`}hr(e){return`
      +`}list(e){let A=e.ordered,i=e.start,n="";for(let s=0;s +`+n+" +`}listitem(e){let A="";if(e.task){let i=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=i+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=i+" "+Hg(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:i+" ",text:i+" ",escaped:!0}):A+=i+" "}return A+=this.parser.parse(e.tokens,!!e.loose),`
    • ${A}
    • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

      ${this.parser.parseInline(e)}

      +`}table(e){let A="",i="";for(let o=0;o${n}`),` + +`+A+` +`+n+`
      +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let A=this.parser.parseInline(e.tokens),i=e.header?"th":"td";return(e.align?`<${i} align="${e.align}">`:`<${i}>`)+A+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${Hg(e,!0)}`}br(e){return"
      "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:A,tokens:i}){let n=this.parser.parseInline(i),o=ycA(e);if(o===null)return n;e=o;let r='
      ",r}image({href:e,title:A,text:i,tokens:n}){n&&(i=this.parser.parseInline(n,this.parser.textRenderer));let o=ycA(e);if(o===null)return Hg(i);e=o;let r=`${i}{let s=o[r].flat(1/0);i=i.concat(this.walkTokens(s,A))}):o.tokens&&(i=i.concat(this.walkTokens(o.tokens,A)))}}return i}use(...e){let A=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(i=>{let n=nA({},i);if(n.async=this.defaults.async||n.async||!1,i.extensions&&(i.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if("renderer"in o){let r=A.renderers[o.name];r?A.renderers[o.name]=function(...s){let a=o.renderer.apply(this,s);return a===!1&&(a=r.apply(this,s)),a}:A.renderers[o.name]=o.renderer}if("tokenizer"in o){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=A[o.level];r?r.unshift(o.tokenizer):A[o.level]=[o.tokenizer],o.start&&(o.level==="block"?A.startBlock?A.startBlock.push(o.start):A.startBlock=[o.start]:o.level==="inline"&&(A.startInline?A.startInline.push(o.start):A.startInline=[o.start]))}"childTokens"in o&&o.childTokens&&(A.childTokens[o.name]=o.childTokens)}),n.extensions=A),i.renderer){let o=this.defaults.renderer||new Og(this.defaults);for(let r in i.renderer){if(!(r in o))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let s=r,a=i.renderer[s],c=o[s];o[s]=(...l)=>{let I=a.apply(o,l);return I===!1&&(I=c.apply(o,l)),I||""}}n.renderer=o}if(i.tokenizer){let o=this.defaults.tokenizer||new fh(this.defaults);for(let r in i.tokenizer){if(!(r in o))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let s=r,a=i.tokenizer[s],c=o[s];o[s]=(...l)=>{let I=a.apply(o,l);return I===!1&&(I=c.apply(o,l)),I}}n.tokenizer=o}if(i.hooks){let o=this.defaults.hooks||new uh;for(let r in i.hooks){if(!(r in o))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let s=r,a=i.hooks[s],c=o[s];uh.passThroughHooks.has(r)?o[s]=l=>{if(this.defaults.async)return Promise.resolve(a.call(o,l)).then(C=>c.call(o,C));let I=a.call(o,l);return c.call(o,I)}:o[s]=(...l)=>{let I=a.apply(o,l);return I===!1&&(I=c.apply(o,l)),I}}n.hooks=o}if(i.walkTokens){let o=this.defaults.walkTokens,r=i.walkTokens;n.walkTokens=function(s){let a=[];return a.push(r.call(this,s)),o&&(a=a.concat(o.call(this,s))),a}}this.defaults=nA(nA({},this.defaults),n)}),this}setOptions(e){return this.defaults=nA(nA({},this.defaults),e),this}lexer(e,A){return xl.lex(e,A??this.defaults)}parser(e,A){return Fl.parse(e,A??this.defaults)}parseMarkdown(e){return(i,n)=>{let o=nA({},n),r=nA(nA({},this.defaults),o),s=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&o.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof i>"u"||i===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof i!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected"));r.hooks&&(r.hooks.options=r,r.hooks.block=e);let a=r.hooks?r.hooks.provideLexer():e?xl.lex:xl.lexInline,c=r.hooks?r.hooks.provideParser():e?Fl.parse:Fl.parseInline;if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(i):i).then(l=>a(l,r)).then(l=>r.hooks?r.hooks.processAllTokens(l):l).then(l=>r.walkTokens?Promise.all(this.walkTokens(l,r.walkTokens)).then(()=>l):l).then(l=>c(l,r)).then(l=>r.hooks?r.hooks.postprocess(l):l).catch(s);try{r.hooks&&(i=r.hooks.preprocess(i));let l=a(i,r);r.hooks&&(l=r.hooks.processAllTokens(l)),r.walkTokens&&this.walkTokens(l,r.walkTokens);let I=c(l,r);return r.hooks&&(I=r.hooks.postprocess(I)),I}catch(l){return s(l)}}}onError(e,A){return i=>{if(i.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let n="

      An error occurred:

      "+Hg(i.message+"",!0)+"
      ";return A?Promise.resolve(n):n}if(A)return Promise.reject(i);throw i}}},VC=new KG;function En(t,e){return VC.parse(t,e)}En.options=En.setOptions=function(t){return VC.setOptions(t),En.defaults=VC.defaults,McA(En.defaults),En};En.getDefaults=YG;En.defaults=ZC;En.use=function(...t){return VC.use(...t),En.defaults=VC.defaults,McA(En.defaults),En};En.walkTokens=function(t,e){return VC.walkTokens(t,e)};En.parseInline=VC.parseInline;En.Parser=Fl;En.parser=Fl.parse;En.Renderer=Og;En.TextRenderer=If;En.Lexer=xl;En.lexer=xl.lex;En.Tokenizer=fh;En.Hooks=uh;En.parse=En;var fye=En.options,mye=En.setOptions,pye=En.use,wye=En.walkTokens,Dye=En.parseInline;var yye=Fl.parse,vye=xl.lex;var MOA=["*"],kOA="Copy",SOA="Copied",ROA=(()=>{class t{constructor(){this._buttonClick$=new HA,this.copied$=this._buttonClick$.pipe(no(()=>ho(ve(!0),AI(3e3).pipe(dd(!1)))),Zc(),$g(1)),this.copiedText$=this.copied$.pipe(Qo(!1),Je(A=>A?SOA:kOA))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=YA({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(S(0,"button",0),Ta(1,"async"),mA("click",function(){return n.onCopyToClipboardClick()}),tA(2),Ta(3,"async"),R()),i&2&&(ue("copied",w2(1,3,n.copied$)),_(2),Mt(w2(3,5,n.copiedText$)))},dependencies:[bQ],encapsulation:2,changeDetection:0})}}return t})(),LOA=new BA("CLIPBOARD_OPTIONS");var qG=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(qG||{}),KcA=new BA("MARKED_EXTENSIONS"),xOA=new BA("MARKED_OPTIONS"),FOA=new BA("MERMAID_OPTIONS"),NOA="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",_OA="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",GOA="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",UOA="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",KOA="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",YOA="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",YcA=new BA("SECURITY_CONTEXT");var JcA=(()=>{class t{get options(){return this._options}set options(A){this._options=nA(nA({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,n,o,r,s,a,c){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new Og},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new HA,this.reload$=this._reload$.asObservable(),this.options=n}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=nA(nA({},this.options),i.markedOptions),l=c.renderer||this.renderer||new Og;this.extensions&&(this.renderer=this.extendsRendererForExtensions(l)),s&&(this.renderer=this.extendsRendererForMermaid(l));let I=this.trimIndentation(A),C=n?this.decodeHtml(I):I,d=r?this.parseEmoji(C):C,B=this.parseMarked(d,c,o);return(a?B:this.sanitizer.sanitize(this.securityContext,B))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:l}=i;s&&this.renderKatex(A,nA(nA({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(A,nA(nA(nA({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),l)),o&&this.renderClipboard(A,n,nA(nA(nA({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(YOA);return this.http.get(A,{responseType:"text"}).pipe(Je(i=>this.handleExtension(A,i)))}highlight(A){if(!$l(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!$l(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&En.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let n=A.code;return A.code=o=>o.lang==="mermaid"?`
      ${o.text}
      `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let n=A.lastIndexOf("://"),o=n>-1?A.substring(n+4):A,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` +`+i+"\n```":i}parseMarked(A,i,n=!1){if(i.renderer){let o=nA({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,En.use({renderer:o})}return n?En.parseInline(A,i):En.parse(A,i)}parseEmoji(A){if(!$l(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(NOA);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if($l(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(_OA);renderMathInElement(A,i)}}renderClipboard(A,i,n){if(!$l(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(UOA);if(!i)throw new Error(KOA);let{buttonComponent:o,buttonTemplate:r}=n,s=A.querySelectorAll("pre");for(let a=0;aI.classList.add("hover"),l.onmouseleave=()=>I.classList.remove("hover");let C;if(o){let B=i.createComponent(o);C=B.hostView,B.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let B=i.createComponent(ROA);C=B.hostView,B.changeDetectorRef.markForCheck()}let d;C.rootNodes.forEach(B=>{I.appendChild(B),d=new ClipboardJS(B,{text:()=>c.innerText})}),C.onDestroy(()=>d.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!$l(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(GOA);let n=A.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(A){if(!A)return"";let i;return A.split(` +`).map(n=>{let o=i;return n.length>0&&(o=isNaN(o)?n.search(/\S|$/):Math.min(n.search(/\S|$/),o)),isNaN(i)&&(i=o),o?n.substring(o):n}).join(` +`)}static{this.\u0275fac=function(i){return new(i||t)(he(LOA,8),he(KcA,8),he(xOA,8),he(FOA,8),he(hc),he(YcA),he(Bs,8),he(il))}}static{this.\u0275prov=SA({token:t,factory:t.\u0275fac})}}return t})(),TcA=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,n){this.element=A,this.markdownService=i,this.viewContainerRef=n,this.error=new XA,this.load=new XA,this.ready=new XA,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new HA}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(wt(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return _n(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(A,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,qG.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,qG.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let n=A.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let n=A.toString();for(let o=0,r=i.length;o{let i=TOA(A)?Ne(nA({},A),{multi:!0}):{provide:KcA,useValue:A,multi:!0};return[...e,i]},[])}var zcA=(()=>{class t{static forRoot(A){return{ngModule:t,providers:[JOA(A)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ge({type:t})}static{this.\u0275inj=le({imports:[g0]})}}return t})();var OOA=["switch"],POA=["*"];function jOA(t,e){t&1&&(S(0,"span",10),hr(),S(1,"svg",12),UA(2,"path",13),R(),S(3,"svg",14),UA(4,"path",15),R()())}var qOA=new BA("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),VOA={provide:uc,useExisting:nr(()=>Xy),multi:!0},Wy=class{source;checked;constructor(e,A){this.source=e,this.checked=A}},Xy=(()=>{class t{_elementRef=m(te);_focusMonitor=m(Jr);_changeDetectorRef=m(lt);defaults=m(qOA);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new Wy(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new XA;toggleChange=new XA;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){m(Ln).load(Qr);let A=m(new Er("tabindex"),{optional:!0}),i=this.defaults,n=m(mi,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=m($i).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new Wy(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&Ge(OOA,5),i&2){let o;$A(o=Ae())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(Fs("id",n.id),_e("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),vo(n.color?"mat-"+n.color:""),ue("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",ae],color:"color",disabled:[2,"disabled","disabled",ae],disableRipple:[2,"disableRipple","disableRipple",ae],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Mi(A)],checked:[2,"checked","checked",ae],hideIcon:[2,"hideIcon","hideIcon",ae],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ct([VOA,{provide:d0,useExisting:t,multi:!0}]),Kt],ngContentSelectors:POA,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=De();Yt(),S(0,"div",1)(1,"button",2,0),mA("click",function(){return LA(o),xA(n._handleClick())}),UA(3,"span",3),S(4,"span",4)(5,"span",5)(6,"span",6),UA(7,"span",7),R(),S(8,"span",8),UA(9,"span",9),R(),NA(10,jOA,5,0,"span",10),R()()(),S(11,"label",11),mA("click",function(s){return LA(o),xA(s.stopPropagation())}),xe(12),R()()}if(i&2){let o=or(2);vA("labelPosition",n.labelPosition),_(),ue("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),vA("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),_e("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(8),vA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),FA(n.hideIcon?-1:10),_(),vA("for",n.buttonId),_e("id",n._labelId)}},dependencies:[Gs,BB],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();var HcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Xy,Ve,Ve]})}return t})();var df=class t{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=YA({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},standalone:!1,decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div"),UA(2,"ngx-json-viewer",1),R()()),A&2&&(_(2),vA("json",i.sessionState))},dependencies:[Qh],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var Bf=class t{constructor(e,A){this.el=e;this.renderer=A;this.sideDrawerMaxWidth=window.innerWidth/2}sideDrawerMinWidth=310;sideDrawerMaxWidth;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorX:e.clientX,startingWidth:this.sideDrawerWidth},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=e.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(e){let A=Math.min(Math.max(e,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.body.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let e=getComputedStyle(document.body).getPropertyValue("--side-drawer-width"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(zA(te),zA(Gi))};static \u0275dir=OA({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Ud)("mouseup",function(){return i.onMouseUp()},!1,Ud)("resize",function(){return i.onResize()},!1,cp)},standalone:!1})};var Ef=class t{constructor(e,A){this.el=e;this.renderer=A;this.bottomMaxHeight=window.innerHeight}bottomMinHeight=310;bottomMaxHeight;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorY:0,startingHeight:0};ngAfterViewInit(){this.resizeHandle=document.getElementsByClassName("bottom-resize-handler")[0],this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorY:e.clientY,startingHeight:this.bottomPanelHeight},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-e.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(e){let A=Math.min(Math.max(e,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let e=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(zA(te),zA(Gi))};static \u0275dir=OA({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Ud)("mouseup",function(){return i.onMouseUp()},!1,Ud)("resize",function(){return i.onResize()},!1,cp)},standalone:!1})};var OcA=new BA("CdkAccordion");var PcA=(()=>{class t{accordion=m(OcA,{optional:!0,skipSelf:!0});_changeDetectorRef=m(lt);_expansionDispatcher=m(uB);_openCloseAllSubscription=_t.EMPTY;closed=new XA;opened=new XA;destroyed=new XA;expandedChange=new XA;id=m($i).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ae],disabled:[2,"disabled","disabled",ae]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[ct([{provide:OcA,useValue:void 0}])]})}return t})(),jcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({})}return t})();var APA=["body"],ePA=["bodyWrapper"],tPA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],iPA=["mat-expansion-panel-header","*","mat-action-row"];function nPA(t,e){}var oPA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],rPA=["mat-panel-title","mat-panel-description","*"];function sPA(t,e){t&1&&(S(0,"span",1),hr(),S(1,"svg",2),UA(2,"path",3),R()())}var qcA=new BA("MAT_ACCORDION"),VcA=new BA("MAT_EXPANSION_PANEL"),aPA=(()=>{class t{_template=m(vn);_expansionPanel=m(VcA,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),ZcA=new BA("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),VG=(()=>{class t extends PcA{_viewContainerRef=m(Un);_animationsDisabled=m(mi,{optional:!0})==="NoopAnimations";_document=m(tt);_ngZone=m(de);_elementRef=m(te);_renderer=m(Gi);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new XA;afterCollapse=new XA;_inputChanges=new HA;accordion=m(qcA,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=m($i).getId("mat-expansion-panel-header-");constructor(){super();let A=m(ZcA,{optional:!0});this._expansionDispatcher=m(uB),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(Qo(null),pt(()=>this.expanded&&!this._portal),Pn(1)).subscribe(()=>{this._portal=new aa(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&Ii(o,aPA,5),i&2){let r;$A(r=Ae())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(Ge(APA,5),Ge(ePA,5)),i&2){let o;$A(o=Ae())&&(n._body=o.first),$A(o=Ae())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&ue("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ae],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[ct([{provide:qcA,useValue:void 0},{provide:VcA,useExisting:t}]),et,Kt],ngContentSelectors:iPA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&(Yt(tPA),xe(0),S(1,"div",2,0)(3,"div",3,1)(5,"div",4),xe(6,1),NA(7,nPA,0,0,"ng-template",5),R(),xe(8,2),R()()),i&2&&(_(),_e("inert",n.expanded?null:""),_(2),vA("id",n.id),_e("aria-labelledby",n._headerId),_(4),vA("cdkPortalOutlet",n._portal))},dependencies:[ca],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var WcA=(()=>{class t{panel=m(VG,{host:!0});_element=m(te);_focusMonitor=m(Jr);_changeDetectorRef=m(lt);_parentChangeSubscription=_t.EMPTY;constructor(){m(Ln).load(Qr);let A=this.panel,i=m(ZcA,{optional:!0}),n=m(new Er("tabindex"),{optional:!0}),o=A.accordion?A.accordion._stateChanges.pipe(pt(r=>!!(r.hideToggle||r.togglePosition))):Ar;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=ho(A.opened,A.closed,o,A._inputChanges.pipe(pt(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(pt(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:rr(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&mA("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(_e("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),so("height",n._getHeaderHeight()),ue("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Mi(A)]},ngContentSelectors:rPA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&(Yt(oPA),S(0,"span",0),xe(1),xe(2,1),xe(3,2),R(),NA(4,sPA,3,0,"span",1)),i&2&&(ue("mat-content-hide-toggle",!n._showToggle()),_(4),FA(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var XcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=OA({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();var $cA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,jcA,sg]})}return t})();var AlA=t=>({color:t});function lPA(t,e){t&1&&UA(0,"div",8)}function gPA(t,e){if(t&1&&(S(0,"span",14),tA(1),R()),t&2){let A=P().$implicit,i=P();so("left",i.getRelativeStart(A.span)+5,"%"),_(),ot("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function IPA(t,e){if(t&1){let A=De();S(0,"div",5),mA("click",function(){let n=LA(A).$implicit,o=P();return xA(o.selectRow(n))})("mouseenter",function(){let n=LA(A).$implicit,o=P();return xA(o.onHover(n))})("mouseleave",function(){LA(A);let n=P();return xA(n.onHoverOut())}),S(1,"div",6)(2,"div",7),ln(3,lPA,1,0,"div",8,Kd),R(),S(5,"span",9),tA(6),R(),S(7,"div",10),tA(8),R()(),S(9,"div",11)(10,"div",12),tA(11),R(),NA(12,gPA,2,3,"span",13),R()()}if(t&2){let A=e.$implicit,i=P();ue("selected",i.rowSelected(A)),_(3),gn(i.getArray(A.level)),_(2),vA("ngStyle",Yr(14,AlA,i.isEventRow(A)?"#8AB4F8":"white")),_(),ot(" ",i.getSpanIcon(A.span.name)," "),_(),so("width",400-A.level*20,"px"),vA("ngStyle",Yr(16,AlA,i.isEventRow(A)?"#8AB4F8":"white")),_(),ot(" ",A.span.name," "),_(2),so("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),ot(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),_(),FA(i.getRelativeWidth(A.span)<10?12:-1)}}var hf=class t{constructor(e){this.traceService=e}spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(e){let A=e.map(o=>nA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}selectRow(e){if(this.selectedRow&&this.selectedRow.span_id==e.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(e.span),this.traceService.setHoveredMessages(e.span,this.invocationId)}rowSelected(e){return this.selectedRow==e.span}isEventRow(e){if(!e.span.attributes)return!1;let A=e?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(e){this.traceService.setHoveredMessages(e.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||t)(zA(zg))};static \u0275cmp=YA({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},standalone:!1,decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px",3,"ngStyle"],[1,"trace-label",3,"ngStyle"],[1,"trace-bar-container"],[1,"trace-bar"],[2,"position","absolute","color","#8dabbf",3,"left"],[2,"position","absolute","color","#8dabbf"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),tA(2,"Invocation ID: "),S(3,"div",2),tA(4),R()(),S(5,"div",3),ln(6,IPA,13,18,"div",4,Kn),R()()),A&2&&(_(4),Mt(i.invocationId),_(2),gn(i.flatTree))},dependencies:[yQ],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover, .trace-row.selected[_ngcontent-%COMP%]{background-color:#3b3d3c}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}"]})};function dPA(t,e){if(t&1&&(S(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),tA(4),R()(),UA(5,"app-trace-tree",4),R()()),t&2){let A=e.$implicit,i=P();_(4),ot(" ",i.invocToUserMsg.get(A.key)," "),_(),vA("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var Qf=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(e){"traceData"in e&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map);for(let[e,A]of this.invocTraces)this.invocToUserMsg.set(e,this.findUserMsgFromInvocGroup(A))}getArray(e){return Array.from({length:e})}findUserMsgFromInvocGroup(e){let A=e?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1).parts[0]?.text??"[attachment]"}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(e,A)=>0;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=YA({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},standalone:!1,features:[Kt],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),tA(2,"Invocations"),R(),S(3,"div",2),ln(4,dPA,6,3,"div",3,Kn),Ta(6,"keyvalue"),R()()),A&2&&(_(4),gn(uQ(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[hs,VG,WcA,XcA,hf,MQ],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: #333537}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: red}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: #8e918f}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15} .mat-expansion-panel-header.mat-expanded:focus{background-color:#444746!important} .mat-expansion-panel-header.mat-expanded{background-color:#444746!important} .mat-expansion-panel-header.mat-expanded:hover{background-color:#444746!important} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};function EPA(t,e){if(t&1){let A=De();S(0,"div",11),mA("click",function(){LA(A);let n=P();return xA(n.openViewImageDialog(n.rawSvgString))}),R()}if(t&2){let A=P();vA("innerHtml",A.renderedEventGraph,mI)}}var uf=class t{constructor(e,A,i,n){this.dialog=e;this.traceService=A;this.eventService=i;this.sanitizer=n}userId="";sessionId="";appName="";panelClosed=new XA;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";ngOnInit(){this.traceService.selectedTraceRow$.subscribe(e=>{this.selectedRow=e;let A=this.getEventIdFromSpan();A&&(this.eventService.getEventTrace(A).subscribe(i=>{this.llmRequest=JSON.parse(i[this.llmRequestKey]),this.llmResponse=JSON.parse(i[this.llmResponseKey])}),this.getEventGraph(A))}),this.traceService.eventData$.subscribe(e=>this.eventData=e)}openViewImageDialog(e){let A=this.dialog.open(m0,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(e){this.eventService.getEvent(this.userId,this.appName,this.sessionId,e).subscribe(A=>_n(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,o=(yield vu()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=o,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(o)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||t)(zA(Us),zA(zg),zA(j1),zA(il))};static \u0275cmp=YA({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},standalone:!1,decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),UA(4,"ngx-json-viewer",4),R()(),S(5,"mat-tab",5)(6,"div",3),UA(7,"ngx-json-viewer",4),R()(),S(8,"mat-tab",6)(9,"div",3),UA(10,"ngx-json-viewer",4),R()(),S(11,"mat-tab",7)(12,"div",8),NA(13,EPA,1,1,"div",9),R()()(),S(14,"button",10),mA("click",function(){return i.closePanel()}),S(15,"mat-icon"),tA(16,"close"),R()()()),A&2&&(_(4),vA("json",i.getEventDetails()),_(3),vA("json",i.llmRequest),_(3),vA("json",i.llmResponse),_(3),FA(i.renderedEventGraph?13:-1))},dependencies:[T2,EB,Qh,af,Py],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:#1b1b1b}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var QPA=["videoContainer"],uPA=["sideDrawer"],fPA=["autoScroll"],mPA=["messageTextarea"],pPA=["bottomPanel"],wPA=t=>({"edit-mode":t}),DPA=()=>[],yPA=(t,e)=>({"user-message":t,"bot-message":e}),vPA=(t,e)=>({"eval-pass":t,"eval-fail":e}),bPA=t=>({"eval-fail":t}),WG=t=>({"background-color":t}),MPA=(t,e)=>({"font-style":t,color:e}),tlA=t=>({"function-event-button-highlight":t}),XG=t=>({hidden:t});function kPA(t,e){if(t&1){let A=De();S(0,"span",28),mA("click",function(){LA(A);let n=P();return xA(n.toggleSidePanel())}),tA(1,"left_panel_open"),R()}}function SPA(t,e){if(t&1&&(S(0,"mat-option",17),tA(1),R()),t&2){let A=e.$implicit;vA("value",A),_(),Mt(A)}}function RPA(t,e){t&1&&ln(0,SPA,2,2,"mat-option",17,Kn),t&2&&gn(e)}function LPA(t,e){if(t&1&&(S(0,"mat-option",17),tA(1),R()),t&2){let A=P();vA("value",A.selectedAppControl.value),_(),Mt(A.selectedAppControl.value)}}function xPA(t,e){t&1&&(S(0,"span",37),tA(1,"Trace"),R())}function FPA(t,e){t&1&&(S(0,"span",37),tA(1,"Events"),R())}function NPA(t,e){t&1&&(S(0,"span",37),tA(1,"State"),R())}function _PA(t,e){t&1&&(S(0,"span",37),tA(1,"Artifacts"),R())}function GPA(t,e){t&1&&(S(0,"span",37),tA(1,"Sessions"),R())}function UPA(t,e){t&1&&(S(0,"span",37),tA(1,"Eval"),R())}function KPA(t,e){if(t&1){let A=De();S(0,"mat-tab"),NA(1,UPA,2,0,"ng-template",31),S(2,"app-eval-tab",38),mA("shouldShowTab",function(n){LA(A);let o=P(2);return xA(o.handleShouldShowEvalTab(n))})("sessionSelected",function(n){LA(A);let o=P(2);return xA(o.updateWithSelectedSession(n))})("evalCaseSelected",function(n){LA(A);let o=P(2);return xA(o.updateWithSelectedEvalCase(n))})("evalSetIdSelected",function(n){LA(A);let o=P(2);return xA(o.updateSelectedEvalSetId(n))})("shouldReturnToSession",function(n){LA(A);let o=P(2);return xA(o.handleReturnToSession(n))})("evalNotInstalledMsg",function(n){LA(A);let o=P(2);return xA(o.handleEvalNotInstalled(n))}),R()()}if(t&2){let A=P(2);_(2),vA("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function YPA(t,e){if(t&1){let A=De();S(0,"div",18)(1,"mat-tab-group",29),mA("selectedTabChange",function(n){LA(A);let o=P();return xA(o.handleTabChange(n))}),S(2,"mat-tab",30),NA(3,xPA,2,0,"ng-template",31),UA(4,"app-trace-tab",32),R(),S(5,"mat-tab",30),NA(6,FPA,2,0,"ng-template",31),S(7,"app-event-tab",33),mA("selectedEvent",function(n){LA(A);let o=P();return xA(o.selectEvent(n))}),R()(),S(8,"mat-tab"),NA(9,NPA,2,0,"ng-template",31),UA(10,"app-state-tab",34),R(),S(11,"mat-tab"),NA(12,_PA,2,0,"ng-template",31),UA(13,"app-artifact-tab",35),R(),S(14,"mat-tab"),NA(15,GPA,2,0,"ng-template",31),S(16,"app-session-tab",36),mA("sessionSelected",function(n){LA(A);let o=P();return xA(o.updateWithSelectedSession(n))})("sessionReloaded",function(n){LA(A);let o=P();return xA(o.updateSessionState(n))}),R()(),NA(17,KPA,3,3,"mat-tab"),R()()}if(t&2){let A=P();_(4),vA("traceData",A.traceData),_(3),vA("eventsMap",A.eventData)("traceData",A.traceData),_(3),vA("sessionState",A.currentSessionState),_(3),vA("artifacts",A.artifacts),_(3),vA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),_(),FA(A.shouldShowEvalTab()?17:-1)}}function JPA(t,e){if(t&1){let A=De();S(0,"div",51),mA("click",function(){LA(A);let n=P(2);return xA(n.openViewImageDialog(n.rawSvgString))}),R()}if(t&2){let A=P(2);vA("innerHtml",A.renderedEventGraph,mI)}}function TPA(t,e){if(t&1){let A=De();S(0,"div",19)(1,"div",39)(2,"div",40)(3,"mat-paginator",41),mA("page",function(n){LA(A);let o=P();return xA(o.handlePageEvent(n))}),R(),S(4,"button",42)(5,"mat-icon",43),mA("click",function(){LA(A);let n=P();return xA(n.closeSelectedEvent())}),tA(6,"close"),R()()()(),S(7,"div")(8,"mat-tab-group")(9,"mat-tab",44)(10,"div",45),NA(11,JPA,1,1,"div",46),R(),S(12,"div",47),UA(13,"ngx-json-viewer",48),R()(),S(14,"mat-tab",49)(15,"div",47),UA(16,"ngx-json-viewer",48),R()(),S(17,"mat-tab",50)(18,"div",47),UA(19,"ngx-json-viewer",48),R()()()()()}if(t&2){let A=P();_(3),vA("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),_(8),FA(A.renderedEventGraph?11:-1),_(2),vA("json",A.selectedEvent),_(3),vA("json",A.llmRequest),_(3),vA("json",A.llmResponse)}}function zPA(t,e){if(t&1){let A=De();S(0,"span",53),mA("click",function(){LA(A);let n=P(2);return xA(n.toggleSidePanel())}),tA(1,"left_panel_open"),R()}}function HPA(t,e){if(t&1){let A=De();S(0,"button",58),mA("click",function(){LA(A);let n=P(3);return xA(n.cancelEditEvalCase())}),tA(1,"Cancel"),R(),S(2,"button",59),mA("click",function(){LA(A);let n=P(3);return xA(n.saveEvalCase())}),tA(3," Save "),R()}if(t&2){let A=P(3);_(2),vA("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function OPA(t,e){if(t&1){let A=De();S(0,"span",60),mA("click",function(){LA(A);let n=P(3);return xA(n.editEvalCase())}),tA(1," edit "),R(),S(2,"span",61),mA("click",function(){LA(A);let n=P(3);return xA(n.deleteEvalCase())}),tA(3," delete "),R()}}function PPA(t,e){if(t&1&&(S(0,"div",54)(1,"div",55),tA(2,"Eval Case ID"),R(),S(3,"div",56),tA(4),R()(),S(5,"div",57),NA(6,HPA,4,1)(7,OPA,4,0),R()),t&2){let A=P(2);_(4),Mt(A.evalCase.evalId),_(2),FA(A.isEvalEditMode()?6:7)}}function jPA(t,e){if(t&1){let A=De();S(0,"span",70),mA("click",function(){LA(A);let n=P(3);return xA(n.importSession())}),tA(1," upload "),R()}}function qPA(t,e){if(t&1){let A=De();S(0,"div",54)(1,"div",55),tA(2,"Session ID"),R(),S(3,"div",56),tA(4),R()(),S(5,"div",57)(6,"div",62)(7,"mat-slide-toggle",63),mA("change",function(){LA(A);let n=P(2);return xA(n.toggleSse())}),tA(8," Token Streaming "),R()(),UA(9,"mat-divider",64),S(10,"div",65)(11,"div",66),mA("click",function(){LA(A);let n=P(2);return xA(n.onNewSessionClick())}),S(12,"mat-icon"),tA(13,"add"),R(),tA(14," New Session "),R(),S(15,"span",67),mA("click",function(){LA(A);let n=P(2);return xA(n.deleteSession(n.sessionId))}),tA(16," delete "),R(),S(17,"span",68),mA("click",function(){LA(A);let n=P(2);return xA(n.exportSession())}),tA(18," download "),R(),NA(19,jPA,2,0,"span",69),Ta(20,"async"),R()()}if(t&2){let A=P(2);_(4),Mt(A.sessionId),_(3),vA("checked",A.enableSseIndicator()),_(2),vA("vertical",!0),_(10),FA(w2(20,4,A.importSessionEnabledObs)?19:-1)}}function VPA(t,e){if(t&1&&(S(0,"div",22),NA(1,zPA,2,0,"span",52)(2,PPA,8,2)(3,qPA,21,6),R()),t&2){let A=P();vA("ngClass",Yr(3,wPA,A.isEvalEditMode())),_(),FA(A.showSidePanel?-1:1),_(),FA(A.evalCase?2:3)}}function ZPA(t,e){t&1&&(S(0,"div",71)(1,"span"),tA(2,"Loading agents, please wait..."),R()())}function WPA(t,e){t&1&&(S(0,"span"),tA(1,"Welcome to ADK!"),UA(2,"br"),tA(3," Select an agent on the left to begin with."),R())}function XPA(t,e){if(t&1&&(tA(0," Error message: "),UA(1,"br"),S(2,"pre",73),tA(3),R()),t&2){let A=P(4);_(3),Mt(A.loadingError())}}function $PA(t,e){t&1&&(S(0,"pre",72),tA(1,"Warning: No agents found in current folder."),R())}function AjA(t,e){if(t&1&&(S(0,"div"),tA(1," Failed to load agents. To get started, run "),S(2,"pre"),tA(3,"adk web"),R(),tA(4," in the folder that contains the agents."),UA(5,"br"),NA(6,XPA,4,1)(7,$PA,2,0,"pre",72),R()),t&2){let A=P(3);_(6),FA(A.loadingError()?6:7)}}function ejA(t,e){if(t&1&&(S(0,"div",71),NA(1,WPA,4,0,"span"),Ta(2,"async"),NA(3,AjA,8,1,"div"),R()),t&2){let A=P(2);_(),FA((w2(2,1,A.apps$)||jT(3,DPA)).length>0?1:3)}}function tjA(t,e){if(t&1&&NA(0,ZPA,3,0,"div",71)(1,ejA,4,4,"div",71),t&2){let A=P();FA(A.isLoadingApps()?0:1)}}function ijA(t,e){if(t&1){let A=De();S(0,"button",74),mA("click",function(){LA(A);let n=P();return xA(n.openDialog())}),S(1,"mat-icon"),tA(2,"priority_high"),R()()}}function njA(t,e){if(t&1){let A=De();S(0,"button",80),mA("click",function(){LA(A);let n=P().$index,o=P(2);return xA(o.clickEvent(n))}),S(1,"mat-icon",81),tA(2,"robot_2"),R()()}if(t&2){let A=P().$index,i=P(2);vo(i.customIconColorClass(A)),vA("matTooltip",i.getAgentNameFromEvent(A))}}function ojA(t,e){t&1&&UA(0,"mat-progress-bar",82)}function rjA(t,e){if(t&1&&UA(0,"img",87),t&2){let A=P().$implicit;vA("src",A.url,Ka)}}function sjA(t,e){if(t&1&&(S(0,"mat-icon"),tA(1,"insert_drive_file"),R(),S(2,"a",88),tA(3),R()),t&2){let A=P().$implicit;_(2),vA("href",A.url,Ka),_(),Mt(A.file.name)}}function ajA(t,e){if(t&1&&(S(0,"div",86),NA(1,rjA,1,1,"img",87)(2,sjA,4,2),R()),t&2){let A=e.$implicit;_(),FA(A.file.type.startsWith("image/")?1:-1),_(),FA(A.file.type.startsWith("image/")?-1:2)}}function cjA(t,e){if(t&1&&(S(0,"div",83),ln(1,ajA,3,2,"div",86,Kn),R()),t&2){let A=P(2).$implicit;_(),gn(A.attachments)}}function ljA(t,e){t&1&&(S(0,"div",84),tA(1,"Thought"),R())}function gjA(t,e){if(t&1){let A=De();S(0,"div",89)(1,"textarea",91,3),ta("ngModelChange",function(n){LA(A);let o=P(5);return Ja(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),xA(n)}),mA("keydown",function(n){LA(A);let o=P(3).$implicit,r=P(2);return xA(r.handleKeydown(n,o))}),R(),S(3,"div",92)(4,"span",93),mA("click",function(){LA(A);let n=P(3).$implicit,o=P(2);return xA(o.cancelEditMessage(n))}),tA(5," close "),R(),S(6,"span",94),mA("click",function(){LA(A);let n=P(3).$implicit,o=P(2);return xA(o.saveEditMessage(n))}),tA(7," check "),R()()()}if(t&2){let A=P(5);_(),ea("ngModel",A.userEditEvalCaseMessage)}}function IjA(t,e){if(t&1&&UA(0,"markdown",90),t&2){let A=P(3).$implicit;vA("data",A.text)("ngStyle",p2(2,MPA,A.thought?"italic":"normal",A.thought?"#9aa0a6":"white"))}}function CjA(t,e){if(t&1&&NA(0,gjA,8,1,"div",89)(1,IjA,1,5,"markdown",90),t&2){let A=P(2).$implicit;FA(A.isEditing?0:1)}}function djA(t,e){if(t&1&&(S(0,"div"),UA(1,"div",95),R()),t&2){let A=P(2).$implicit,i=P(2);_(),vA("innerHTML",i.renderGooglerSearch(A.renderedContent),mI)}}function BjA(t,e){if(t&1&&(S(0,"code"),tA(1),R()),t&2){let A=P(2).$implicit;_(),ot(" ",A.executableCode.code," ")}}function EjA(t,e){if(t&1&&(S(0,"div")(1,"div"),tA(2),R(),S(3,"div"),tA(4),R()()),t&2){let A=P(2).$implicit;_(2),ot("Outcome: ",A.codeExecutionResult.outcome,""),_(2),ot("Output: ",A.codeExecutionResult.output,"")}}function hjA(t,e){if(t&1){let A=De();S(0,"div",96)(1,"img",97),mA("click",function(){LA(A);let n=P(4).$implicit,o=P(2);return xA(o.openViewImageDialog(n.inlineData.data))}),R()()}if(t&2){let A=P(4).$implicit;_(),vA("src",A.inlineData.data,Ka)}}function QjA(t,e){if(t&1&&(S(0,"div"),UA(1,"app-audio-player",98),R()),t&2){let A=P(4).$implicit;_(),vA("base64data",A.inlineData.data)}}function ujA(t,e){if(t&1){let A=De();S(0,"div")(1,"div",99)(2,"mat-icon"),tA(3,"description"),R(),S(4,"button",100),mA("click",function(){LA(A);let n=P(4).$implicit,o=P(2);return xA(o.openBase64InNewTab(n.inlineData.data,n.inlineData.mimeType))}),tA(5),R()()()}if(t&2){let A=P(4).$implicit;_(5),ot(" ",A.inlineData.name," ")}}function fjA(t,e){if(t&1){let A=De();S(0,"div")(1,"button",100),mA("click",function(){LA(A);let n=P(4).$implicit,o=P(2);return xA(o.openBase64InNewTab(n.inlineData.data,n.inlineData.mimeType))}),tA(2),R()()}if(t&2){let A=P(4).$implicit;_(2),ot(" ",A.inlineData.name," ")}}function mjA(t,e){if(t&1&&(S(0,"div")(1,"div"),NA(2,hjA,2,1,"div",96)(3,QjA,2,1,"div")(4,ujA,6,1,"div")(5,fjA,3,1,"div"),R()()),t&2){let A,i=P(3).$implicit,n=P(2);_(2),FA((A=i.inlineData.mediaType)===n.MediaType.IMAGE?2:A===n.MediaType.AUDIO?3:A===n.MediaType.TEXT?4:5)}}function pjA(t,e){if(t&1){let A=De();S(0,"div")(1,"img",101),mA("click",function(){LA(A);let n=P(4).$implicit,o=P(2);return xA(o.openViewImageDialog(n.inlineData.data))}),R()()}if(t&2){let A=P(4).$implicit;_(),vA("src",A.inlineData.data,Ka)}}function wjA(t,e){if(t&1&&(S(0,"div",86)(1,"mat-icon"),tA(2,"insert_drive_file"),R(),S(3,"a",88),tA(4),R()()),t&2){let A=P(4).$implicit;_(3),vA("href",A.inlineData.data,Ka),_(),Mt(A.inlineData.displayName)}}function DjA(t,e){if(t&1&&(S(0,"div"),NA(1,pjA,2,1,"div")(2,wjA,5,2,"div",86),R()),t&2){let A=P(3).$implicit;_(),FA(A.inlineData.mimeType.startsWith("image/")?1:2)}}function yjA(t,e){if(t&1&&NA(0,mjA,6,1,"div")(1,DjA,3,1,"div"),t&2){let A=P(2).$implicit;FA(A.role==="bot"?0:1)}}function vjA(t,e){if(t&1&&(S(0,"div",104)(1,"div",105),tA(2,"Actual tool uses:"),R(),UA(3,"ngx-json-viewer",48),R(),S(4,"div",106)(5,"div",107),tA(6," Expected tool uses: "),R(),UA(7,"ngx-json-viewer",48),R()),t&2){let A=P(3).$implicit;_(3),vA("json",A.actualInvocationToolUses),_(4),vA("json",A.expectedInvocationToolUses)}}function bjA(t,e){if(t&1&&(S(0,"div",104)(1,"div",105),tA(2,"Actual response:"),R(),S(3,"div"),tA(4),R()(),S(5,"div",106)(6,"div",107),tA(7,"Expected response:"),R(),S(8,"div"),tA(9),R()()),t&2){let A=P(3).$implicit;_(4),Mt(A.actualFinalResponse),_(5),Mt(A.expectedFinalResponse)}}function MjA(t,e){if(t&1&&(S(0,"div",103)(1,"span",108),tA(2),R(),S(3,"span",109),tA(4),R()()),t&2){let A=P(3).$implicit;_(2),ot("Match score: ",A.evalScore,""),_(2),ot("Threshold: ",A.evalThreshold,"")}}function kjA(t,e){if(t&1&&(S(0,"div",85)(1,"div",102),NA(2,vjA,8,2)(3,bjA,10,2),R(),NA(4,MjA,5,2,"div",103),R()),t&2){let A=P(2).$implicit;_(2),FA(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),_(2),FA(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function SjA(t,e){if(t&1&&(S(0,"mat-card",77),NA(1,ojA,1,0,"mat-progress-bar",82)(2,cjA,3,0,"div",83),S(3,"div"),NA(4,ljA,2,0,"div",84),S(5,"div"),NA(6,CjA,2,1),R(),NA(7,djA,2,1,"div"),R(),NA(8,BjA,2,1,"code")(9,EjA,5,2,"div")(10,yjA,2,1)(11,kjA,5,2,"div",85),R()),t&2){let A=P(),i=A.$implicit,n=A.$index,o=P(2);vA("ngClass",Yr(11,bPA,i.evalStatus===2))("ngStyle",Yr(13,WG,o.shouldMessageHighlighted(n)?"rgb(15, 82, 35)":"")),_(),FA(i.isLoading?1:-1),_(),FA(i.attachments?2:-1),_(2),FA(i.thought?4:-1),_(2),FA(i.text?6:-1),_(),FA(i.renderedContent?7:-1),_(),FA(i.executableCode?8:-1),_(),FA(i.codeExecutionResult?9:-1),_(),FA(i.inlineData?10:-1),_(),FA(i.failedMetric&&i.evalStatus===2?11:-1)}}function RjA(t,e){if(t&1){let A=De();S(0,"button",110),mA("click",function(){LA(A);let n=P().$index,o=P(2);return xA(o.clickEvent(n))}),S(1,"mat-icon"),tA(2,"bolt"),R(),tA(3),R()}if(t&2){let A=P(),i=A.$implicit,n=A.$index,o=P(2);vA("ngClass",Yr(2,tlA,o.shouldMessageHighlighted(n))),_(3),ot(" ",i.functionCall.name," ")}}function LjA(t,e){if(t&1){let A=De();S(0,"button",110),mA("click",function(){LA(A);let n=P().$index,o=P(2);return xA(o.clickEvent(n))}),S(1,"mat-icon"),tA(2,"check"),R(),tA(3),R()}if(t&2){let A=P(),i=A.$implicit,n=A.$index,o=P(2);vA("ngClass",Yr(2,tlA,o.shouldMessageHighlighted(n))),_(3),ot(" ",i.functionResponse.name," ")}}function xjA(t,e){if(t&1){let A=De();S(0,"div")(1,"span",111),mA("click",function(){LA(A);let n=P(2).$implicit,o=P(2);return xA(o.editEvalCaseMessage(n))}),tA(2," edit "),R(),S(3,"span",112),mA("click",function(){LA(A);let n=P(2),o=n.$implicit,r=n.$index,s=P(2);return xA(s.deleteEvalCaseMessage(o,r))}),tA(4," delete "),R()()}if(t&2){let A=P(4);_(),vA("ngClass",Yr(2,XG,A.isEvalCaseEditing())),_(2),vA("ngClass",Yr(4,XG,A.isEvalCaseEditing()))}}function FjA(t,e){if(t&1){let A=De();S(0,"div")(1,"span",113),mA("click",function(){LA(A);let n=P(2).$implicit,o=P(2);return xA(o.editFunctionArgs(n))}),tA(2," edit "),R()()}if(t&2){let A=P(4);_(),vA("ngClass",Yr(1,XG,A.isEvalCaseEditing()))}}function NjA(t,e){if(t&1&&(NA(0,xjA,5,6,"div"),Ta(1,"async"),NA(2,FjA,3,3,"div")),t&2){let A=P().$implicit,i=P(2);FA(A.text?0:w2(1,1,i.isEditFunctionArgsEnabledObs)&&A.functionCall?2:-1)}}function _jA(t,e){t&1&&(S(0,"button",42)(1,"mat-icon"),tA(2,"person"),R()())}function GjA(t,e){if(t&1&&(S(0,"div",75),NA(1,njA,3,3,"button",76)(2,SjA,12,15,"mat-card",77)(3,RjA,4,4,"button",78)(4,LjA,4,4,"button",78),S(5,"div",75)(6,"span",79),tA(7),R(),S(8,"span"),tA(9),R()(),NA(10,NjA,3,3)(11,_jA,3,0,"button",42),R()),t&2){let A=e.$implicit,i=P(2);vA("ngClass",p2(10,yPA,A.role==="user",A.role==="bot")),_(),FA(A.role==="bot"?1:-1),_(),FA(!A.functionCall&&!A.functionResponse?2:-1),_(),FA(A.functionCall?3:-1),_(),FA(A.functionResponse?4:-1),_(),vA("ngClass",p2(13,vPA,A.evalStatus===1,A.evalStatus===2)),_(2),Mt(A.evalStatus===1?"check":A.evalStatus===2?"close":""),_(2),Mt(A.evalStatus===1?"Pass":A.evalStatus===2?"Fail":""),_(),FA(i.evalCase&&A.role==="bot"&&i.isEvalEditMode()?10:-1),_(),FA(A.role==="user"?11:-1)}}function UjA(t,e){if(t&1&&(S(0,"div",25,1),UA(2,"div",null,2),ln(4,GjA,12,16,"div",75,Kn),R()),t&2){let A=P();_(4),gn(A.messages)}}function KjA(t,e){if(t&1){let A=De();S(0,"div",121),UA(1,"img",123),S(2,"button",124),mA("click",function(){LA(A);let n=P().$index,o=P(3);return xA(o.removeFile(n))}),S(3,"mat-icon",125),tA(4,"close"),R()()()}if(t&2){let A=P().$implicit;_(),vA("src",A.url,Ka)}}function YjA(t,e){if(t&1){let A=De();S(0,"div",122)(1,"button",124),mA("click",function(){LA(A);let n=P().$index,o=P(3);return xA(o.removeFile(n))}),S(2,"mat-icon",125),tA(3,"close"),R()(),S(4,"div",126)(5,"mat-icon"),tA(6,"insert_drive_file"),R(),S(7,"span"),tA(8),R()()()}if(t&2){let A=P().$implicit;_(8),Mt(A.file.name)}}function JjA(t,e){if(t&1&&(S(0,"div"),NA(1,KjA,5,1,"div",121)(2,YjA,9,1,"div",122),R()),t&2){let A=e.$implicit;_(),FA(A.file.type.startsWith("image/")?1:-1),_(),FA(A.file.type.startsWith("image/")?-1:2)}}function TjA(t,e){if(t&1&&(S(0,"div",116),ln(1,JjA,3,2,"div",null,Kn),R()),t&2){let A=P(2);_(),gn(A.selectedFiles)}}function zjA(t,e){if(t&1){let A=De();S(0,"div",26)(1,"input",114,4),mA("change",function(n){LA(A);let o=P();return xA(o.onFileSelect(n))}),R(),S(3,"mat-form-field",115),NA(4,TjA,3,0,"div",116),S(5,"textarea",117),ta("ngModelChange",function(n){LA(A);let o=P();return Ja(o.userInput,n)||(o.userInput=n),xA(n)}),mA("keydown.enter",function(n){LA(A);let o=P();return xA(o.sendMessage(n))}),R(),S(6,"div",118)(7,"button",119),mA("click",function(){LA(A);let n=or(2);return xA(n.click())}),S(8,"mat-icon"),tA(9,"attach_file"),R()(),S(10,"div")(11,"button",120),mA("click",function(){LA(A);let n=P();return xA(n.toggleAudioRecording())}),S(12,"mat-icon"),tA(13,"mic"),R()(),S(14,"button",120),mA("click",function(){LA(A);let n=P();return xA(n.toggleVideoRecording())}),S(15,"mat-icon"),tA(16,"videocam"),R()()()()()()}if(t&2){let A=P();_(4),FA(A.selectedFiles.length&&A.appName!=""?4:-1),_(),ea("ngModel",A.userInput),_(6),vA("ngStyle",Yr(6,WG,A.isAudioRecording?"rgb(234, 67, 53)":"rgb(51, 53, 55)"))("matTooltip",A.isAudioRecording?"Turn off microphone":"Use microphone"),_(3),vA("ngStyle",Yr(8,WG,A.isVideoRecording?"rgb(234, 67, 53)":"rgb(51, 53, 55)"))("matTooltip",A.isVideoRecording?"Turn off camera":"Use camera")}}function HjA(t,e){if(t&1){let A=De();S(0,"div",27,5),UA(2,"div",127),S(3,"app-trace-event",128),mA("panelClosed",function(){LA(A);let n=P();return xA(n.closeTraceEventDetailPanel())}),R()()}if(t&2){let A=P();_(3),vA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}function OjA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var $G=class extends TI{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(e,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${e*A+1} of ${i}`)},elA="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",ff=class t{constructor(e,A,i,n,o,r,s,a,c,l,I,C,d,B,E){this.sanitizer=e;this.sessionService=A;this.artifactService=i;this.audioService=n;this.webSocketService=o;this.videoService=r;this.dialog=s;this.eventService=a;this.route=c;this.downloadService=l;this.evalService=I;this.traceService=C;this.location=d;this.renderer=B;this.document=E}videoContainer;sideDrawer;eventTabComponent;sessionTab;evalTab;scrollContainer;textarea;bottomPanelRef;_snackBar=m(pP);shouldShowEvalTab=Ko(!0);enableSseIndicator=Ko(!1);isChatMode=Ko(!0);isEvalCaseEditing=Ko(!1);hasEvalCaseChanged=Ko(!1);isEvalEditMode=Ko(!1);videoElement;currentMessage="";messages=[];lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=Es.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};messagesSubject=new li([]);streamingTextMessageSubject=new li(null);scrollInterruptedSubject=new li(!0);isModelThinkingSubject=new li(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];eventMessageIndexArray=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=h8;selectedFiles=[];previousMessageCount=0;openBase64InNewTab=qk;MediaType=Ru;router=m(ng);activatedRoute=m(ra);selectedAppControl=new vI("",{nonNullable:!0});changeDetectorRef=m(lt);agentService=m(K2);isLoadingApps=Ko(!1);loadingError=Ko("");apps$=ve([]).pipe(oo(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),no(()=>this.agentService.listApps().pipe(dr(e=>(this.loadingError.set(e.message),ve(void 0))))),Pn(1),oo(e=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),e?.length==1&&this.router.navigate([],{relativeTo:this.route,queryParams:{app:e[0]}})}),$g());featureFlagService=m(vB);importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.webSocketService.onCloseReason().subscribe(i=>{let n=`Please check server log for full details: +`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),Ls([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages[this.messages.length-1];i?!o?.isLoading&&!this.streamingTextMessage&&(this.messages.push({role:"bot",isLoading:!0}),this.messagesSubject.next(this.messages)):o?.isLoading&&!n&&(this.messages.pop(),this.messagesSubject.next(this.messages),this.changeDetectorRef.detectChanges())}),Ls([this.messagesSubject,this.scrollInterruptedSubject,this.streamingTextMessageSubject]).subscribe(([i,n,o])=>{n||setTimeout(()=>{this.scrollToBottom()},100)}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndicies$.subscribe(i=>this.hoveredEventMessageIndices=i)}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer.open()}scrollToBottom(){setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"smooth"})})}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.isSessionUrlEnabledObs.subscribe(A=>{let i=this.activatedRoute.snapshot.queryParams.session;if(!A||!i){this.createSessionAndReset();return}i&&this.sessionService.getSession(this.userId,this.appName,i).pipe(Pn(1),dr(n=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),ve(null)))).subscribe(n=>{n&&this.updateWithSelectedSession(n)})}))}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id,this.sessionTab.refreshSession(),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()})})}sendMessage(e){return _n(this,null,function*(){if(this.messages.length===0&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterruptedSubject.next(!0)}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterruptedSubject.next(!0)})),this.scrollInterruptedSubject.next(!1),e.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||e instanceof KeyboardEvent&&e.isComposing)return;if(this.userInput.trim()&&(this.messages.push({role:"user",text:this.userInput}),this.messagesSubject.next(this.messages)),this.selectedFiles.length>0){let n=this.selectedFiles.map(o=>({file:o.file,url:o.url}));this.messages.push({role:"user",attachments:n}),this.messagesSubject.next(this.messages)}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse};this.selectedFiles=[];let i=this.eventMessageIndexArray.length-1;this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:n=>_n(this,null,function*(){if(n.startsWith('{"error"')){this.openSnackBar(n,"OK");return}let o=JSON.parse(n);if(o.error){this.openSnackBar(o.error,"OK");return}if(o.content)for(let r of o.content.parts)i+=1,this.processPart(o,r,i),this.traceService.setEventData(this.eventData);this.changeDetectorRef.detectChanges()}),error:n=>console.error("SSE error:",n),complete:()=>{this.streamingTextMessage=null,this.sessionTab.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(dr(n=>n.status===404?ve(null):ve([]))).subscribe(n=>{this.traceData=n,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages)}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processPart(e,A,i){let n=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let o=A.text;if(A.thought){if(o!==this.latestThought){this.storeEvents(A,e,i);let r={role:"bot",text:this.processThoughtText(o),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(r)}this.latestThought=o}else if(this.streamingTextMessage){if(n&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),o==this.streamingTextMessage.text){this.storeEvents(A,e,i),this.eventMessageIndexArray[i]=o,this.streamingTextMessage=null;return}this.streamingTextMessage.text+=o,this.streamingTextMessageSubject.next(this.streamingTextMessage)}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(o),thought:!!A.thought,eventId:e.id},n&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e,i),this.eventMessageIndexArray[i]=o,this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,e,i),this.storeMessage(A,e,i,e.author==="user"?"user":"bot"))}getUserMessageParts(){return _n(this,null,function*(){let e=[];if(this.userInput.trim()&&e.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let A of this.selectedFiles)e.push({inlineData:{displayName:A.file.name,data:yield this.readFileAsBytes(A.file),mimeType:A.file.type}});return e})}readFileAsBytes(e){return new Promise((A,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];A(r)},n.onerror=i,n.readAsDataURL(e)})}updateRedirectUri(e,A){try{let i=new URL(e);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),e}}storeMessage(e,A,i,n,o,r){if(A.author&&this.createAgentIconColorClass(A.author),A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts);let a=this.longRunningEvents[0];if(a.args.authConfig&&a.args.authConfig.exchangedAuthCredential&&a.args.authConfig.exchangedAuthCredential.oauth2){let c=a.args.authConfig.exchangedAuthCredential.oauth2.authUri,l=this.updateRedirectUri(c,this.redirectUri);this.openOAuthPopup(l).then(I=>{this.functionCallEventId=A.id,this.sendOAuthResponse(a,I,this.redirectUri)}).catch(I=>{console.error("OAuth Error:",I)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let a in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(a)&&this.renderArtifact(a,A.actions.artifactDelta[a]);A?.evalStatus&&this.isChatMode.set(!1);let s={role:n,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:o!==void 0?o:void 0,finalResponsePartIndex:r?.finalResponsePartIndex!==void 0?r.finalResponsePartIndex:void 0,toolUseIndex:r?.toolUseIndex!==void 0?r.toolUseIndex:void 0};if(e.inlineData){let a=this.formatBase64Data(e.inlineData.data,e.inlineData.mimeType);s.inlineData={displayName:e.inlineData.displayName,data:a,mimeType:e.inlineData.mimeType},this.eventMessageIndexArray[i]=e.inlineData}else if(e.text)s.text=e.text,s.thought=!!e.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(s.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),s.eventId=A?.id,this.eventMessageIndexArray[i]=e.text;else if(e.functionCall)s.functionCall=e.functionCall,s.eventId=A?.id,this.eventMessageIndexArray[i]=e.functionCall;else if(e.functionResponse)s.functionResponse=e.functionResponse,s.eventId=A?.id,this.eventMessageIndexArray[i]=e.functionResponse;else if(e.executableCode)s.executableCode=e.executableCode,this.eventMessageIndexArray[i]=e.executableCode;else if(e.codeExecutionResult&&(s.codeExecutionResult=e.codeExecutionResult,this.eventMessageIndexArray[i]=e.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let a in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(a)&&this.renderArtifact(a,A.actions.artifact_delta[a]);Object.keys(e).length>0&&this.insertMessageBeforeLoadingMessage(s)}insertMessageBeforeLoadingMessage(e){this.messages[this.messages.length-1]?.isLoading?this.messages.splice(this.messages.length-1,0,e):this.messages.push(e),this.messagesSubject.next(this.messages)}formatBase64Data(e,A){let i=OjA(e);return`data:${A};base64,${i}`}renderArtifact(e,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages.length-2;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,e,A).subscribe(o=>{let r=o.inlineData.mimeType,s=this.formatBase64Data(o.inlineData.data,r),a=h8(r),c={name:this.createDefaultArtifactName(r),data:s,mimeType:r,mediaType:a};this.messages[n]={role:"bot",inlineData:c},this.artifacts=[...this.artifacts,{id:e,data:s,mimeType:r,versionId:A,mediaType:h8(r)}]})}storeEvents(e,A,i){let n="";e.text?n+="text:"+e.text:e.functionCall?n+="functionCall:"+e.functionCall.name:e.functionResponse?n+="functionResponse:"+e.functionResponse.name:e.executableCode?n+="executableCode:"+e.executableCode.code.slice(0,10):e.codeExecutionResult&&(n+="codeExecutionResult:"+e.codeExecutionResult.outcome),A.title=n,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(e,A,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(e.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=A,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:e.id,name:e.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>_n(this,null,function*(){let a=JSON.parse(s);r.push(a)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(e){let A=this.eventMessageIndexArray.length-1;for(let i of e)if(i.content)for(let n of i.content.parts)A+=1,this.processPart(i,n,A)}openDialog(){this.dialog.open(rf,{width:"600px",data:{event:this.longRunningEvents[0],appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunSseResponse(A.response))})}removeFinishedLongRunningEvents(e){let A=new Set(e.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}getAgentNameFromEvent(e){let A=this.messages[e].eventId;return this.eventData.get(A)?.author??this.selectedAppControl.value}customIconColorClass(e){let A=this.getAgentNameFromEvent(e);return`custom-icon-color-${(0,ZG.default)(A).replace("#","")}`}createAgentIconColorClass(e){let A=(0,ZG.default)(e),i=`custom-icon-color-${A.replace("#","")}`;this.injectCustomIconColorStyle(i,A)}clickEvent(e){let A=this.messages[e].eventId;this.sideDrawer.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A),this.eventService.getEventTrace(this.selectedEvent.id).subscribe(i=>{this.llmRequest=JSON.parse(i[this.llmRequestKey]),this.llmResponse=JSON.parse(i[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(i=>_n(this,null,function*(){if(!i.dotSrc){this.renderedEventGraph=void 0;return}let n=i.dotSrc,r=(yield vu()).renderString(n,{format:"svg",engine:"dot"});this.rawSvgString=r,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(r)}))}userMessagesLength(e){return this.messages.slice(0,e).filter(A=>A.role=="user").length}ngOnDestroy(){this.webSocketService.closeConnection()}onAppSelection(e){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(elA,"OK");return}this.isAudioRecording=!0;let e=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${e}://${Es.getWSServerUrl()}/run_live?app_name=${this.appName}&user_id=${this.userId}&session_id=${this.sessionId}`),this.audioService.startRecording(),this.messages.push({role:"user",text:"Speaking..."}),this.messages.push({role:"bot",text:"Speaking..."}),this.messagesSubject.next(this.messages),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.audioService.stopRecording(),this.webSocketService.closeConnection(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(elA,"OK");return}this.isVideoRecording=!0;let e=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${e}://${Es.getWSServerUrl()}/run_live?app_name=${this.appName}&user_id=${this.userId}&session_id=${this.sessionId}`),this.videoService.startRecording(this.videoContainer),this.audioService.startRecording(),this.messages.push({role:"user",text:"Speaking..."}),this.messagesSubject.next(this.messages),this.sessionHasUsedBidi.add(this.sessionId)}stopVideoRecording(){this.audioService.stopRecording(),this.videoService.stopRecording(this.videoContainer),this.webSocketService.closeConnection(),this.isVideoRecording=!1}getAsyncFunctionsFromParts(e,A){for(let i of A)i.functionCall&&e.includes(i.functionCall.id)&&this.longRunningEvents.push(i.functionCall)}openOAuthPopup(e){return new Promise((A,i)=>{if(!window.open(e,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}window.addEventListener("message",o=>{if(o.origin!==window.location.origin)return;let{authResponseUrl:r}=o.data;r?A(r):i("OAuth failed")},{once:!0})})}toggleSidePanel(){this.showSidePanel?this.sideDrawer.close():this.sideDrawer.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(e){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleShouldShowEvalTab(e){this.shouldShowEvalTab.set(e)}handleReturnToSession(e){this.sessionTab.getSession(this.sessionId),this.evalTab.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(e){e&&this.openSnackBar(e,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.messagesSubject.next(this.messages),this.artifacts=[]}updateWithSelectedSession(e){if(!e||!e.id||!e.events||!e.state)return;this.traceService.resetTraceService(),this.sessionId=e.id,this.currentSessionState=e.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(i=>{i&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages();let A=0;e.events.forEach(i=>{i.content?.parts?.forEach(n=>{this.storeMessage(n,i,A,i.author==="user"?"user":"bot"),A+=1,i.author&&i.author!=="user"&&this.storeEvents(n,i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(i=>{this.traceData=i,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages)}),this.bottomPanelVisible=!1}updateWithSelectedEvalCase(e){this.evalCase=e,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0,i=0;for(let n of e.conversation){if(n.userContent?.parts)for(let o of n.userContent.parts)this.storeMessage(o,null,A,"user"),A++;if(n.intermediateData?.toolUses){let o=0;for(let r of n.intermediateData.toolUses){let s={functionCall:{name:r.name,args:r.args}};this.storeMessage(s,null,A,"bot",i,{toolUseIndex:o}),A++,o++;let a={functionResponse:{name:r.name}};this.storeMessage(a,null,A,"bot"),A++}}if(n.finalResponse?.parts){let o=0;for(let r of n.finalResponse.parts)this.storeMessage(r,null,A,"bot",i,{finalResponsePartIndex:o}),A++,o++}i++}}updateSelectedEvalSetId(e){this.evalSetId=e}editEvalCaseMessage(e){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=e.text,e.isEditing=!0,setTimeout(()=>{this.textarea?.nativeElement.focus();let A=this.textarea?.nativeElement.value.length;e.text.charAt(A-1)===` +`&&A--,this.textarea?.nativeElement.setSelectionRange(A,A)},0)}editFunctionArgs(e){this.isEvalCaseEditing.set(!0),this.dialog.open(W3,{maxWidth:"90vw",maxHeight:"90vh",data:{functionName:e.functionCall.name,args:e.functionCall.args}}).afterClosed().subscribe(i=>{this.isEvalCaseEditing.set(!1),i&&(this.hasEvalCaseChanged.set(!0),e.functionCall.args=i,this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].intermediateData.toolUses[e.toolUseIndex].args=i)})}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(e=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(e){e.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(e){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),e.isEditing=!1,e.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts[e.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(e,A){e.key==="Enter"&&!e.shiftKey?(e.preventDefault(),this.saveEditMessage(A)):e.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(e,A){this.hasEvalCaseChanged.set(!0),this.messages.splice(A,1),this.messagesSubject.next(this.messages),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts.splice(e.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let e={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(dh,{width:"600px",data:e}).afterClosed().subscribe(i=>{i&&(this.evalTab.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}updateSessionState(e){this.currentSessionState=e.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.traceData=[],this.bottomPanelVisible=!1,this.evalTab.showEvalHistory&&this.evalTab.toggleEvalHistoryButton()}onFileSelect(e){let A=e.target;if(A.files)for(let i=0;i{this.llmRequest=JSON.parse(A[this.llmRequestKey]),this.llmResponse=JSON.parse(A[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(A=>_n(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,o=(yield vu()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=o,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(o)}))}deleteSession(e){let A={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(dh,{width:"600px",data:A}).afterClosed().subscribe(n=>{n&&this.sessionService.deleteSession(this.userId,this.appName,e).subscribe(o=>{let r=this.sessionTab.refreshSession(e);r?this.sessionTab.getSession(r.id):window.location.reload()})})}syncSelectedAppFromUrl(){Ls([this.router.events.pipe(pt(e=>e instanceof Za),Je(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([e,A])=>{if(A&&A.length){let i=e.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(Zc(),pt(Boolean)).subscribe(e=>{this.selectApp(e);let A=this.activatedRoute.snapshot.queryParams.app;e!==A&&this.router.navigate([],{queryParams:{app:e},queryParamsHandling:"merge"})})}updateSelectedSessionUrl(){let e=this.router.createUrlTree([],{queryParams:{session:this.sessionId},queryParamsHandling:"merge"}).toString();this.location.replaceState(e)}handlePageEvent(e){if(e.pageIndex>=0){let A=this.getKeyAtIndexInMap(e.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(e){let A=0,i=(o,r)=>0,n=Array.from(this.eventData.keys()).sort(i);for(let o of n){if(o===e)return A;A++}}getKeyAtIndexInMap(e){let A=(n,o)=>0,i=Array.from(this.eventData.keys()).sort(A);if(e>=0&&e{console.log(e),this.downloadService.downloadObjectAsJson(e,`session-${this.sessionId}.json`)})}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}shouldMessageHighlighted(e){return this.hoveredEventMessageIndices.includes(e)}importSession(){let e=document.createElement("input");e.type="file",e.accept="application/json",e.onchange=()=>{if(!e.files||e.files.length===0)return;let A=e.files[0],i=new FileReader;i.onload=n=>{if(n.target?.result)try{let o=JSON.parse(n.target.result);if(!o.userId||!o.appName||!o.events){this.openSnackBar("Invalid session file format","OK");return}this.sessionService.importSession(o.userId,o.appName,o.events).subscribe(r=>{this.openSnackBar("Session imported","OK"),this.sessionTab.refreshSession()})}catch{this.openSnackBar("Error parsing session file","OK")}},i.readAsText(A)},e.click()}injectCustomIconColorStyle(e,A){if(this.document.getElementById(e))return;let i=this.renderer.createElement("style");this.renderer.setAttribute(i,"id",e),this.renderer.setAttribute(i,"type","text/css");let n=` + .${e} { + background-color: ${A} !important; + } + `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(A){return new(A||t)(zA(il),zA(Jg),zA(Bh),zA(Eh),zA(Tg),zA(hh),zA(Us),zA(j1),zA(ra),zA(J2),zA(zc),zA(zg),zA(Qc),zA(Gi),zA(tt))};static \u0275cmp=YA({type:t,selectors:[["app-chat"]],viewQuery:function(A,i){if(A&1&&(Ge(QPA,5,te),Ge(uPA,5),Ge(jC,5),Ge(qC,5),Ge(PC,5),Ge(fPA,5),Ge(mPA,5),Ge(pPA,5)),A&2){let n;$A(n=Ae())&&(i.videoContainer=n.first),$A(n=Ae())&&(i.sideDrawer=n.first),$A(n=Ae())&&(i.eventTabComponent=n.first),$A(n=Ae())&&(i.sessionTab=n.first),$A(n=Ae())&&(i.evalTab=n.first),$A(n=Ae())&&(i.scrollContainer=n.first),$A(n=Ae())&&(i.textarea=n.first),$A(n=Ae())&&(i.bottomPanelRef=n.first)}},standalone:!1,features:[ct([{provide:TI,useClass:$G}])],decls:28,vars:15,consts:[["sideDrawer",""],["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],["matTooltip","Collapse panel",1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click"],[1,"app-select-container"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[1,"chat-container"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[1,"chat-messages"],[1,"chat-input"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"traceData"],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"artifacts"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[1,"tab-label"],[3,"shouldShowTab","sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","evalNotInstalledMsg","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],["aria-label","Select event",1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],["label","Event"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],[3,"click","innerHtml"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip","class"],[1,"message-card",3,"ngClass","ngStyle"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[1,"message-text",3,"data","ngStyle"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],["matTooltip","Cancel editing",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-right","16px",3,"click"],["matTooltip","Save eval case message",1,"material-symbols-outlined",2,"width","24px","height","24px","color","rgb(97, 151, 202)","cursor","pointer","margin-right","16px",3,"click"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],["matTooltip","Edit eval case message",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["matTooltip","Delete eval case message",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["matTooltip","Edit function arguments",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10","placeholder","Type a Message...",1,"chat-input-box",2,"caret-color","white",3,"ngModelChange","keydown.enter","ngModel"],[1,"chat-input-actions"],["mat-icon-button","","matTooltip","Upload local file",1,"function-event-button",3,"click"],["mat-icon-button","","matSuffix","",3,"click","ngStyle","matTooltip"],[1,"image-container"],[1,"file-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let n=De();S(0,"mat-drawer-container",6),NA(1,kPA,2,0,"span",7),S(2,"mat-drawer",8,0)(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12),UA(8,"img",13),tA(9," Agent Development Kit "),R(),S(10,"span",14),mA("click",function(){return LA(n),xA(i.toggleSidePanel())}),tA(11,"left_panel_close"),R()()()(),S(12,"div",15)(13,"mat-select",16),mA("selectionChange",function(r){return LA(n),xA(i.onAppSelection(r))}),NA(14,RPA,2,0),Ta(15,"async"),NA(16,LPA,2,2,"mat-option",17),R()(),NA(17,YPA,18,9,"div",18)(18,TPA,20,7,"div",19),UA(19,"div",20),R(),S(20,"div",21),NA(21,VPA,4,5,"div",22),S(22,"mat-card",23),NA(23,tjA,2,1)(24,ijA,3,0,"button",24)(25,UjA,6,0,"div",25)(26,zjA,17,10,"div",26),R(),NA(27,HjA,4,3,"div",27),R()()}if(A&2){let n;_(),FA(!i.showSidePanel&&i.appName===""?1:-1),_(12),vA("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),_(),FA((n=w2(15,13,i.apps$))?14:-1,n),_(2),FA(i.selectedAppControl.value&&i.isLoadingApps()?16:-1),_(),FA(i.appName!=""&&i.showSidePanel?17:-1),_(),FA(i.selectedEvent&&i.showSidePanel?18:-1),_(3),FA(i.appName!=""?21:-1),_(2),FA(i.selectedAppControl.value?-1:23),_(),FA(i.longRunningEvents.length>0?24:-1),_(),FA(i.appName!=""?25:-1),_(),FA(i.appName!=""&&i.isChatMode()?26:-1),_(),FA(i.bottomPanelVisible?27:-1)}},dependencies:[Ha,yQ,fc,na,ja,rcA,T2,lg,gP,P1,JaA,ur,EB,HO,zO,Sk,ZaA,Qh,RG,LG,GG,af,Py,pB,x2,wB,mcA,TcA,Xy,cM,jC,qC,PC,Su,df,zI,Bf,Ef,Qf,uf,bQ],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:#131314}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:#fff}.html-artifact-container[_ngcontent-%COMP%], .drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:#bdc1c6;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:#131314}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:#fff;margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:#0f5223;border-color:#0f5223!important;color:#fff!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#004a77;align-self:flex-end;color:#fff;box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#303030;align-self:flex-start;color:#fff;box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:#131314;border:1px solid #8ab4f8}.message-textarea[_ngcontent-%COMP%]{background-color:#303030;max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:#131314;outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:#484848;overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid #8a8686;padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid #8a8686;font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:#44c265}.header-actual[_ngcontent-%COMP%]{color:#ff8983}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:#44c265}.eval-fail[_ngcontent-%COMP%]{display:flex;color:#ff8983}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.hidden[_ngcontent-%COMP%]{visibility:hidden}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:#fff;border:none;padding:10px;box-sizing:content-box}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:#8e918f}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;background-color:#333537}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:#1b1b1b;color:#fff;border-radius:0}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:#eee;padding:5px;border-radius:4px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.app-select[_ngcontent-%COMP%]{width:100%}.empty-state-container[_ngcontent-%COMP%]{color:#eee;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:#ffc185}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:#ff4545}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:#202124;background-color:#8ab4f8}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:#fff}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid #8e918f}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid #8e918f;border-radius:16px}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:#d3d3d3!important}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:#fff}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:#000}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.resize-handler[_ngcontent-%COMP%]{background:#5f6368;width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.bottom-resize-handler[_ngcontent-%COMP%]{background:#5f6368;height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:#1b1b1b}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.app-select-container[_ngcontent-%COMP%]{width:30%;margin-top:12px;background-color:#212123;margin-left:20px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: #8ab4f8}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none!important}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:#242424;display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:#fff;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.drawer-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: #89b4f8}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: black}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:#1b1b1b;display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:#44c2651a}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:#fdfdfd;font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:#c4c7c5;cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:#9aa0a6;cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: #9aa0a6}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:#000000b3;border:none;border-radius:50%;padding:8px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:#1e1e1e;border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:#8ab4f8;width:80px;text-align:center;margin-top:5px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:#007bff!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid #444746!important}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400}"],changeDetection:0})};var mh=class t{title="agent_framework_web";userId="";appName="";sessionId="";constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=YA({type:t,selectors:[["app-root"]],standalone:!1,decls:1,vars:0,template:function(A,i){A&1&&UA(0,"app-chat")},dependencies:[ff],encapsulation:2})};var jjA=[{path:"",component:mh}],$y=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[R6.forRoot(jjA),R6]})};function ilA(t){return new ZA(3e3,!1)}function qjA(){return new ZA(3100,!1)}function VjA(){return new ZA(3101,!1)}function ZjA(t){return new ZA(3001,!1)}function WjA(t){return new ZA(3003,!1)}function XjA(t){return new ZA(3004,!1)}function olA(t,e){return new ZA(3005,!1)}function rlA(){return new ZA(3006,!1)}function slA(){return new ZA(3007,!1)}function alA(t,e){return new ZA(3008,!1)}function clA(t){return new ZA(3002,!1)}function llA(t,e,A,i,n){return new ZA(3010,!1)}function glA(){return new ZA(3011,!1)}function IlA(){return new ZA(3012,!1)}function ClA(){return new ZA(3200,!1)}function dlA(){return new ZA(3202,!1)}function BlA(){return new ZA(3013,!1)}function ElA(t){return new ZA(3014,!1)}function hlA(t){return new ZA(3015,!1)}function QlA(t){return new ZA(3016,!1)}function ulA(t,e){return new ZA(3404,!1)}function $jA(t){return new ZA(3502,!1)}function flA(t){return new ZA(3503,!1)}function mlA(){return new ZA(3300,!1)}function plA(t){return new ZA(3504,!1)}function wlA(t){return new ZA(3301,!1)}function DlA(t,e){return new ZA(3302,!1)}function ylA(t){return new ZA(3303,!1)}function vlA(t,e){return new ZA(3400,!1)}function blA(t){return new ZA(3401,!1)}function MlA(t){return new ZA(3402,!1)}function klA(t,e){return new ZA(3505,!1)}function n2(t){switch(t.length){case 0:return new ag;case 1:return t[0];default:return new JI(t)}}function iU(t,e,A=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(e.forEach(a=>{let c=a.get("offset"),l=c==r,I=l&&s||new Map;a.forEach((C,d)=>{let B=d,E=C;if(d!=="offset")switch(B=t.normalizePropertyName(B,n),E){case mB:E=A.get(d);break;case pc:E=i.get(d);break;default:E=t.normalizeStyleValue(d,B,E,n);break}I.set(B,E)}),l||o.push(I),s=I,r=c}),n.length)throw $jA(n);return o}function A7(t,e,A,i){switch(e){case"start":t.onStart(()=>i(A&&AU(A,"start",t)));break;case"done":t.onDone(()=>i(A&&AU(A,"done",t)));break;case"destroy":t.onDestroy(()=>i(A&&AU(A,"destroy",t)));break}}function AU(t,e,A){let i=A.totalTime,n=!!A.disabled,o=e7(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function e7(t,e,A,i,n="",o=0,r){return{element:t,triggerName:e,fromState:A,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function Sa(t,e,A){let i=t.get(e);return i||t.set(e,i=A),i}function nU(t){let e=t.indexOf(":"),A=t.substring(1,e),i=t.slice(e+1);return[A,i]}var AqA=typeof document>"u"?null:document.documentElement;function t7(t){let e=t.parentNode||t.host||null;return e===AqA?null:e}function eqA(t){return t.substring(1,6)=="ebkit"}var WC=null,nlA=!1;function SlA(t){WC||(WC=tqA()||{},nlA=WC.style?"WebkitAppearance"in WC.style:!1);let e=!0;return WC.style&&!eqA(t)&&(e=t in WC.style,!e&&nlA&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in WC.style)),e}function tqA(){return typeof document<"u"?document.body:null}function oU(t,e){for(;e;){if(e===t)return!0;e=t7(e)}return!1}function rU(t,e,A){if(A)return Array.from(t.querySelectorAll(e));let i=t.querySelector(e);return i?[i]:[]}var iqA=1e3,sU="{{",nqA="}}",aU="ng-enter",i7="ng-leave",mf="ng-trigger",pf=".ng-trigger",cU="ng-animating",n7=".ng-animating";function Pg(t){if(typeof t=="number")return t;let e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:eU(parseFloat(e[1]),e[2])}function eU(t,e){switch(e){case"s":return t*iqA;default:return t}}function wf(t,e,A){return t.hasOwnProperty("duration")?t:oqA(t,e,A)}function oqA(t,e,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return e.push(ilA(t)),{duration:0,delay:0,easing:""};n=eU(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=eU(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!A){let s=!1,a=e.length;n<0&&(e.push(qjA()),s=!0),o<0&&(e.push(VjA()),s=!0),s&&e.splice(a,0,ilA(t))}return{duration:n,delay:o,easing:r}}function RlA(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function Nl(t,e,A){e.forEach((i,n)=>{let o=o7(n);A&&!A.has(n)&&A.set(n,t.style[o]),t.style[o]=i})}function q1(t,e){e.forEach((A,i)=>{let n=o7(i);t.style[n]=""})}function ph(t){return Array.isArray(t)?t.length==1?t[0]:tP(t):t}function LlA(t,e,A){let i=e.params||{},n=lU(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||A.push(ZjA(o))})}var tU=new RegExp(`${sU}\\s*(.+?)\\s*${nqA}`,"g");function lU(t){let e=[];if(typeof t=="string"){let A;for(;A=tU.exec(t);)e.push(A[1]);tU.lastIndex=0}return e}function wh(t,e,A){let i=`${t}`,n=i.replace(tU,(o,r)=>{let s=e[r];return s==null&&(A.push(WjA(r)),s=""),s.toString()});return n==i?t:n}var rqA=/-+([a-z0-9])/g;function o7(t){return t.replace(rqA,(...e)=>e[1].toUpperCase())}function xlA(t,e){return t===0||e===0}function FlA(t,e,A){if(A.size&&e.length){let i=e[0],n=[];if(A.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,r7(t,s)))}}return e}function Ra(t,e,A){switch(e.type){case Wt.Trigger:return t.visitTrigger(e,A);case Wt.State:return t.visitState(e,A);case Wt.Transition:return t.visitTransition(e,A);case Wt.Sequence:return t.visitSequence(e,A);case Wt.Group:return t.visitGroup(e,A);case Wt.Animate:return t.visitAnimate(e,A);case Wt.Keyframes:return t.visitKeyframes(e,A);case Wt.Style:return t.visitStyle(e,A);case Wt.Reference:return t.visitReference(e,A);case Wt.AnimateChild:return t.visitAnimateChild(e,A);case Wt.AnimateRef:return t.visitAnimateRef(e,A);case Wt.Query:return t.visitQuery(e,A);case Wt.Stagger:return t.visitStagger(e,A);default:throw XjA(e.type)}}function r7(t,e){return window.getComputedStyle(t)[e]}var bU=(()=>{class t{validateStyleProperty(A){return SlA(A)}containsElement(A,i){return oU(A,i)}getParentElement(A){return t7(A)}query(A,i,n){return rU(A,i,n)}computeStyle(A,i,n){return n||""}animate(A,i,n,o,r,s=[],a){return new ag(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})(),$C=class{static NOOP=new bU},Ad=class{};var sqA=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),g7=class extends Ad{normalizePropertyName(e,A){return o7(e)}normalizeStyleValue(e,A,i,n){let o="",r=i.toString().trim();if(sqA.has(A)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(olA(e,i))}return r+o}};var I7="*";function aqA(t,e){let A=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>cqA(i,A,e)):A.push(t),A}function cqA(t,e,A){if(t[0]==":"){let a=lqA(t,A);if(typeof a=="function"){e.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(hlA(t)),e;let n=i[1],o=i[2],r=i[3];e.push(NlA(n,r));let s=n==I7&&r==I7;o[0]=="<"&&!s&&e.push(NlA(r,n))}function lqA(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var s7=new Set(["true","1"]),a7=new Set(["false","0"]);function NlA(t,e){let A=s7.has(t)||a7.has(t),i=s7.has(e)||a7.has(e);return(n,o)=>{let r=t==I7||t==n,s=e==I7||e==o;return!r&&A&&typeof n=="boolean"&&(r=n?s7.has(t):a7.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?s7.has(e):a7.has(e)),r&&s}}var OlA=":self",gqA=new RegExp(`s*${OlA}s*,?`,"g");function PlA(t,e,A,i){return new EU(t).build(e,A,i)}var _lA="",EU=class{_driver;constructor(e){this._driver=e}build(e,A,i){let n=new hU(A);return this._resetContextStyleTimingState(n),Ra(this,ph(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=_lA,e.collectedStyles=new Map,e.collectedStyles.set(_lA,new Map),e.currentTime=0}visitTrigger(e,A){let i=A.queryCount=0,n=A.depCount=0,o=[],r=[];return e.name.charAt(0)=="@"&&A.errors.push(rlA()),e.definitions.forEach(s=>{if(this._resetContextStyleTimingState(A),s.type==Wt.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(l=>{a.name=l,o.push(this.visitState(a,A))}),a.name=c}else if(s.type==Wt.Transition){let a=this.visitTransition(s,A);i+=a.queryCount,n+=a.depCount,r.push(a)}else A.errors.push(slA())}),{type:Wt.Trigger,name:e.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(e,A){let i=this.visitStyle(e.styles,A),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{lU(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&A.errors.push(alA(e.name,[...o.values()]))}return{type:Wt.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,A){A.queryCount=0,A.depCount=0;let i=Ra(this,ph(e.animation),A),n=aqA(e.expr,A.errors);return{type:Wt.Transition,matchers:n,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:XC(e.options)}}visitSequence(e,A){return{type:Wt.Sequence,steps:e.steps.map(i=>Ra(this,i,A)),options:XC(e.options)}}visitGroup(e,A){let i=A.currentTime,n=0,o=e.steps.map(r=>{A.currentTime=i;let s=Ra(this,r,A);return n=Math.max(n,A.currentTime),s});return A.currentTime=n,{type:Wt.Group,steps:o,options:XC(e.options)}}visitAnimate(e,A){let i=BqA(e.timings,A.errors);A.currentAnimateTimings=i;let n,o=e.styles?e.styles:ar({});if(o.type==Wt.Keyframes)n=this.visitKeyframes(o,A);else{let r=e.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=ar(c)}A.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,A);a.isEmptyStep=s,n=a}return A.currentAnimateTimings=null,{type:Wt.Animate,timings:i,style:n,options:null}}visitStyle(e,A){let i=this._makeStyleAst(e,A);return this._validateStyleAst(i,A),i}_makeStyleAst(e,A){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let s of n)typeof s=="string"?s===pc?i.push(s):A.errors.push(clA(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(sU)>=0){o=!0;break}}}),{type:Wt.Style,styles:i,easing:r,offset:e.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(e,A){let i=A.currentAnimateTimings,n=A.currentTime,o=A.currentTime;i&&o>0&&(o-=i.duration+i.delay),e.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=A.collectedStyles.get(A.currentQuerySelector),l=c.get(a),I=!0;l&&(o!=n&&o>=l.startTime&&n<=l.endTime&&(A.errors.push(llA(a,l.startTime,l.endTime,o,n)),I=!1),o=l.startTime),I&&c.set(a,{startTime:o,endTime:n}),A.options&&LlA(s,A.options,A.errors)})})}visitKeyframes(e,A){let i={type:Wt.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(glA()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,l=e.steps.map(u=>{let v=this._makeStyleAst(u,A),L=v.offset!=null?v.offset:dqA(v.styles),x=0;return L!=null&&(o++,x=v.offset=L),a=a||x<0||x>1,s=s||x0&&o{let L=C>0?v==d?1:C*v:r[v],x=L*Q;A.currentTime=B+E.delay+x,E.duration=x,this._validateStyleAst(u,A),u.offset=L,i.styles.push(u)}),i}visitReference(e,A){return{type:Wt.Reference,animation:Ra(this,ph(e.animation),A),options:XC(e.options)}}visitAnimateChild(e,A){return A.depCount++,{type:Wt.AnimateChild,options:XC(e.options)}}visitAnimateRef(e,A){return{type:Wt.AnimateRef,animation:this.visitReference(e.animation,A),options:XC(e.options)}}visitQuery(e,A){let i=A.currentQuerySelector,n=e.options||{};A.queryCount++,A.currentQuery=e;let[o,r]=IqA(e.selector);A.currentQuerySelector=i.length?i+" "+o:o,Sa(A.collectedStyles,A.currentQuerySelector,new Map);let s=Ra(this,ph(e.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:Wt.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:e.selector,options:XC(e.options)}}visitStagger(e,A){A.currentQuery||A.errors.push(BlA());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:wf(e.timings,A.errors,!0);return{type:Wt.Stagger,animation:Ra(this,ph(e.animation),A),timings:i,options:null}}};function IqA(t){let e=!!t.split(/\s*,\s*/).find(A=>A==OlA);return e&&(t=t.replace(gqA,"")),t=t.replace(/@\*/g,pf).replace(/@\w+/g,A=>pf+"-"+A.slice(1)).replace(/:animating/g,n7),[t,e]}function CqA(t){return t?nA({},t):null}var hU=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function dqA(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let A=t;e=parseFloat(A.get("offset")),A.delete("offset")}return e}function BqA(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=wf(t,e).duration;return gU(o,0,"")}let A=t;if(A.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=gU(0,0,"");return o.dynamic=!0,o.strValue=A,o}let n=wf(A,e);return gU(n.duration,n.delay,n.easing)}function XC(t){return t?(t=nA({},t),t.params&&(t.params=CqA(t.params))):t={},t}function gU(t,e,A){return{duration:t,delay:e,easing:A}}function MU(t,e,A,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:A,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var yf=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,A){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...A)}has(e){return this._map.has(e)}clear(){this._map.clear()}},EqA=1,hqA=":enter",QqA=new RegExp(hqA,"g"),uqA=":leave",fqA=new RegExp(uqA,"g");function jlA(t,e,A,i,n,o=new Map,r=new Map,s,a,c=[]){return new QU().buildKeyframes(t,e,A,i,n,o,r,s,a,c)}var QU=class{buildKeyframes(e,A,i,n,o,r,s,a,c,l=[]){c=c||new yf;let I=new uU(e,A,c,n,o,l,[]);I.options=a;let C=a.delay?Pg(a.delay):0;I.currentTimeline.delayNextStep(C),I.currentTimeline.setStyles([r],null,I.errors,a),Ra(this,i,I);let d=I.timelines.filter(B=>B.containsAnimation());if(d.length&&s.size){let B;for(let E=d.length-1;E>=0;E--){let Q=d[E];if(Q.element===A){B=Q;break}}B&&!B.allowOnlyTimelineStyles()&&B.setStyles([s],null,I.errors,a)}return d.length?d.map(B=>B.buildKeyframes()):[MU(A,[],[],[],0,C,"",!1)]}visitTrigger(e,A){}visitState(e,A){}visitTransition(e,A){}visitAnimateChild(e,A){let i=A.subInstructions.get(A.element);if(i){let n=A.createSubContext(e.options),o=A.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&A.transformIntoNewTimeline(r)}A.previousNode=e}visitAnimateRef(e,A){let i=A.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],A,i),this.visitReference(e.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=e}_applyAnimationRefDelays(e,A,i){for(let n of e){let o=n?.delay;if(o){let r=typeof o=="number"?o:Pg(wh(o,n?.params??{},A.errors));i.delayNextStep(r)}}}_visitSubInstructions(e,A,i){let o=A.currentTimeline.currentTime,r=i.duration!=null?Pg(i.duration):null,s=i.delay!=null?Pg(i.delay):null;return r!==0&&e.forEach(a=>{let c=A.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(e,A){A.updateOptions(e.options,!0),Ra(this,e.animation,A),A.previousNode=e}visitSequence(e,A){let i=A.subContextCount,n=A,o=e.options;if(o&&(o.params||o.delay)&&(n=A.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==Wt.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=C7);let r=Pg(o.delay);n.delayNextStep(r)}e.steps.length&&(e.steps.forEach(r=>Ra(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),A.previousNode=e}visitGroup(e,A){let i=[],n=A.currentTimeline.currentTime,o=e.options&&e.options.delay?Pg(e.options.delay):0;e.steps.forEach(r=>{let s=A.createSubContext(e.options);o&&s.delayNextStep(o),Ra(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>A.currentTimeline.mergeTimelineCollectedStyles(r)),A.transformIntoNewTimeline(n),A.previousNode=e}_visitTiming(e,A){if(e.dynamic){let i=e.strValue,n=A.params?wh(i,A.params,A.errors):i;return wf(n,A.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,A){let i=A.currentAnimateTimings=this._visitTiming(e.timings,A),n=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),n.snapshotCurrentStyles());let o=e.style;o.type==Wt.Keyframes?this.visitKeyframes(o,A):(A.incrementTime(i.duration),this.visitStyle(o,A),n.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=e}visitStyle(e,A){let i=A.currentTimeline,n=A.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(o):i.setStyles(e.styles,o,A.errors,A.options),A.previousNode=e}visitKeyframes(e,A){let i=A.currentAnimateTimings,n=A.currentTimeline.duration,o=i.duration,s=A.createSubContext().currentTimeline;s.easing=i.easing,e.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,A.errors,A.options),s.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(s),A.transformIntoNewTimeline(n+o),A.previousNode=e}visitQuery(e,A){let i=A.currentTimeline.currentTime,n=e.options||{},o=n.delay?Pg(n.delay):0;o&&(A.previousNode.type===Wt.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=C7);let r=i,s=A.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,A.errors);A.currentQueryTotal=s.length;let a=null;s.forEach((c,l)=>{A.currentQueryIndex=l;let I=A.createSubContext(e.options,c);o&&I.delayNextStep(o),c===A.element&&(a=I.currentTimeline),Ra(this,e.animation,I),I.currentTimeline.applyStylesToKeyframe();let C=I.currentTimeline.currentTime;r=Math.max(r,C)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(r),a&&(A.currentTimeline.mergeTimelineCollectedStyles(a),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=e}visitStagger(e,A){let i=A.parentContext,n=A.currentTimeline,o=e.timings,r=Math.abs(o.duration),s=r*(A.currentQueryTotal-1),a=r*A.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let l=A.currentTimeline;a&&l.delayNextStep(a);let I=l.currentTime;Ra(this,e.animation,A),A.previousNode=e,i.currentStaggerTime=n.currentTime-I+(n.startTime-i.currentTimeline.startTime)}},C7={},uU=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=C7;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,A,i,n,o,r,s,a){this._driver=e,this.element=A,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new d7(this._driver,A,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,A){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=Pg(i.duration)),i.delay!=null&&(n.delay=Pg(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!A||!r.hasOwnProperty(s))&&(r[s]=wh(o[s],r,this.errors))})}}_copyOptions(){let e={};if(this.options){let A=this.options.params;if(A){let i=e.params={};Object.keys(A).forEach(n=>{i[n]=A[n]})}}return e}createSubContext(e=null,A,i){let n=A||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(e){return this.previousNode=C7,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,A,i){let n={duration:A??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},o=new fU(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,A,i,n,o,r){let s=[];if(n&&s.push(this.element),e.length>0){e=e.replace(QqA,"."+this._enterClassName),e=e.replace(fqA,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,e,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push(ElA(A)),s}},d7=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,A,i,n){this._driver=e,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+e),A&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,A){return this.applyStylesToKeyframe(),new t(this._driver,e,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=EqA,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,A){this._localTimelineStyles.set(e,A),this._globalTimelineStyles.set(e,A),this._styleSummary.set(e,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||pc),this._currentKeyframe.set(A,pc);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,A,i,n){A&&this._previousKeyframe.set("easing",A);let o=n&&n.params||{},r=mqA(e,this._globalTimelineStyles);for(let[s,a]of r){let c=wh(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??pc),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,A)=>{this._currentKeyframe.set(A,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,e)}))}snapshotCurrentStyles(){for(let[e,A]of this._localTimelineStyles)this._pendingStyles.set(e,A),this._updateStyle(e,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let A in this._currentKeyframe)e.push(A);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((A,i)=>{let n=this._styleSummary.get(i);(!n||A.time>n.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((l,I)=>{l===mB?e.add(I):l===pc&&A.add(I)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...e.values()],r=[...A.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return MU(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},fU=class extends d7{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,A,i,n,o,r,s=!1){super(e,A,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:A,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&A){let o=[],r=i+A,s=A/r,a=new Map(e[0]);a.set("offset",0),o.push(a);let c=new Map(e[0]);c.set("offset",GlA(s)),o.push(c);let l=e.length-1;for(let I=1;I<=l;I++){let C=new Map(e[I]),d=C.get("offset"),B=A+d*i;C.set("offset",GlA(B/r)),o.push(C)}i=r,A=0,n="",e=o}return MU(this.element,e,this.preStyleProps,this.postStyleProps,i,A,n,!0)}};function GlA(t,e=3){let A=Math.pow(10,e-1);return Math.round(t*A)/A}function mqA(t,e){let A=new Map,i;return t.forEach(n=>{if(n==="*"){i??=e.keys();for(let o of i)A.set(o,pc)}else for(let[o,r]of n)A.set(o,r)}),A}function UlA(t,e,A,i,n,o,r,s,a,c,l,I,C){return{type:0,element:t,triggerName:e,isRemovalTransition:n,fromState:A,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:l,totalTime:I,errors:C}}var IU={},B7=class{_triggerName;ast;_stateStyles;constructor(e,A,i){this._triggerName=e,this.ast=A,this._stateStyles=i}match(e,A,i,n){return pqA(this.ast.matchers,e,A,i,n)}buildStyles(e,A,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(A,i):new Map}build(e,A,i,n,o,r,s,a,c,l){let I=[],C=this.ast.options&&this.ast.options.params||IU,d=s&&s.params||IU,B=this.buildStyles(i,d,I),E=a&&a.params||IU,Q=this.buildStyles(n,E,I),u=new Set,v=new Map,L=new Map,x=n==="void",y={params:qlA(E,C),delay:this.ast.options?.delay},F=l?[]:jlA(e,A,this.ast.animation,o,r,B,Q,y,c,I),U=0;return F.forEach(T=>{U=Math.max(T.duration+T.delay,U)}),I.length?UlA(A,this._triggerName,i,n,x,B,Q,[],[],v,L,U,I):(F.forEach(T=>{let N=T.element,K=Sa(v,N,new Set);T.preStyleProps.forEach(j=>K.add(j));let H=Sa(L,N,new Set);T.postStyleProps.forEach(j=>H.add(j)),N!==A&&u.add(N)}),UlA(A,this._triggerName,i,n,x,B,Q,F,[...u.values()],v,L,U))}};function pqA(t,e,A,i,n){return t.some(o=>o(e,A,i,n))}function qlA(t,e){let A=nA({},e);return Object.entries(t).forEach(([i,n])=>{n!=null&&(A[i]=n)}),A}var mU=class{styles;defaultParams;normalizer;constructor(e,A,i){this.styles=e,this.defaultParams=A,this.normalizer=i}buildStyles(e,A){let i=new Map,n=qlA(e,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=wh(r,n,A));let a=this.normalizer.normalizePropertyName(s,A);r=this.normalizer.normalizeStyleValue(s,a,r,A),i.set(s,r)})}),i}};function wqA(t,e,A){return new pU(t,e,A)}var pU=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,A,i){this.name=e,this.ast=A,this._normalizer=i,A.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new mU(n.style,o,i))}),KlA(this.states,"true","1"),KlA(this.states,"false","0"),A.transitions.forEach(n=>{this.transitionFactories.push(new B7(e,n,this.states))}),this.fallbackTransition=DqA(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,A,i,n){return this.transitionFactories.find(r=>r.match(e,A,i,n))||null}matchStyles(e,A,i){return this.fallbackTransition.buildStyles(e,A,i)}};function DqA(t,e,A){let i=[(r,s)=>!0],n={type:Wt.Sequence,steps:[],options:null},o={type:Wt.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new B7(t,o,e)}function KlA(t,e,A){t.has(e)?t.has(A)||t.set(A,t.get(e)):t.has(A)&&t.set(e,t.get(A))}var yqA=new yf,wU=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,A,i){this.bodyNode=e,this._driver=A,this._normalizer=i}register(e,A){let i=[],n=[],o=PlA(this._driver,A,i,n);if(i.length)throw flA(i);this._animations.set(e,o)}_buildPlayer(e,A,i){let n=e.element,o=iU(this._normalizer,e.keyframes,A,i);return this._driver.animate(n,o,e.duration,e.delay,e.easing,[],!0)}create(e,A,i={}){let n=[],o=this._animations.get(e),r,s=new Map;if(o?(r=jlA(this._driver,A,o,aU,i7,new Map,new Map,i,yqA,n),r.forEach(l=>{let I=Sa(s,l.element,new Map);l.postStyleProps.forEach(C=>I.set(C,null))})):(n.push(mlA()),r=[]),n.length)throw plA(n);s.forEach((l,I)=>{l.forEach((C,d)=>{l.set(d,this._driver.computeStyle(I,d,pc))})});let a=r.map(l=>{let I=s.get(l.element);return this._buildPlayer(l,new Map,I)}),c=n2(a);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let A=this._getPlayer(e);A.destroy(),this._playersById.delete(e);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(e){let A=this._playersById.get(e);if(!A)throw wlA(e);return A}listen(e,A,i,n){let o=e7(A,"","","");return A7(this._getPlayer(e),i,o,n),()=>{}}command(e,A,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(e,A,r);return}let o=this._getPlayer(e);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},YlA="ng-animate-queued",vqA=".ng-animate-queued",CU="ng-animate-disabled",bqA=".ng-animate-disabled",MqA="ng-star-inserted",kqA=".ng-star-inserted",SqA=[],VlA={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},RqA={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},_l="__ng_removed",vf=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,A=""){this.namespaceId=A;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=xqA(n),i){let o=e,{value:r}=o,s=y7(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let A=e.params;if(A){let i=this.options.params;Object.keys(A).forEach(n=>{i[n]==null&&(i[n]=A[n])})}}},Df="void",dU=new vf(Df),DU=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,A,i){this.id=e,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+e,Hc(A,this._hostClassName)}listen(e,A,i,n){if(!this._triggers.has(A))throw DlA(i,A);if(i==null||i.length==0)throw ylA(A);if(!FqA(i))throw vlA(i,A);let o=Sa(this._elementListeners,e,[]),r={name:A,phase:i,callback:n};o.push(r);let s=Sa(this._engine.statesByElement,e,new Map);return s.has(A)||(Hc(e,mf),Hc(e,mf+"-"+A),s.set(A,dU)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(A)||s.delete(A)})}}register(e,A){return this._triggers.has(e)?!1:(this._triggers.set(e,A),!0)}_getTrigger(e){let A=this._triggers.get(e);if(!A)throw blA(e);return A}trigger(e,A,i,n=!0){let o=this._getTrigger(A),r=new bf(this.id,A,e),s=this._engine.statesByElement.get(e);s||(Hc(e,mf),Hc(e,mf+"-"+A),this._engine.statesByElement.set(e,s=new Map));let a=s.get(A),c=new vf(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(A,c),a||(a=dU),!(c.value===Df)&&a.value===c.value){if(!GqA(a.params,c.params)){let E=[],Q=o.matchStyles(a.value,a.params,E),u=o.matchStyles(c.value,c.params,E);E.length?this._engine.reportError(E):this._engine.afterFlush(()=>{q1(e,Q),Nl(e,u)})}return}let C=Sa(this._engine.playersByElement,e,[]);C.forEach(E=>{E.namespaceId==this.id&&E.triggerName==A&&E.queued&&E.destroy()});let d=o.matchTransition(a.value,c.value,e,c.params),B=!1;if(!d){if(!n)return;d=o.fallbackTransition,B=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:A,transition:d,fromState:a,toState:c,player:r,isFallbackTransition:B}),B||(Hc(e,YlA),r.onStart(()=>{Dh(e,YlA)})),r.onDone(()=>{let E=this.players.indexOf(r);E>=0&&this.players.splice(E,1);let Q=this._engine.playersByElement.get(e);if(Q){let u=Q.indexOf(r);u>=0&&Q.splice(u,1)}}),this.players.push(r),C.push(r),r}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(A=>A.delete(e)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let A=this._engine.playersByElement.get(e);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,A){let i=this._engine.driver.query(e,pf,!0);i.forEach(n=>{if(n[_l])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,A,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,A,i,n){let o=this._engine.statesByElement.get(e),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let l=this.trigger(e,c,Df,n);l&&s.push(l)}}),s.length)return this._engine.markElementAsRemoved(this.id,e,!0,A,r),i&&n2(s).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let A=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(A&&i){let n=new Set;A.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||dU,l=new vf(Df),I=new bf(this.id,r,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:r,transition:a,fromState:c,toState:l,player:I,isFallbackTransition:!0})})}}removeNode(e,A){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,A),this.triggerLeaveAnimation(e,A,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(e):[];if(o&&o.length)n=!0;else{let r=e;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,A);else{let o=e[_l];(!o||o===VlA)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,A))}}insertNode(e,A){Hc(e,this._hostClassName)}drainQueuedTransitions(e){let A=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=e7(o,i.triggerName,i.fromState.value,i.toState.value);a._data=e,A7(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):A.push(i)}),this._queue=[],A.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},yU=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,A)=>{};_onRemovalComplete(e,A){this.onRemovalComplete(e,A)}constructor(e,A,i){this.bodyNode=e,this.driver=A,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,A){let i=new DU(e,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,A){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(A);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,e),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(e)}else i.push(e);return n.set(A,e),e}register(e,A){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,A)),i}registerTrigger(e,A,i){let n=this._namespaceLookup[e];n&&n.register(A,i)&&this.totalAnimations++}destroy(e,A){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(A),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let A=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&A.add(o)}}return A}trigger(e,A,i,n){if(c7(A)){let o=this._fetchNamespace(e);if(o)return o.trigger(A,i,n),!0}return!1}insertNode(e,A,i,n){if(!c7(A))return;let o=A[_l];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(A);r>=0&&this.collectedLeaveElements.splice(r,1)}if(e){let r=this._fetchNamespace(e);r&&r.insertNode(A,i)}n&&this.collectEnterElement(A)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,A){A?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Hc(e,CU)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Dh(e,CU))}removeNode(e,A,i){if(c7(A)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(A,i):this.markElementAsRemoved(e,A,!1,i);let o=this.namespacesByHostElement.get(A);o&&o.id!==e&&o.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(e,A,i,n,o){this.collectedLeaveElements.push(A),A[_l]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(e,A,i,n,o){return c7(A)?this._fetchNamespace(e).listen(A,i,n,o):()=>{}}_buildInstruction(e,A,i,n,o){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,A,o)}destroyInnerAnimations(e){let A=this.driver.query(e,pf,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(e,n7,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let A=this.playersByElement.get(e);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let A=this.playersByQueriedElement.get(e);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return n2(this.players).onDone(()=>e());e()})}processLeaveNode(e){let A=e[_l];if(A&&A.setForRemoval){if(e[_l]=VlA,A.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,A.setForRemoval)}e.classList?.contains(CU)&&this.markElementAsDisabled(e,!1),this.driver.query(e,bqA,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?n2(A).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw MlA(e)}_flushAnimations(e,A){let i=new yf,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,l=new Set;this.disabledNodes.forEach(p=>{l.add(p);let V=this.driver.query(p,vqA,!0);for(let cA=0;cA{let cA=aU+E++;B.set(V,cA),p.forEach(aA=>Hc(aA,cA))});let Q=[],u=new Set,v=new Set;for(let p=0;pu.add(aA)):v.add(V))}let L=new Map,x=zlA(C,Array.from(u));x.forEach((p,V)=>{let cA=i7+E++;L.set(V,cA),p.forEach(aA=>Hc(aA,cA))}),e.push(()=>{d.forEach((p,V)=>{let cA=B.get(V);p.forEach(aA=>Dh(aA,cA))}),x.forEach((p,V)=>{let cA=L.get(V);p.forEach(aA=>Dh(aA,cA))}),Q.forEach(p=>{this.processLeaveNode(p)})});let y=[],F=[];for(let p=this._namespaceList.length-1;p>=0;p--)this._namespaceList[p].drainQueuedTransitions(A).forEach(cA=>{let aA=cA.player,jA=cA.element;if(y.push(aA),this.collectedEnterElements.length){let Re=jA[_l];if(Re&&Re.setForMove){if(Re.previousTriggersValues&&Re.previousTriggersValues.has(cA.triggerName)){let hA=Re.previousTriggersValues.get(cA.triggerName),eA=this.statesByElement.get(cA.element);if(eA&&eA.has(cA.triggerName)){let RA=eA.get(cA.triggerName);RA.value=hA,eA.set(cA.triggerName,RA)}}aA.destroy();return}}let VA=!I||!this.driver.containsElement(I,jA),ce=L.get(jA),EA=B.get(jA),sA=this._buildInstruction(cA,i,EA,ce,VA);if(sA.errors&&sA.errors.length){F.push(sA);return}if(VA){aA.onStart(()=>q1(jA,sA.fromStyles)),aA.onDestroy(()=>Nl(jA,sA.toStyles)),n.push(aA);return}if(cA.isFallbackTransition){aA.onStart(()=>q1(jA,sA.fromStyles)),aA.onDestroy(()=>Nl(jA,sA.toStyles)),n.push(aA);return}let TA=[];sA.timelines.forEach(Re=>{Re.stretchStartingKeyframe=!0,this.disabledNodes.has(Re.element)||TA.push(Re)}),sA.timelines=TA,i.append(jA,sA.timelines);let Ke={instruction:sA,player:aA,element:jA};r.push(Ke),sA.queriedElements.forEach(Re=>Sa(s,Re,[]).push(aA)),sA.preStyleProps.forEach((Re,hA)=>{if(Re.size){let eA=a.get(hA);eA||a.set(hA,eA=new Set),Re.forEach((RA,oA)=>eA.add(oA))}}),sA.postStyleProps.forEach((Re,hA)=>{let eA=c.get(hA);eA||c.set(hA,eA=new Set),Re.forEach((RA,oA)=>eA.add(oA))})});if(F.length){let p=[];F.forEach(V=>{p.push(klA(V.triggerName,V.errors))}),y.forEach(V=>V.destroy()),this.reportError(p)}let U=new Map,T=new Map;r.forEach(p=>{let V=p.element;i.has(V)&&(T.set(V,V),this._beforeAnimationBuild(p.player.namespaceId,p.instruction,U))}),n.forEach(p=>{let V=p.element;this._getPreviousPlayers(V,!1,p.namespaceId,p.triggerName,null).forEach(aA=>{Sa(U,V,[]).push(aA),aA.destroy()})});let N=Q.filter(p=>HlA(p,a,c)),K=new Map;TlA(K,this.driver,v,c,pc).forEach(p=>{HlA(p,a,c)&&N.push(p)});let j=new Map;d.forEach((p,V)=>{TlA(j,this.driver,new Set(p),a,mB)}),N.forEach(p=>{let V=K.get(p),cA=j.get(p);K.set(p,new Map([...V?.entries()??[],...cA?.entries()??[]]))});let IA=[],lA=[],uA={};r.forEach(p=>{let{element:V,player:cA,instruction:aA}=p;if(i.has(V)){if(l.has(V)){cA.onDestroy(()=>Nl(V,aA.toStyles)),cA.disabled=!0,cA.overrideTotalTime(aA.totalTime),n.push(cA);return}let jA=uA;if(T.size>1){let ce=V,EA=[];for(;ce=ce.parentNode;){let sA=T.get(ce);if(sA){jA=sA;break}EA.push(ce)}EA.forEach(sA=>T.set(sA,jA))}let VA=this._buildAnimation(cA.namespaceId,aA,U,o,j,K);if(cA.setRealPlayer(VA),jA===uA)IA.push(cA);else{let ce=this.playersByElement.get(jA);ce&&ce.length&&(cA.parentPlayer=n2(ce)),n.push(cA)}}else q1(V,aA.fromStyles),cA.onDestroy(()=>Nl(V,aA.toStyles)),lA.push(cA),l.has(V)&&n.push(cA)}),lA.forEach(p=>{let V=o.get(p.element);if(V&&V.length){let cA=n2(V);p.setRealPlayer(cA)}}),n.forEach(p=>{p.parentPlayer?p.syncPlayerEvents(p.parentPlayer):p.destroy()});for(let p=0;p!VA.destroyed);jA.length?NqA(this,V,jA):this.processLeaveNode(V)}return Q.length=0,IA.forEach(p=>{this.players.push(p),p.onDone(()=>{p.destroy();let V=this.players.indexOf(p);this.players.splice(V,1)}),p.play()}),IA}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,A,i,n,o){let r=[];if(A){let s=this.playersByQueriedElement.get(e);s&&(r=s)}else{let s=this.playersByElement.get(e);if(s){let a=!o||o==Df;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(e,A,i){let n=A.triggerName,o=A.element,r=A.isRemovalTransition?void 0:e,s=A.isRemovalTransition?void 0:n;for(let a of A.timelines){let c=a.element,l=c!==o,I=Sa(i,c,[]);this._getPreviousPlayers(c,l,r,s,A.toState).forEach(d=>{let B=d.getRealPlayer();B.beforeDestroy&&B.beforeDestroy(),d.destroy(),I.push(d)})}q1(o,A.fromStyles)}_buildAnimation(e,A,i,n,o,r){let s=A.triggerName,a=A.element,c=[],l=new Set,I=new Set,C=A.timelines.map(B=>{let E=B.element;l.add(E);let Q=E[_l];if(Q&&Q.removedBeforeQueried)return new ag(B.duration,B.delay);let u=E!==a,v=_qA((i.get(E)||SqA).map(U=>U.getRealPlayer())).filter(U=>{let T=U;return T.element?T.element===E:!1}),L=o.get(E),x=r.get(E),y=iU(this._normalizer,B.keyframes,L,x),F=this._buildPlayer(B,y,v);if(B.subTimeline&&n&&I.add(E),u){let U=new bf(e,s,E);U.setRealPlayer(F),c.push(U)}return F});c.forEach(B=>{Sa(this.playersByQueriedElement,B.element,[]).push(B),B.onDone(()=>LqA(this.playersByQueriedElement,B.element,B))}),l.forEach(B=>Hc(B,cU));let d=n2(C);return d.onDestroy(()=>{l.forEach(B=>Dh(B,cU)),Nl(a,A.toStyles)}),I.forEach(B=>{Sa(n,B,[]).push(d)}),d}_buildPlayer(e,A,i){return A.length>0?this.driver.animate(e.element,A,e.duration,e.delay,e.easing,i):new ag(e.duration,e.delay)}},bf=class{namespaceId;triggerName;element;_player=new ag;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,A,i){this.namespaceId=e,this.triggerName=A,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((A,i)=>{A.forEach(n=>A7(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let A=this._player;A.triggerCallback&&e.onStart(()=>A.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,A){Sa(this._queuedCallbacks,e,[]).push(A)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let A=this._player;A.triggerCallback&&A.triggerCallback(e)}};function LqA(t,e,A){let i=t.get(e);if(i){if(i.length){let n=i.indexOf(A);i.splice(n,1)}i.length==0&&t.delete(e)}return i}function xqA(t){return t??null}function c7(t){return t&&t.nodeType===1}function FqA(t){return t=="start"||t=="done"}function JlA(t,e){let A=t.style.display;return t.style.display=e??"none",A}function TlA(t,e,A,i,n){let o=[];A.forEach(a=>o.push(JlA(a)));let r=[];i.forEach((a,c)=>{let l=new Map;a.forEach(I=>{let C=e.computeStyle(c,I,n);l.set(I,C),(!C||C.length==0)&&(c[_l]=RqA,r.push(c))}),t.set(c,l)});let s=0;return A.forEach(a=>JlA(a,o[s++])),r}function zlA(t,e){let A=new Map;if(t.forEach(s=>A.set(s,[])),e.length==0)return A;let i=1,n=new Set(e),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return A.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return e.forEach(s=>{let a=r(s);a!==i&&A.get(a).push(s)}),A}function Hc(t,e){t.classList?.add(e)}function Dh(t,e){t.classList?.remove(e)}function NqA(t,e,A){n2(A).onDone(()=>t.processLeaveNode(e))}function _qA(t){let e=[];return ZlA(t,e),e}function ZlA(t,e){for(let A=0;An.add(o)):e.set(t,i),A.delete(t),!0}var yh=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,A)=>{};constructor(e,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new yU(e.body,A,i),this._timelineEngine=new wU(e.body,A,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(e,A,i,n,o){let r=e+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],l=PlA(this._driver,o,a,c);if(a.length)throw ulA(n,a);s=wqA(n,l,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(A,n,s)}register(e,A){this._transitionEngine.register(e,A)}destroy(e,A){this._transitionEngine.destroy(e,A)}onInsert(e,A,i,n){this._transitionEngine.insertNode(e,A,i,n)}onRemove(e,A,i){this._transitionEngine.removeNode(e,A,i)}disableAnimations(e,A){this._transitionEngine.markElementAsDisabled(e,A)}process(e,A,i,n){if(i.charAt(0)=="@"){let[o,r]=nU(i),s=n;this._timelineEngine.command(o,A,r,s)}else this._transitionEngine.trigger(e,A,i,n)}listen(e,A,i,n,o){if(i.charAt(0)=="@"){let[r,s]=nU(i);return this._timelineEngine.listen(r,A,s,o)}return this._transitionEngine.listen(e,A,i,n,o)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function UqA(t,e){let A=null,i=null;return Array.isArray(e)&&e.length?(A=BU(e[0]),e.length>1&&(i=BU(e[e.length-1]))):e instanceof Map&&(A=BU(e)),A||i?new KqA(t,A,i):null}var KqA=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,n){this._element=A,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(A);o||t.initialStylesByElement.set(A,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Nl(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Nl(this._element,this._initialStyles),this._endStyles&&(Nl(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(q1(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(q1(this._element,this._endStyles),this._endStyles=null),Nl(this._element,this._initialStyles),this._state=3)}}return t})();function BU(t){let e=null;return t.forEach((A,i)=>{YqA(i)&&(e=e||new Map,e.set(i,A))}),e}function YqA(t){return t==="display"||t==="position"}var E7=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,A,i,n){this.element=e,this.keyframes=A,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){let A=[];return e.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(e,A,i){return e.animate(this._convertKeyframesToObject(A),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:r7(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let A=e==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},h7=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,A){return oU(e,A)}getParentElement(e){return t7(e)}query(e,A,i){return rU(e,A,i)}computeStyle(e,A,i){return r7(e,A)}animate(e,A,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,l=r.filter(d=>d instanceof E7);xlA(i,n)&&l.forEach(d=>{d.currentSnapshot.forEach((B,E)=>c.set(E,B))});let I=RlA(A).map(d=>new Map(d));I=FlA(e,I,c);let C=UqA(e,I);return new E7(e,I,a,C)}};var l7="@",WlA="@.disabled",Q7=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,A,i,n){this.namespaceId=e,this.delegate=A,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,A){return this.delegate.createElement(e,A)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,A){this.delegate.appendChild(e,A),this.engine.onInsert(this.namespaceId,A,e,!1)}insertBefore(e,A,i,n=!0){this.delegate.insertBefore(e,A,i),this.engine.onInsert(this.namespaceId,A,e,n)}removeChild(e,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(e,A){return this.delegate.selectRootElement(e,A)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,A,i,n){this.delegate.setAttribute(e,A,i,n)}removeAttribute(e,A,i){this.delegate.removeAttribute(e,A,i)}addClass(e,A){this.delegate.addClass(e,A)}removeClass(e,A){this.delegate.removeClass(e,A)}setStyle(e,A,i,n){this.delegate.setStyle(e,A,i,n)}removeStyle(e,A,i){this.delegate.removeStyle(e,A,i)}setProperty(e,A,i){A.charAt(0)==l7&&A==WlA?this.disableAnimations(e,!!i):this.delegate.setProperty(e,A,i)}setValue(e,A){this.delegate.setValue(e,A)}listen(e,A,i,n){return this.delegate.listen(e,A,i,n)}disableAnimations(e,A){this.engine.disableAnimations(e,A)}},vU=class extends Q7{factory;constructor(e,A,i,n,o){super(A,i,n,o),this.factory=e,this.namespaceId=A}setProperty(e,A,i){A.charAt(0)==l7?A.charAt(1)=="."&&A==WlA?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,A.slice(1),i):this.delegate.setProperty(e,A,i)}listen(e,A,i,n){if(A.charAt(0)==l7){let o=JqA(e),r=A.slice(1),s="";return r.charAt(0)!=l7&&([r,s]=TqA(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(e,A,i,n)}};function JqA(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function TqA(t){let e=t.indexOf("."),A=t.substring(0,e),i=t.slice(e+1);return[A,i]}var u7=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,A,i){this.delegate=e,this.engine=A,this._zone=i,A.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(e,A){let i="",n=this.delegate.createRenderer(e,A);if(!e||!A?.data?.animation){let c=this._rendererCache,l=c.get(n);if(!l){let I=()=>c.delete(n);l=new Q7(i,n,this.engine,I),c.set(n,l)}return l}let o=A.id,r=A.id+"-"+this._currentId;this._currentId++,this.engine.register(r,e);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,e,c.name,c)};return A.data.animation.forEach(s),new vU(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,A,i){if(e>=0&&eA(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var HqA=(()=>{class t extends yh{constructor(A,i,n){super(A,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(he(tt),he($C),he(Ad))};static \u0275prov=SA({token:t,factory:t.\u0275fac})}return t})();function OqA(){return new g7}function PqA(t,e,A){return new u7(t,e,A)}var $lA=[{provide:Ad,useFactory:OqA},{provide:yh,useClass:HqA},{provide:ds,useFactory:PqA,deps:[xQ,yh,de]}],jqA=[{provide:$C,useClass:bU},{provide:mi,useValue:"NoopAnimations"},...$lA],XlA=[{provide:$C,useFactory:()=>new h7},{provide:mi,useFactory:()=>"BrowserAnimations"},...$lA],f7=(()=>{class t{static withConfig(A){return{ngModule:t,providers:A.disableAnimations?jqA:XlA}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:XlA,imports:[NQ]})}return t})();var qqA=new BA("mat-chips-default-options",{providedIn:"root",factory:()=>({separatorKeyCodes:[13]})});var AgA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({providers:[dB,{provide:qqA,useValue:{separatorKeyCodes:[13]}}],imports:[Ve,Xa,Ve]})}return t})();var VqA=["input"],ZqA=["formField"],WqA=["*"],kU=class{source;value;constructor(e,A){this.source=e,this.value=A}};var XqA=new BA("MatRadioGroup"),$qA=new BA("mat-radio-default-options",{providedIn:"root",factory:AVA});function AVA(){return{color:"accent",disabledInteractive:!1}}var eVA=(()=>{class t{_elementRef=m(te);_changeDetector=m(lt);_focusMonitor=m(Jr);_radioDispatcher=m(uB);_defaultOptions=m($qA,{optional:!0});_ngZone=m(de);_renderer=m(Gi);_uniqueId=m($i).getId("mat-radio-");_cleanupClick;id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked!==A&&(this._checked=A,A&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!A&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),A&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(A){this._value!==A&&(this._value=A,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===A),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(A){this._labelPosition=A}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(A){this._setDisabled(A)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(A){this._required=A}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(A){this._color=A}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new XA;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=m(Dt);constructor(){m(Ln).load(Qr);let A=m(XqA,{optional:!0}),i=m(mi,{optional:!0}),n=m(new Er("tabindex"),{optional:!0});this.radioGroup=A,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,n&&(this.tabIndex=Mi(n,0))}focus(A,i){i?this._focusMonitor.focusVia(this._inputElement,i,A):this._inputElement.nativeElement.focus(A)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((A,i)=>{A!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{!A&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._cleanupClick=this._renderer.listen(this._inputElement.nativeElement,"click",this._onInputClick)})}ngOnDestroy(){this._cleanupClick?.(),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new kU(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(A){if(A.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(A){this._onInputInteraction(A),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(A){this._disabled!==A&&(this._disabled=A,this._changeDetector.markForCheck())}_onInputClick=A=>{this.disabled&&this.disabledInteractive&&A.preventDefault()};_updateTabIndex(){let A=this.radioGroup,i;if(!A||!A.selected||this.disabled?i=this.tabIndex:i=A.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let n=this._inputElement?.nativeElement;n&&(n.setAttribute("tabindex",i+""),this._previousTabIndex=i,Vo(()=>{queueMicrotask(()=>{A&&A.selected&&A.selected!==this&&document.activeElement===n&&(A.selected?._inputElement.nativeElement.focus(),document.activeElement===n&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=YA({type:t,selectors:[["mat-radio-button"]],viewQuery:function(i,n){if(i&1&&(Ge(VqA,5),Ge(ZqA,7,te)),i&2){let o;$A(o=Ae())&&(n._inputElement=o.first),$A(o=Ae())&&(n._rippleTrigger=o.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,n){i&1&&mA("focus",function(){return n._inputElement.nativeElement.focus()}),i&2&&(_e("id",n.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),ue("mat-primary",n.color==="primary")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("mat-mdc-radio-checked",n.checked)("mat-mdc-radio-disabled",n.disabled)("mat-mdc-radio-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",ae],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:Mi(A)],checked:[2,"checked","checked",ae],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",ae],required:[2,"required","required",ae],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ae]},outputs:{change:"change"},exportAs:["matRadioButton"],ngContentSelectors:WqA,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=De();Yt(),S(0,"div",2,0)(2,"div",3)(3,"div",4),mA("click",function(s){return LA(o),xA(n._onTouchTargetClick(s))}),R(),S(4,"input",5,1),mA("change",function(s){return LA(o),xA(n._onInputInteraction(s))}),R(),S(6,"div",6),UA(7,"div",7)(8,"div",8),R(),S(9,"div",9),UA(10,"div",10),R()(),S(11,"label",11),xe(12),R()()}i&2&&(vA("labelPosition",n.labelPosition),_(2),ue("mdc-radio--disabled",n.disabled),_(2),vA("id",n.inputId)("checked",n.checked)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),_e("name",n.name)("value",n.value)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(5),vA("matRippleTrigger",n._rippleTrigger.nativeElement)("matRippleDisabled",n._isRippleDisabled())("matRippleCentered",!0),_(2),vA("for",n.inputId))},dependencies:[Gs,BB],styles:['.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled])~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return t})(),egA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[Ve,Xa,eVA,Ve]})}return t})();var m7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=ge({type:t});static \u0275inj=le({imports:[g0,e6,scA,rq,f0,Ty,KI,fP,ecA,acA,gcA,QcA,egA,a8,PaA,haA,NaA,$cA,c8,pcA,f7,VaA,zcA.forRoot(),HcA,EH,AgA,$j,ncA]})};var Mf=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=ge({type:t,bootstrap:[mh]});static \u0275inj=le({providers:[Jg,K2,Tg,Eh,hh,j1,zc,Bh,J2,zg],imports:[m7,NQ,e6,Vb,$y,Ty,f0,KI,f7]})};fetch("./assets/config/runtime-config.json").then(t=>t.json()).then(t=>{window.runtimeConfig=t,Gp().bootstrapModule(Mf).catch(e=>console.error(e))});Gp().bootstrapModule(Mf).catch(t=>console.error(t)); diff --git a/src/google/adk/cli/cli_deploy.py b/src/google/adk/cli/cli_deploy.py index 99c7e9bb1..0dedae6de 100644 --- a/src/google/adk/cli/cli_deploy.py +++ b/src/google/adk/cli/cli_deploy.py @@ -55,7 +55,7 @@ EXPOSE {port} -CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} "/app/agents" +CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} {allow_origins_option} {a2a_option}"/app/agents" """ _AGENT_ENGINE_APP_TEMPLATE = """ @@ -121,11 +121,14 @@ def to_cloud_run( port: int, trace_to_cloud: bool, with_ui: bool, + log_level: str, verbosity: str, adk_version: str, + allow_origins: Optional[list[str]] = None, session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, memory_service_uri: Optional[str] = None, + a2a: bool = False, ): """Deploys an agent to Google Cloud Run. @@ -150,6 +153,7 @@ def to_cloud_run( app_name: The name of the app, by default, it's basename of `agent_folder`. temp_folder: The temp folder for the generated Cloud Run source files. port: The port of the ADK api server. + allow_origins: The list of allowed origins for the ADK api server. trace_to_cloud: Whether to enable Cloud Trace. with_ui: Whether to deploy with UI. verbosity: The verbosity level of the CLI. @@ -183,6 +187,10 @@ def to_cloud_run( # create Dockerfile click.echo('Creating Dockerfile...') host_option = '--host=0.0.0.0' if adk_version > '0.5.0' else '' + allow_origins_option = ( + f'--allow_origins={",".join(allow_origins)}' if allow_origins else '' + ) + a2a_option = '--a2a' if a2a else '' dockerfile_content = _DOCKERFILE_TEMPLATE.format( gcp_project_id=project, gcp_region=region, @@ -197,8 +205,10 @@ def to_cloud_run( memory_service_uri, ), trace_to_cloud_option='--trace_to_cloud' if trace_to_cloud else '', + allow_origins_option=allow_origins_option, adk_version=adk_version, host_option=host_option, + a2a_option=a2a_option, ) dockerfile_path = os.path.join(temp_folder, 'Dockerfile') os.makedirs(temp_folder, exist_ok=True) @@ -226,7 +236,7 @@ def to_cloud_run( '--port', str(port), '--verbosity', - verbosity, + log_level.lower() if log_level else verbosity, '--labels', 'created-by=adk', ], diff --git a/src/google/adk/cli/cli_eval.py b/src/google/adk/cli/cli_eval.py index 13e205cb7..01b06135a 100644 --- a/src/google/adk/cli/cli_eval.py +++ b/src/google/adk/cli/cli_eval.py @@ -26,6 +26,7 @@ from ..agents import Agent from ..artifacts.base_artifact_service import BaseArtifactService +from ..evaluation.constants import MISSING_EVAL_DEPENDENCIES_MESSAGE from ..evaluation.eval_case import EvalCase from ..evaluation.eval_metrics import EvalMetric from ..evaluation.eval_metrics import EvalMetricResult @@ -38,10 +39,6 @@ logger = logging.getLogger("google_adk." + __name__) -MISSING_EVAL_DEPENDENCIES_MESSAGE = ( - "Eval module is not installed, please install via `pip install" - " google-adk[eval]`." -) TOOL_TRAJECTORY_SCORE_KEY = "tool_trajectory_avg_score" RESPONSE_MATCH_SCORE_KEY = "response_match_score" # This evaluation is not very stable. @@ -150,7 +147,7 @@ async def run_evals( artifact_service: The artifact service to use during inferencing. """ try: - from ..evaluation.agent_evaluator import EvaluationGenerator + from ..evaluation.evaluation_generator import EvaluationGenerator except ModuleNotFoundError as e: raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e @@ -252,7 +249,8 @@ async def run_evals( result = "❌ Failed" print(f"Result: {result}\n") - + except ModuleNotFoundError as e: + raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e except Exception: # Catching the general exception, so that we don't block other eval # cases. diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 8f45db96d..f3095c2ff 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -31,14 +31,22 @@ from . import cli_create from . import cli_deploy from .. import version +from ..evaluation.constants import MISSING_EVAL_DEPENDENCIES_MESSAGE +from ..evaluation.gcs_eval_set_results_manager import GcsEvalSetResultsManager +from ..evaluation.gcs_eval_sets_manager import GcsEvalSetsManager from ..evaluation.local_eval_set_results_manager import LocalEvalSetResultsManager from ..sessions.in_memory_session_service import InMemorySessionService from .cli import run_cli -from .cli_eval import MISSING_EVAL_DEPENDENCIES_MESSAGE from .fast_api import get_fast_api_app from .utils import envs +from .utils import evals from .utils import logs +LOG_LEVELS = click.Choice( + ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], + case_sensitive=False, +) + class HelpfulCommand(click.Command): """Command that shows full help on error instead of just the error message. @@ -277,11 +285,21 @@ def cli_run( default=False, help="Optional. Whether to print detailed results on console or not.", ) +@click.option( + "--eval_storage_uri", + type=str, + help=( + "Optional. The evals storage URI to store agent evals," + " supported URIs: gs://." + ), + default=None, +) def cli_eval( agent_module_file_path: str, - eval_set_file_path: tuple[str], + eval_set_file_path: list[str], config_file_path: str, print_detailed_results: bool, + eval_storage_uri: Optional[str] = None, ): """Evaluates an agent given the eval sets. @@ -333,12 +351,33 @@ def cli_eval( root_agent = get_root_agent(agent_module_file_path) reset_func = try_get_reset_func(agent_module_file_path) + gcs_eval_sets_manager = None + eval_set_results_manager = None + if eval_storage_uri: + gcs_eval_managers = evals.create_gcs_eval_managers_from_uri( + eval_storage_uri + ) + gcs_eval_sets_manager = gcs_eval_managers.eval_sets_manager + eval_set_results_manager = gcs_eval_managers.eval_set_results_manager + else: + eval_set_results_manager = LocalEvalSetResultsManager( + agents_dir=os.path.dirname(agent_module_file_path) + ) eval_set_file_path_to_evals = parse_and_get_evals_to_run(eval_set_file_path) eval_set_id_to_eval_cases = {} # Read the eval_set files and get the cases. for eval_set_file_path, eval_case_ids in eval_set_file_path_to_evals.items(): - eval_set = load_eval_set_from_file(eval_set_file_path, eval_set_file_path) + if gcs_eval_sets_manager: + eval_set = gcs_eval_sets_manager._load_eval_set_from_blob( + eval_set_file_path + ) + if not eval_set: + raise click.ClickException( + f"Eval set {eval_set_file_path} not found in GCS." + ) + else: + eval_set = load_eval_set_from_file(eval_set_file_path, eval_set_file_path) eval_cases = eval_set.eval_cases if eval_case_ids: @@ -373,16 +412,13 @@ async def _collect_eval_results() -> list[EvalCaseResult]: raise click.ClickException(MISSING_EVAL_DEPENDENCIES_MESSAGE) # Write eval set results. - local_eval_set_results_manager = LocalEvalSetResultsManager( - agents_dir=os.path.dirname(agent_module_file_path) - ) eval_set_id_to_eval_results = collections.defaultdict(list) for eval_case_result in eval_results: eval_set_id = eval_case_result.eval_set_id eval_set_id_to_eval_results[eval_set_id].append(eval_case_result) for eval_set_id, eval_case_results in eval_set_id_to_eval_results.items(): - local_eval_set_results_manager.save_eval_set_result( + eval_set_results_manager.save_eval_set_result( app_name=os.path.basename(agent_module_file_path), eval_set_id=eval_set_id, eval_case_results=eval_case_results, @@ -439,12 +475,22 @@ def decorator(func): ), default=None, ) + @click.option( + "--eval_storage_uri", + type=str, + help=( + "Optional. The evals storage URI to store agent evals," + " supported URIs: gs://." + ), + default=None, + ) @click.option( "--memory_service_uri", type=str, help=( """Optional. The URI of the memory service. - - Use 'rag://' to connect to Vertex AI Rag Memory Service.""" + - Use 'rag://' to connect to Vertex AI Rag Memory Service. + - Use 'agentengine://' to connect to Vertex AI Memory Bank Service. e.g. agentengine://12345""" ), default=None, ) @@ -498,13 +544,6 @@ def fast_api_common_options(): """Decorator to add common fast api options to click commands.""" def decorator(func): - @click.option( - "--host", - type=str, - help="Optional. The binding host of the server", - default="127.0.0.1", - show_default=True, - ) @click.option( "--port", type=int, @@ -518,10 +557,7 @@ def decorator(func): ) @click.option( "--log_level", - type=click.Choice( - ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], - case_sensitive=False, - ), + type=LOG_LEVELS, default="INFO", help="Optional. Set the logging level", ) @@ -535,7 +571,17 @@ def decorator(func): @click.option( "--reload/--no-reload", default=True, - help="Optional. Whether to enable auto reload for server.", + help=( + "Optional. Whether to enable auto reload for server. Not supported" + " for Cloud Run." + ), + ) + @click.option( + "--a2a", + is_flag=True, + show_default=True, + default=False, + help="Optional. Whether to enable A2A endpoint.", ) @functools.wraps(func) def wrapper(*args, **kwargs): @@ -547,6 +593,13 @@ def wrapper(*args, **kwargs): @main.command("web") +@click.option( + "--host", + type=str, + help="Optional. The binding host of the server", + default="127.0.0.1", + show_default=True, +) @fast_api_common_options() @adk_services_options() @deprecated_adk_services_options() @@ -559,6 +612,7 @@ def wrapper(*args, **kwargs): ) def cli_web( agents_dir: str, + eval_storage_uri: Optional[str] = None, log_level: str = "INFO", allow_origins: Optional[list[str]] = None, host: str = "127.0.0.1", @@ -570,6 +624,7 @@ def cli_web( memory_service_uri: Optional[str] = None, session_db_url: Optional[str] = None, # Deprecated artifact_storage_uri: Optional[str] = None, # Deprecated + a2a: bool = False, ): """Starts a FastAPI server with Web UI for agents. @@ -578,7 +633,7 @@ def cli_web( Example: - adk web --session_service_uri=[uri] --port=[port] path/to/agents_dir + adk web --port=[port] path/to/agents_dir """ logs.setup_adk_logger(getattr(logging, log_level.upper())) @@ -611,10 +666,14 @@ async def _lifespan(app: FastAPI): session_service_uri=session_service_uri, artifact_service_uri=artifact_service_uri, memory_service_uri=memory_service_uri, + eval_storage_uri=eval_storage_uri, allow_origins=allow_origins, web=True, trace_to_cloud=trace_to_cloud, lifespan=_lifespan, + a2a=a2a, + host=host, + port=port, ) config = uvicorn.Config( app, @@ -628,6 +687,16 @@ async def _lifespan(app: FastAPI): @main.command("api_server") +@click.option( + "--host", + type=str, + help="Optional. The binding host of the server", + default="127.0.0.1", + show_default=True, +) +@fast_api_common_options() +@adk_services_options() +@deprecated_adk_services_options() # The directory of agents, where each sub-directory is a single agent. # By default, it is the current working directory @click.argument( @@ -637,11 +706,9 @@ async def _lifespan(app: FastAPI): ), default=os.getcwd(), ) -@fast_api_common_options() -@adk_services_options() -@deprecated_adk_services_options() def cli_api_server( agents_dir: str, + eval_storage_uri: Optional[str] = None, log_level: str = "INFO", allow_origins: Optional[list[str]] = None, host: str = "127.0.0.1", @@ -653,6 +720,7 @@ def cli_api_server( memory_service_uri: Optional[str] = None, session_db_url: Optional[str] = None, # Deprecated artifact_storage_uri: Optional[str] = None, # Deprecated + a2a: bool = False, ): """Starts a FastAPI server for agents. @@ -661,7 +729,7 @@ def cli_api_server( Example: - adk api_server --session_service_uri=[uri] --port=[port] path/to/agents_dir + adk api_server --port=[port] path/to/agents_dir """ logs.setup_adk_logger(getattr(logging, log_level.upper())) @@ -673,9 +741,13 @@ def cli_api_server( session_service_uri=session_service_uri, artifact_service_uri=artifact_service_uri, memory_service_uri=memory_service_uri, + eval_storage_uri=eval_storage_uri, allow_origins=allow_origins, web=False, trace_to_cloud=trace_to_cloud, + a2a=a2a, + host=host, + port=port, ), host=host, port=port, @@ -720,19 +792,7 @@ def cli_api_server( " of the AGENT source code)." ), ) -@click.option( - "--port", - type=int, - default=8000, - help="Optional. The port of the ADK API server (default: 8000).", -) -@click.option( - "--trace_to_cloud", - is_flag=True, - show_default=True, - default=False, - help="Optional. Whether to enable Cloud Trace for cloud run.", -) +@fast_api_common_options() @click.option( "--with_ui", is_flag=True, @@ -743,6 +803,11 @@ def cli_api_server( " only)" ), ) +@click.option( + "--verbosity", + type=LOG_LEVELS, + help="Deprecated. Use --log_level instead.", +) @click.option( "--temp_folder", type=str, @@ -756,20 +821,6 @@ def cli_api_server( " (default: a timestamped folder in the system temp directory)." ), ) -@click.option( - "--verbosity", - type=click.Choice( - ["debug", "info", "warning", "error", "critical"], case_sensitive=False - ), - default="WARNING", - help="Optional. Override the default verbosity level.", -) -@click.argument( - "agent", - type=click.Path( - exists=True, dir_okay=True, file_okay=False, resolve_path=True - ), -) @click.option( "--adk_version", type=str, @@ -780,8 +831,23 @@ def cli_api_server( " version in the dev environment)" ), ) +@click.option( + "--eval_storage_uri", + type=str, + help=( + "Optional. The evals storage URI to store agent evals," + " supported URIs: gs://." + ), + default=None, +) @adk_services_options() @deprecated_adk_services_options() +@click.argument( + "agent", + type=click.Path( + exists=True, dir_okay=True, file_okay=False, resolve_path=True + ), +) def cli_deploy_cloud_run( agent: str, project: Optional[str], @@ -792,13 +858,18 @@ def cli_deploy_cloud_run( port: int, trace_to_cloud: bool, with_ui: bool, - verbosity: str, adk_version: str, + log_level: Optional[str] = None, + verbosity: str = "WARNING", + reload: bool = True, + allow_origins: Optional[list[str]] = None, session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, memory_service_uri: Optional[str] = None, + eval_storage_uri: Optional[str] = None, session_db_url: Optional[str] = None, # Deprecated artifact_storage_uri: Optional[str] = None, # Deprecated + a2a: bool = False, ): """Deploys an agent to Cloud Run. @@ -808,6 +879,7 @@ def cli_deploy_cloud_run( adk deploy cloud_run --project=[project] --region=[region] path/to/my_agent """ + log_level = log_level or verbosity session_service_uri = session_service_uri or session_db_url artifact_service_uri = artifact_service_uri or artifact_storage_uri try: @@ -820,12 +892,15 @@ def cli_deploy_cloud_run( temp_folder=temp_folder, port=port, trace_to_cloud=trace_to_cloud, + allow_origins=allow_origins, with_ui=with_ui, + log_level=log_level, verbosity=verbosity, adk_version=adk_version, session_service_uri=session_service_uri, artifact_service_uri=artifact_service_uri, memory_service_uri=memory_service_uri, + a2a=a2a, ) except Exception as e: click.secho(f"Deploy failed: {e}", fg="red", err=True) diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 46e008655..136051479 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -16,6 +16,7 @@ import asyncio from contextlib import asynccontextmanager +import json import logging import os from pathlib import Path @@ -32,7 +33,6 @@ from fastapi import HTTPException from fastapi import Query from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import FileResponse from fastapi.responses import RedirectResponse from fastapi.responses import StreamingResponse from fastapi.staticfiles import StaticFiles @@ -53,7 +53,6 @@ from ..agents import RunConfig from ..agents.live_request_queue import LiveRequest from ..agents.live_request_queue import LiveRequestQueue -from ..agents.llm_agent import Agent from ..agents.run_config import StreamingMode from ..artifacts.gcs_artifact_service import GcsArtifactService from ..artifacts.in_memory_artifact_service import InMemoryArtifactService @@ -69,6 +68,7 @@ from ..evaluation.local_eval_sets_manager import LocalEvalSetsManager from ..events.event import Event from ..memory.in_memory_memory_service import InMemoryMemoryService +from ..memory.vertex_ai_memory_bank_service import VertexAiMemoryBankService from ..memory.vertex_ai_rag_memory_service import VertexAiRagMemoryService from ..runners import Runner from ..sessions.database_session_service import DatabaseSessionService @@ -198,8 +198,12 @@ def get_fast_api_app( session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, memory_service_uri: Optional[str] = None, + eval_storage_uri: Optional[str] = None, allow_origins: Optional[list[str]] = None, web: bool, + a2a: bool = False, + host: str = "127.0.0.1", + port: int = 8000, trace_to_cloud: bool = False, lifespan: Optional[Lifespan[FastAPI]] = None, ) -> FastAPI: @@ -256,8 +260,18 @@ async def internal_lifespan(app: FastAPI): runner_dict = {} - eval_sets_manager = LocalEvalSetsManager(agents_dir=agents_dir) - eval_set_results_manager = LocalEvalSetResultsManager(agents_dir=agents_dir) + # Set up eval managers. + eval_sets_manager = None + eval_set_results_manager = None + if eval_storage_uri: + gcs_eval_managers = evals.create_gcs_eval_managers_from_uri( + eval_storage_uri + ) + eval_sets_manager = gcs_eval_managers.eval_sets_manager + eval_set_results_manager = gcs_eval_managers.eval_set_results_manager + else: + eval_sets_manager = LocalEvalSetsManager(agents_dir=agents_dir) + eval_set_results_manager = LocalEvalSetResultsManager(agents_dir=agents_dir) # Build the Memory service if memory_service_uri: @@ -269,6 +283,16 @@ async def internal_lifespan(app: FastAPI): memory_service = VertexAiRagMemoryService( rag_corpus=f'projects/{os.environ["GOOGLE_CLOUD_PROJECT"]}/locations/{os.environ["GOOGLE_CLOUD_LOCATION"]}/ragCorpora/{rag_corpus}' ) + elif memory_service_uri.startswith("agentengine://"): + agent_engine_id = memory_service_uri.split("://")[1] + if not agent_engine_id: + raise click.ClickException("Agent engine id can not be empty.") + envs.load_dotenv_for_agent("", agents_dir) + memory_service = VertexAiMemoryBankService( + project=os.environ["GOOGLE_CLOUD_PROJECT"], + location=os.environ["GOOGLE_CLOUD_LOCATION"], + agent_engine_id=agent_engine_id, + ) else: raise click.ClickException( "Unsupported memory service URI: %s" % memory_service_uri @@ -938,6 +962,86 @@ async def _get_runner_async(app_name: str) -> Runner: runner_dict[app_name] = runner return runner + if a2a: + try: + from a2a.server.apps import A2AStarletteApplication + from a2a.server.request_handlers import DefaultRequestHandler + from a2a.server.tasks import InMemoryTaskStore + from a2a.types import AgentCard + + from ..a2a.executor.a2a_agent_executor import A2aAgentExecutor + + except ImportError as e: + import sys + + if sys.version_info < (3, 10): + raise ImportError( + "A2A requires Python 3.10 or above. Please upgrade your Python" + " version." + ) from e + else: + raise e + # locate all a2a agent apps in the agents directory + base_path = Path.cwd() / agents_dir + # the root agents directory should be an existing folder + if base_path.exists() and base_path.is_dir(): + a2a_task_store = InMemoryTaskStore() + + def create_a2a_runner_loader(captured_app_name: str): + """Factory function to create A2A runner with proper closure.""" + + async def _get_a2a_runner_async() -> Runner: + return await _get_runner_async(captured_app_name) + + return _get_a2a_runner_async + + for p in base_path.iterdir(): + # only folders with an agent.json file representing agent card are valid + # a2a agents + if ( + p.is_file() + or p.name.startswith((".", "__pycache__")) + or not (p / "agent.json").is_file() + ): + continue + + app_name = p.name + logger.info("Setting up A2A agent: %s", app_name) + + try: + a2a_rpc_path = f"http://{host}:{port}/a2a/{app_name}" + + agent_executor = A2aAgentExecutor( + runner=create_a2a_runner_loader(app_name), + ) + + request_handler = DefaultRequestHandler( + agent_executor=agent_executor, task_store=a2a_task_store + ) + + with (p / "agent.json").open("r", encoding="utf-8") as f: + data = json.load(f) + agent_card = AgentCard(**data) + agent_card.url = a2a_rpc_path + + a2a_app = A2AStarletteApplication( + agent_card=agent_card, + http_handler=request_handler, + ) + + routes = a2a_app.routes( + rpc_url=f"/a2a/{app_name}", + agent_card_url=f"/a2a/{app_name}/.well-known/agent.json", + ) + + for new_route in routes: + app.router.routes.append(new_route) + + logger.info("Successfully configured A2A agent: %s", app_name) + + except Exception as e: + logger.error("Failed to setup A2A agent %s: %s", app_name, e) + # Continue with other agents even if one fails if web: import mimetypes diff --git a/src/google/adk/cli/utils/evals.py b/src/google/adk/cli/utils/evals.py index c8d1a3296..305d47544 100644 --- a/src/google/adk/cli/utils/evals.py +++ b/src/google/adk/cli/utils/evals.py @@ -14,17 +14,36 @@ from __future__ import annotations +import dataclasses +import os from typing import Any from typing import Tuple from google.genai import types as genai_types +from pydantic import alias_generators +from pydantic import BaseModel +from pydantic import ConfigDict from typing_extensions import deprecated from ...evaluation.eval_case import IntermediateData from ...evaluation.eval_case import Invocation +from ...evaluation.gcs_eval_set_results_manager import GcsEvalSetResultsManager +from ...evaluation.gcs_eval_sets_manager import GcsEvalSetsManager from ...sessions.session import Session +class GcsEvalManagers(BaseModel): + model_config = ConfigDict( + alias_generator=alias_generators.to_camel, + populate_by_name=True, + arbitrary_types_allowed=True, + ) + + eval_sets_manager: GcsEvalSetsManager + + eval_set_results_manager: GcsEvalSetResultsManager + + @deprecated('Use convert_session_to_eval_invocations instead.') def convert_session_to_eval_format(session: Session) -> list[dict[str, Any]]: """Converts a session data into eval format. @@ -176,3 +195,37 @@ def convert_session_to_eval_invocations(session: Session) -> list[Invocation]: ) return invocations + + +def create_gcs_eval_managers_from_uri( + eval_storage_uri: str, +) -> GcsEvalManagers: + """Creates GcsEvalManagers from eval_storage_uri. + + Args: + eval_storage_uri: The evals storage URI to use. Supported URIs: + gs://. If a path is provided, the bucket will be extracted. + + Returns: + GcsEvalManagers: The GcsEvalManagers object. + + Raises: + ValueError: If the eval_storage_uri is not supported. + """ + if eval_storage_uri.startswith('gs://'): + gcs_bucket = eval_storage_uri.split('://')[1] + eval_sets_manager = GcsEvalSetsManager( + bucket_name=gcs_bucket, project=os.environ['GOOGLE_CLOUD_PROJECT'] + ) + eval_set_results_manager = GcsEvalSetResultsManager( + bucket_name=gcs_bucket, project=os.environ['GOOGLE_CLOUD_PROJECT'] + ) + return GcsEvalManagers( + eval_sets_manager=eval_sets_manager, + eval_set_results_manager=eval_set_results_manager, + ) + else: + raise ValueError( + f'Unsupported evals storage URI: {eval_storage_uri}. Supported URIs:' + ' gs://' + ) diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index 6ee001f9d..486d01cf1 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import json import logging import os @@ -23,16 +25,16 @@ from typing import Union import uuid +from google.genai import types as genai_types from pydantic import ValidationError +from .constants import MISSING_EVAL_DEPENDENCIES_MESSAGE +from .eval_case import IntermediateData from .eval_set import EvalSet -from .evaluation_generator import EvaluationGenerator from .evaluator import EvalStatus from .evaluator import EvaluationResult from .evaluator import Evaluator from .local_eval_sets_manager import convert_eval_set_to_pydanctic_schema -from .response_evaluator import ResponseEvaluator -from .trajectory_evaluator import TrajectoryEvaluator logger = logging.getLogger("google_adk." + __name__) @@ -96,6 +98,7 @@ async def evaluate_eval_set( criteria: dict[str, float], num_runs=NUM_RUNS, agent_name=None, + print_detailed_results: bool = True, ): """Evaluates an agent using the given EvalSet. @@ -109,7 +112,13 @@ async def evaluate_eval_set( num_runs: Number of times all entries in the eval dataset should be assessed. agent_name: The name of the agent. + print_detailed_results: Whether to print detailed results for each metric + evaluation. """ + try: + from .evaluation_generator import EvaluationGenerator + except ModuleNotFoundError as e: + raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e eval_case_responses_list = await EvaluationGenerator.generate_responses( eval_set=eval_set, agent_module_path=agent_module, @@ -117,6 +126,8 @@ async def evaluate_eval_set( agent_name=agent_name, ) + failures = [] + for eval_case_responses in eval_case_responses_list: actual_invocations = [ invocation @@ -139,10 +150,25 @@ async def evaluate_eval_set( ) ) - assert evaluation_result.overall_eval_status == EvalStatus.PASSED, ( - f"{metric_name} for {agent_module} Failed. Expected {threshold}," - f" but got {evaluation_result.overall_score}." - ) + if print_detailed_results: + AgentEvaluator._print_details( + evaluation_result=evaluation_result, + metric_name=metric_name, + threshold=threshold, + ) + + # Gather all the failures. + if evaluation_result.overall_eval_status != EvalStatus.PASSED: + failures.append( + f"{metric_name} for {agent_module} Failed. Expected {threshold}," + f" but got {evaluation_result.overall_score}." + ) + + assert not failures, ( + "Following are all the test failures. If you looking to get more" + " details on the failures, then please re-run this test with" + " `print_details` set to `True`.\n{}".format("\n".join(failures)) + ) @staticmethod async def evaluate( @@ -158,9 +184,10 @@ async def evaluate( agent_module: The path to python module that contains the definition of the agent. There is convention in place here, where the code is going to look for 'root_agent' in the loaded module. - eval_dataset_file_path_or_dir: The eval data set. This can be either a string representing - full path to the file containing eval dataset, or a directory that is - recursively explored for all files that have a `.test.json` suffix. + eval_dataset_file_path_or_dir: The eval data set. This can be either a + string representing full path to the file containing eval dataset, or a + directory that is recursively explored for all files that have a + `.test.json` suffix. num_runs: Number of times all entries in the eval dataset should be assessed. agent_name: The name of the agent. @@ -358,6 +385,11 @@ def _validate_input(eval_dataset, criteria): @staticmethod def _get_metric_evaluator(metric_name: str, threshold: float) -> Evaluator: + try: + from .response_evaluator import ResponseEvaluator + from .trajectory_evaluator import TrajectoryEvaluator + except ModuleNotFoundError as e: + raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e if metric_name == TOOL_TRAJECTORY_SCORE_KEY: return TrajectoryEvaluator(threshold=threshold) elif ( @@ -367,3 +399,60 @@ def _get_metric_evaluator(metric_name: str, threshold: float) -> Evaluator: return ResponseEvaluator(threshold=threshold, metric_name=metric_name) raise ValueError(f"Unsupported eval metric: {metric_name}") + + @staticmethod + def _print_details( + evaluation_result: EvaluationResult, metric_name: str, threshold: float + ): + try: + from pandas import pandas as pd + from tabulate import tabulate + except ModuleNotFoundError as e: + raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e + print( + f"Summary: `{evaluation_result.overall_eval_status}` for Metric:" + f" `{metric_name}`. Expected threshold: `{threshold}`, actual value:" + f" `{evaluation_result.overall_score}`." + ) + + data = [] + for per_invocation_result in evaluation_result.per_invocation_results: + data.append({ + "eval_status": per_invocation_result.eval_status, + "score": per_invocation_result.score, + "threshold": threshold, + "prompt": AgentEvaluator._convert_content_to_text( + per_invocation_result.expected_invocation.user_content + ), + "expected_response": AgentEvaluator._convert_content_to_text( + per_invocation_result.expected_invocation.final_response + ), + "actual_response": AgentEvaluator._convert_content_to_text( + per_invocation_result.actual_invocation.final_response + ), + "expected_tool_calls": AgentEvaluator._convert_tool_calls_to_text( + per_invocation_result.expected_invocation.intermediate_data + ), + "actual_tool_calls": AgentEvaluator._convert_tool_calls_to_text( + per_invocation_result.actual_invocation.intermediate_data + ), + }) + + print(tabulate(pd.DataFrame(data), headers="keys", tablefmt="grid")) + print("\n\n") # Few empty lines for visual clarity + + @staticmethod + def _convert_content_to_text(content: Optional[genai_types.Content]) -> str: + if content and content.parts: + return "\n".join([p.text for p in content.parts if p.text]) + + return "" + + @staticmethod + def _convert_tool_calls_to_text( + intermediate_data: Optional[IntermediateData], + ) -> str: + if intermediate_data and intermediate_data.tool_uses: + return "\n".join([str(t) for t in intermediate_data.tool_uses]) + + return "" diff --git a/src/google/adk/evaluation/constants.py b/src/google/adk/evaluation/constants.py new file mode 100644 index 000000000..74248ed18 --- /dev/null +++ b/src/google/adk/evaluation/constants.py @@ -0,0 +1,20 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +MISSING_EVAL_DEPENDENCIES_MESSAGE = ( + "Eval module is not installed, please install via `pip install" + " google-adk[eval]`." +) diff --git a/src/google/adk/evaluation/evaluation_generator.py b/src/google/adk/evaluation/evaluation_generator.py index fbf6ea8e2..1359967bc 100644 --- a/src/google/adk/evaluation/evaluation_generator.py +++ b/src/google/adk/evaluation/evaluation_generator.py @@ -182,7 +182,7 @@ async def _generate_inferences_from_root_agent( tool_uses = [] invocation_id = "" - for event in runner.run( + async for event in runner.run_async( user_id=user_id, session_id=session_id, new_message=user_content ): invocation_id = ( diff --git a/src/google/adk/evaluation/final_response_match_v1.py b/src/google/adk/evaluation/final_response_match_v1.py new file mode 100644 index 000000000..a034b470f --- /dev/null +++ b/src/google/adk/evaluation/final_response_match_v1.py @@ -0,0 +1,110 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import Optional + +from google.genai import types as genai_types +from rouge_score import rouge_scorer +from typing_extensions import override + +from .eval_case import Invocation +from .eval_metrics import EvalMetric +from .evaluator import EvalStatus +from .evaluator import EvaluationResult +from .evaluator import Evaluator +from .evaluator import PerInvocationResult + + +class RougeEvaluator(Evaluator): + """Calculates the ROUGE-1 metric to compare responses.""" + + def __init__(self, eval_metric: EvalMetric): + self._eval_metric = eval_metric + + @override + def evaluate_invocations( + self, + actual_invocations: list[Invocation], + expected_invocations: list[Invocation], + ) -> EvaluationResult: + total_score = 0.0 + num_invocations = 0 + per_invocation_results = [] + for actual, expected in zip(actual_invocations, expected_invocations): + reference = _get_text_from_content(expected.final_response) + response = _get_text_from_content(actual.final_response) + rouge_1_scores = _calculate_rouge_1_scores(response, reference) + score = rouge_1_scores.fmeasure + per_invocation_results.append( + PerInvocationResult( + actual_invocation=actual, + expected_invocation=expected, + score=score, + eval_status=_get_eval_status(score, self._eval_metric.threshold), + ) + ) + total_score += score + num_invocations += 1 + + if per_invocation_results: + overall_score = total_score / num_invocations + return EvaluationResult( + overall_score=overall_score, + overall_eval_status=_get_eval_status( + overall_score, self._eval_metric.threshold + ), + per_invocation_results=per_invocation_results, + ) + + return EvaluationResult() + + +def _get_text_from_content(content: Optional[genai_types.Content]) -> str: + if content and content.parts: + return "\n".join([part.text for part in content.parts if part.text]) + + return "" + + +def _get_eval_status(score: float, threshold: float): + return EvalStatus.PASSED if score >= threshold else EvalStatus.FAILED + + +def _calculate_rouge_1_scores(candidate: str, reference: str): + """Calculates the ROUGE-1 score between a candidate and reference text. + + ROUGE-1 measures the overlap of unigrams (single words) between the + candidate and reference texts. The score is broken down into: + - Precision: The proportion of unigrams in the candidate that are also in the + reference. + - Recall: The proportion of unigrams in the reference that are also in the + candidate. + - F-measure: The harmonic mean of precision and recall. + + Args: + candidate: The generated text to be evaluated. + reference: The ground-truth text to compare against. + + Returns: + A dictionary containing the ROUGE-1 precision, recall, and f-measure. + """ + scorer = rouge_scorer.RougeScorer(["rouge1"], use_stemmer=True) + + # The score method returns a dictionary where keys are the ROUGE types + # and values are Score objects (tuples) with precision, recall, and fmeasure. + scores = scorer.score(reference, candidate) + + return scores["rouge1"] diff --git a/src/google/adk/evaluation/gcs_eval_sets_manager.py b/src/google/adk/evaluation/gcs_eval_sets_manager.py index fe5d8c9b5..c253e4cd5 100644 --- a/src/google/adk/evaluation/gcs_eval_sets_manager.py +++ b/src/google/adk/evaluation/gcs_eval_sets_manager.py @@ -72,6 +72,13 @@ def _validate_id(self, id_name: str, id_value: str): f"Invalid {id_name}. {id_name} should have the `{pattern}` format", ) + def _load_eval_set_from_blob(self, blob_name: str) -> Optional[EvalSet]: + blob = self.bucket.blob(blob_name) + if not blob.exists(): + return None + eval_set_data = blob.download_as_text() + return EvalSet.model_validate_json(eval_set_data) + def _write_eval_set_to_blob(self, blob_name: str, eval_set: EvalSet): """Writes an EvalSet to GCS.""" blob = self.bucket.blob(blob_name) @@ -88,11 +95,7 @@ def _save_eval_set(self, app_name: str, eval_set_id: str, eval_set: EvalSet): def get_eval_set(self, app_name: str, eval_set_id: str) -> Optional[EvalSet]: """Returns an EvalSet identified by an app_name and eval_set_id.""" eval_set_blob_name = self._get_eval_set_blob_name(app_name, eval_set_id) - blob = self.bucket.blob(eval_set_blob_name) - if not blob.exists(): - return None - eval_set_data = blob.download_as_text() - return EvalSet.model_validate_json(eval_set_data) + return self._load_eval_set_from_blob(eval_set_blob_name) @override def create_eval_set(self, app_name: str, eval_set_id: str): diff --git a/src/google/adk/evaluation/response_evaluator.py b/src/google/adk/evaluation/response_evaluator.py index 52ab50c74..0826f8796 100644 --- a/src/google/adk/evaluation/response_evaluator.py +++ b/src/google/adk/evaluation/response_evaluator.py @@ -27,10 +27,12 @@ from .eval_case import IntermediateData from .eval_case import Invocation +from .eval_metrics import EvalMetric from .evaluator import EvalStatus from .evaluator import EvaluationResult from .evaluator import Evaluator from .evaluator import PerInvocationResult +from .final_response_match_v1 import RougeEvaluator class ResponseEvaluator(Evaluator): @@ -40,7 +42,7 @@ def __init__(self, threshold: float, metric_name: str): if "response_evaluation_score" == metric_name: self._metric_name = MetricPromptTemplateExamples.Pointwise.COHERENCE elif "response_match_score" == metric_name: - self._metric_name = "rouge_1" + self._metric_name = "response_match_score" else: raise ValueError(f"`{metric_name}` is not supported.") @@ -52,6 +54,15 @@ def evaluate_invocations( actual_invocations: list[Invocation], expected_invocations: list[Invocation], ) -> EvaluationResult: + # If the metric is response_match_score, just use the RougeEvaluator. + if self._metric_name == "response_match_score": + rouge_evaluator = RougeEvaluator( + EvalMetric(metric_name=self._metric_name, threshold=self._threshold) + ) + return rouge_evaluator.evaluate_invocations( + actual_invocations, expected_invocations + ) + total_score = 0.0 num_invocations = 0 per_invocation_results = [] diff --git a/src/google/adk/events/event.py b/src/google/adk/events/event.py index c3b8b8699..6dd617fff 100644 --- a/src/google/adk/events/event.py +++ b/src/google/adk/events/event.py @@ -34,9 +34,10 @@ class Event(LlmResponse): taken by the agents like function calls, etc. Attributes: - invocation_id: The invocation ID of the event. - author: "user" or the name of the agent, indicating who appended the event - to the session. + invocation_id: Required. The invocation ID of the event. Should be non-empty + before appending to a session. + author: Required. "user" or the name of the agent, indicating who appended + the event to the session. actions: The actions taken by the agent. long_running_tool_ids: The ids of the long running function calls. branch: The branch of the event. @@ -55,9 +56,8 @@ class Event(LlmResponse): ) """The pydantic model config.""" - # TODO: revert to be required after spark migration invocation_id: str = '' - """The invocation ID of the event.""" + """The invocation ID of the event. Should be non-empty before appending to a session.""" author: str """'user' or the name of the agent, indicating who appended the event to the session.""" diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index ea418888f..039eaf8c5 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -43,12 +43,20 @@ async def run_async( if not isinstance(agent, LlmAgent): return - if agent.include_contents != 'none': + if agent.include_contents == 'default': + # Include full conversation history llm_request.contents = _get_contents( invocation_context.branch, invocation_context.session.events, agent.name, ) + else: + # Include current turn context only (no conversation history) + llm_request.contents = _get_current_turn_contents( + invocation_context.branch, + invocation_context.session.events, + agent.name, + ) # Maintain async generator behavior if False: # Ensures it behaves as a generator @@ -190,13 +198,15 @@ def _get_contents( ) -> list[types.Content]: """Get the contents for the LLM request. + Applies filtering, rearrangement, and content processing to events. + Args: current_branch: The current branch of the agent. - events: A list of events. + events: Events to process. agent_name: The name of the agent. Returns: - A list of contents. + A list of processed contents. """ filtered_events = [] # Parse the events, leaving the contents and the function calls and @@ -211,12 +221,13 @@ def _get_contents( # Skip events without content, or generated neither by user nor by model # or has empty text. # E.g. events purely for mutating session states. + continue if not _is_event_belongs_to_branch(current_branch, event): # Skip events not belong to current branch. continue if _is_auth_event(event): - # skip auth event + # Skip auth events. continue filtered_events.append( _convert_foreign_event(event) @@ -224,12 +235,15 @@ def _get_contents( else event ) + # Rearrange events for proper function call/response pairing result_events = _rearrange_events_for_latest_function_response( filtered_events ) result_events = _rearrange_events_for_async_function_responses_in_history( result_events ) + + # Convert events to contents contents = [] for event in result_events: content = copy.deepcopy(event.content) @@ -238,6 +252,37 @@ def _get_contents( return contents +def _get_current_turn_contents( + current_branch: Optional[str], events: list[Event], agent_name: str = '' +) -> list[types.Content]: + """Get contents for the current turn only (no conversation history). + + When include_contents='none', we want to include: + - The current user input + - Tool calls and responses from the current turn + But exclude conversation history from previous turns. + + In multi-agent scenarios, the "current turn" for an agent starts from an + actual user or from another agent. + + Args: + current_branch: The current branch of the agent. + events: A list of all session events. + agent_name: The name of the agent. + + Returns: + A list of contents for the current turn only, preserving context needed + for proper tool execution while excluding conversation history. + """ + # Find the latest event that starts the current turn and process from there + for i in range(len(events) - 1, -1, -1): + event = events[i] + if event.author == 'user' or _is_other_agent_reply(agent_name, event): + return _get_contents(current_branch, events[i:], agent_name) + + return [] + + def _is_other_agent_reply(current_agent_name: str, event: Event) -> bool: """Whether the event is a reply from another agent.""" return bool( diff --git a/src/google/adk/flows/llm_flows/functions.py b/src/google/adk/flows/llm_flows/functions.py index 2541ac664..5c690f1fd 100644 --- a/src/google/adk/flows/llm_flows/functions.py +++ b/src/google/adk/flows/llm_flows/functions.py @@ -288,8 +288,7 @@ async def handle_function_calls_live( trace_tool_call( tool=tool, args=function_args, - response_event_id=function_response_event.id, - function_response=function_response, + function_response_event=function_response_event, ) function_response_events.append(function_response_event) @@ -520,3 +519,35 @@ def merge_parallel_function_response_events( # Use the base_event as the timestamp merged_event.timestamp = base_event.timestamp return merged_event + + +def find_matching_function_call( + events: list[Event], +) -> Optional[Event]: + """Finds the function call event that matches the function response id of the last event.""" + if not events: + return None + + last_event = events[-1] + if ( + last_event.content + and last_event.content.parts + and any(part.function_response for part in last_event.content.parts) + ): + + function_call_id = next( + part.function_response.id + for part in last_event.content.parts + if part.function_response + ) + for i in range(len(events) - 2, -1, -1): + event = events[i] + # looking for the system long running request euc function call + function_calls = event.get_function_calls() + if not function_calls: + continue + + for function_call in function_calls: + if function_call.id == function_call_id: + return event + return None diff --git a/src/google/adk/memory/__init__.py b/src/google/adk/memory/__init__.py index f2ac4f9b5..915d7e517 100644 --- a/src/google/adk/memory/__init__.py +++ b/src/google/adk/memory/__init__.py @@ -15,12 +15,14 @@ from .base_memory_service import BaseMemoryService from .in_memory_memory_service import InMemoryMemoryService +from .vertex_ai_memory_bank_service import VertexAiMemoryBankService logger = logging.getLogger('google_adk.' + __name__) __all__ = [ 'BaseMemoryService', 'InMemoryMemoryService', + 'VertexAiMemoryBankService', ] try: @@ -29,7 +31,7 @@ __all__.append('VertexAiRagMemoryService') except ImportError: logger.debug( - 'The Vertex sdk is not installed. If you want to use the' + 'The Vertex SDK is not installed. If you want to use the' ' VertexAiRagMemoryService please install it. If not, you can ignore this' ' warning.' ) diff --git a/src/google/adk/memory/vertex_ai_memory_bank_service.py b/src/google/adk/memory/vertex_ai_memory_bank_service.py new file mode 100644 index 000000000..083b48e8d --- /dev/null +++ b/src/google/adk/memory/vertex_ai_memory_bank_service.py @@ -0,0 +1,150 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import json +import logging +from typing import Optional +from typing import TYPE_CHECKING + +from typing_extensions import override + +from google import genai + +from .base_memory_service import BaseMemoryService +from .base_memory_service import SearchMemoryResponse +from .memory_entry import MemoryEntry + +if TYPE_CHECKING: + from ..sessions.session import Session + +logger = logging.getLogger('google_adk.' + __name__) + + +class VertexAiMemoryBankService(BaseMemoryService): + """Implementation of the BaseMemoryService using Vertex AI Memory Bank.""" + + def __init__( + self, + project: Optional[str] = None, + location: Optional[str] = None, + agent_engine_id: Optional[str] = None, + ): + """Initializes a VertexAiMemoryBankService. + + Args: + project: The project ID of the Memory Bank to use. + location: The location of the Memory Bank to use. + agent_engine_id: The ID of the agent engine to use for the Memory Bank. + e.g. '456' in + 'projects/my-project/locations/us-central1/reasoningEngines/456'. + """ + self._project = project + self._location = location + self._agent_engine_id = agent_engine_id + + @override + async def add_session_to_memory(self, session: Session): + api_client = self._get_api_client() + + if not self._agent_engine_id: + raise ValueError('Agent Engine ID is required for Memory Bank.') + + events = [] + for event in session.events: + if event.content and event.content.parts: + events.append({ + 'content': event.content.model_dump(exclude_none=True, mode='json') + }) + request_dict = { + 'direct_contents_source': { + 'events': events, + }, + 'scope': { + 'app_name': session.app_name, + 'user_id': session.user_id, + }, + } + + if events: + api_response = await api_client.async_request( + http_method='POST', + path=f'reasoningEngines/{self._agent_engine_id}/memories:generate', + request_dict=request_dict, + ) + logger.info(f'Generate memory response: {api_response}') + else: + logger.info('No events to add to memory.') + + @override + async def search_memory(self, *, app_name: str, user_id: str, query: str): + api_client = self._get_api_client() + + api_response = await api_client.async_request( + http_method='POST', + path=f'reasoningEngines/{self._agent_engine_id}/memories:retrieve', + request_dict={ + 'scope': { + 'app_name': app_name, + 'user_id': user_id, + }, + 'similarity_search_params': { + 'search_query': query, + }, + }, + ) + api_response = _convert_api_response(api_response) + logger.info(f'Search memory response: {api_response}') + + if not api_response or not api_response.get('retrievedMemories', None): + return SearchMemoryResponse() + + memory_events = [] + for memory in api_response.get('retrievedMemories', []): + # TODO: add more complex error handling + memory_events.append( + MemoryEntry( + author='user', + content=genai.types.Content( + parts=[ + genai.types.Part(text=memory.get('memory').get('fact')) + ], + role='user', + ), + timestamp=memory.get('updateTime'), + ) + ) + return SearchMemoryResponse(memories=memory_events) + + def _get_api_client(self): + """Instantiates an API client for the given project and location. + + It needs to be instantiated inside each request so that the event loop + management can be properly propagated. + + Returns: + An API client for the given project and location. + """ + client = genai.Client( + vertexai=True, project=self._project, location=self._location + ) + return client._api_client + + +def _convert_api_response(api_response): + """Converts the API response to a JSON object based on the type.""" + if hasattr(api_response, 'body'): + return json.loads(api_response.body) + return api_response diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index dce5ed7c4..39514d6f4 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -23,12 +23,14 @@ from typing import Dict from typing import Generator from typing import Iterable +from typing import List from typing import Literal from typing import Optional from typing import Tuple from typing import Union from google.genai import types +import litellm from litellm import acompletion from litellm import ChatCompletionAssistantMessage from litellm import ChatCompletionAssistantToolCall @@ -53,6 +55,9 @@ from .llm_request import LlmRequest from .llm_response import LlmResponse +# This will add functions to prompts if functions are provided. +litellm.add_function_to_prompt = True + logger = logging.getLogger("google_adk." + __name__) _NEW_LINE = "\n" @@ -481,16 +486,22 @@ def _message_to_generate_content_response( def _get_completion_inputs( llm_request: LlmRequest, -) -> tuple[Iterable[Message], Iterable[dict]]: - """Converts an LlmRequest to litellm inputs. +) -> Tuple[ + List[Message], + Optional[List[Dict]], + Optional[types.SchemaUnion], + Optional[Dict], +]: + """Converts an LlmRequest to litellm inputs and extracts generation params. Args: llm_request: The LlmRequest to convert. Returns: - The litellm inputs (message list, tool dictionary and response format). + The litellm inputs (message list, tool dictionary, response format and generation params). """ - messages = [] + # 1. Construct messages + messages: List[Message] = [] for content in llm_request.contents or []: message_param_or_list = _content_to_message_param(content) if isinstance(message_param_or_list, list): @@ -507,7 +518,8 @@ def _get_completion_inputs( ), ) - tools = None + # 2. Convert tool declarations + tools: Optional[List[Dict]] = None if ( llm_request.config and llm_request.config.tools @@ -518,12 +530,39 @@ def _get_completion_inputs( for tool in llm_request.config.tools[0].function_declarations ] - response_format = None - - if llm_request.config.response_schema: + # 3. Handle response format + response_format: Optional[types.SchemaUnion] = None + if llm_request.config and llm_request.config.response_schema: response_format = llm_request.config.response_schema - return messages, tools, response_format + # 4. Extract generation parameters + generation_params: Optional[Dict] = None + if llm_request.config: + config_dict = llm_request.config.model_dump(exclude_none=True) + # Generate LiteLlm parameters here, + # Following https://docs.litellm.ai/docs/completion/input. + generation_params = {} + param_mapping = { + "max_output_tokens": "max_completion_tokens", + "stop_sequences": "stop", + } + for key in ( + "temperature", + "max_output_tokens", + "top_p", + "top_k", + "stop_sequences", + "presence_penalty", + "frequency_penalty", + ): + if key in config_dict: + mapped_key = param_mapping.get(key, key) + generation_params[mapped_key] = config_dict[key] + + if not generation_params: + generation_params = None + + return messages, tools, response_format, generation_params def _build_function_declaration_log( @@ -660,7 +699,13 @@ async def generate_content_async( self._maybe_append_user_content(llm_request) logger.debug(_build_request_log(llm_request)) - messages, tools, response_format = _get_completion_inputs(llm_request) + messages, tools, response_format, generation_params = ( + _get_completion_inputs(llm_request) + ) + + if "functions" in self._additional_args: + # LiteLLM does not support both tools and functions together. + tools = None completion_args = { "model": self.model, @@ -670,6 +715,9 @@ async def generate_content_async( } completion_args.update(self._additional_args) + if generation_params: + completion_args.update(generation_params) + if stream: text = "" # Track function calls by index @@ -679,7 +727,7 @@ async def generate_content_async( aggregated_llm_response_with_tool_call = None usage_metadata = None fallback_index = 0 - for part in self.llm_client.completion(**completion_args): + async for part in await self.llm_client.acompletion(**completion_args): for chunk, finish_reason in _model_response_to_chunk(part): if isinstance(chunk, FunctionChunk): index = chunk.index or fallback_index diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index 01412a2b3..017997bb3 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -36,6 +36,7 @@ from .auth.credential_service.base_credential_service import BaseCredentialService from .code_executors.built_in_code_executor import BuiltInCodeExecutor from .events.event import Event +from .flows.llm_flows.functions import find_matching_function_call from .memory.base_memory_service import BaseMemoryService from .memory.in_memory_memory_service import InMemoryMemoryService from .platform.thread import create_thread @@ -337,6 +338,8 @@ def _find_agent_to_run( """Finds the agent to run to continue the session. A qualified agent must be either of: + - The agent that returned a function call and the last user message is a + function response to this function call. - The root agent; - An LlmAgent who replied last and is capable to transfer to any other agent in the agent hierarchy. @@ -348,6 +351,13 @@ def _find_agent_to_run( Returns: The agent of the last message in the session or the root agent. """ + # If the last event is a function response, should send this response to + # the agent that returned the corressponding function call regardless the + # type of the agent. e.g. a remote a2a agent may surface a credential + # request as a special long running function tool call. + event = find_matching_function_call(session.events) + if event and event.author: + return root_agent.find_agent(event.author) for event in filter(lambda e: e.author != 'user', reversed(session.events)): if event.author == root_agent.name: # Found root agent. diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 2ccd60083..bf83b0409 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -15,6 +15,7 @@ import copy from datetime import datetime +from datetime import timezone import json import logging from typing import Any @@ -144,6 +145,21 @@ class StorageSession(Base): def __repr__(self): return f"" + @property + def _dialect_name(self) -> Optional[str]: + session = inspect(self).session + return session.bind.dialect.name if session else None + + @property + def update_timestamp_tz(self) -> datetime: + """Returns the time zone aware update timestamp.""" + if self._dialect_name == "sqlite": + # SQLite does not support timezone. SQLAlchemy returns a naive datetime + # object without timezone information. We need to convert it to UTC + # manually. + return self.update_time.replace(tzinfo=timezone.utc).timestamp() + return self.update_time.timestamp() + class StorageEvent(Base): """Represents an event stored in the database.""" @@ -412,7 +428,7 @@ async def create_session( user_id=str(storage_session.user_id), id=str(storage_session.id), state=merged_state, - last_update_time=storage_session.update_time.timestamp(), + last_update_time=storage_session.update_timestamp_tz, ) return session @@ -473,7 +489,7 @@ async def get_session( user_id=user_id, id=session_id, state=merged_state, - last_update_time=storage_session.update_time.timestamp(), + last_update_time=storage_session.update_timestamp_tz, ) session.events = [e.to_event() for e in reversed(storage_events)] return session @@ -496,7 +512,7 @@ async def list_sessions( user_id=user_id, id=storage_session.id, state={}, - last_update_time=storage_session.update_time.timestamp(), + last_update_time=storage_session.update_timestamp_tz, ) sessions.append(session) return ListSessionsResponse(sessions=sessions) @@ -529,13 +545,13 @@ async def append_event(self, session: Session, event: Event) -> Event: StorageSession, (session.app_name, session.user_id, session.id) ) - if storage_session.update_time.timestamp() > session.last_update_time: + if storage_session.update_timestamp_tz > session.last_update_time: raise ValueError( "The last_update_time provided in the session object" f" {datetime.fromtimestamp(session.last_update_time):'%Y-%m-%d %H:%M:%S'} is" " earlier than the update_time in the storage_session" - f" {storage_session.update_time:'%Y-%m-%d %H:%M:%S'}. Please check" - " if it is a stale session." + f" {datetime.fromtimestamp(storage_session.update_timestamp_tz):'%Y-%m-%d %H:%M:%S'}." + " Please check if it is a stale session." ) # Fetch states from storage @@ -577,7 +593,7 @@ async def append_event(self, session: Session, event: Event) -> Event: session_factory.refresh(storage_session) # Update timestamp with commit time - session.last_update_time = storage_session.update_time.timestamp() + session.last_update_time = storage_session.update_timestamp_tz # Also update the in-memory session await super().append_event(session=session, event=event) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 258dcd933..6628eb95f 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -14,7 +14,9 @@ from __future__ import annotations import asyncio +import json import logging +import os import re from typing import Any from typing import Dict @@ -22,6 +24,7 @@ import urllib.parse from dateutil import parser +from google.genai.errors import ClientError from typing_extensions import override from google import genai @@ -87,30 +90,53 @@ async def create_session( path=f'reasoningEngines/{reasoning_engine_id}/sessions', request_dict=session_json_dict, ) + api_response = _convert_api_response(api_response) logger.info(f'Create Session response {api_response}') session_id = api_response['name'].split('/')[-3] operation_id = api_response['name'].split('/')[-1] max_retry_attempt = 5 - lro_response = None - while max_retry_attempt >= 0: - lro_response = await api_client.async_request( - http_method='GET', - path=f'operations/{operation_id}', - request_dict={}, - ) - if lro_response.get('done', None): - break - - await asyncio.sleep(1) - max_retry_attempt -= 1 - - if lro_response is None or not lro_response.get('done', None): - raise TimeoutError( - f'Timeout waiting for operation {operation_id} to complete.' - ) + if _is_vertex_express_mode(self._project, self._location): + # Express mode doesn't support LRO, so we need to poll + # the session resource. + # TODO: remove this once LRO polling is supported in Express mode. + for i in range(max_retry_attempt): + try: + await api_client.async_request( + http_method='GET', + path=( + f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' + ), + request_dict={}, + ) + break + except ClientError as e: + logger.info('Polling for session %s: %s', session_id, e) + # Add slight exponential backoff to avoid excessive polling. + await asyncio.sleep(1 + 0.5 * i) + else: + raise TimeoutError('Session creation failed.') + else: + lro_response = None + for _ in range(max_retry_attempt): + lro_response = await api_client.async_request( + http_method='GET', + path=f'operations/{operation_id}', + request_dict={}, + ) + lro_response = _convert_api_response(lro_response) + + if lro_response.get('done', None): + break + + await asyncio.sleep(1) + + if lro_response is None or not lro_response.get('done', None): + raise TimeoutError( + f'Timeout waiting for operation {operation_id} to complete.' + ) # Get session resource get_session_api_response = await api_client.async_request( @@ -118,6 +144,7 @@ async def create_session( path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', request_dict={}, ) + get_session_api_response = _convert_api_response(get_session_api_response) update_timestamp = isoparse( get_session_api_response['updateTime'] @@ -149,6 +176,10 @@ async def get_session( path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', request_dict={}, ) + get_session_api_response = _convert_api_response(get_session_api_response) + + if get_session_api_response['userId'] != user_id: + raise ValueError(f'Session not found: {session_id}') session_id = get_session_api_response['name'].split('/')[-1] update_timestamp = isoparse( @@ -167,9 +198,12 @@ async def get_session( path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events', request_dict={}, ) + list_events_api_response = _convert_api_response(list_events_api_response) # Handles empty response case - if list_events_api_response.get('httpHeaders', None): + if not list_events_api_response or list_events_api_response.get( + 'httpHeaders', None + ): return session session.events += [ @@ -226,9 +260,10 @@ async def list_sessions( path=path, request_dict={}, ) + api_response = _convert_api_response(api_response) # Handles empty response case - if api_response.get('httpHeaders', None): + if not api_response or api_response.get('httpHeaders', None): return ListSessionsResponse() sessions = [] @@ -303,6 +338,25 @@ def _get_api_client(self): return client._api_client +def _is_vertex_express_mode( + project: Optional[str], location: Optional[str] +) -> bool: + """Check if Vertex AI and API key are both enabled replacing project and location, meaning the user is using the Vertex Express Mode.""" + return ( + os.environ.get('GOOGLE_GENAI_USE_VERTEXAI', '0').lower() in ['true', '1'] + and os.environ.get('GOOGLE_API_KEY', None) is not None + and project is None + and location is None + ) + + +def _convert_api_response(api_response): + """Converts the API response to a JSON object based on the type.""" + if hasattr(api_response, 'body'): + return json.loads(api_response.body) + return api_response + + def _convert_event_to_json(event: Event) -> Dict[str, Any]: metadata_json = { 'partial': event.partial, diff --git a/src/google/adk/telemetry.py b/src/google/adk/telemetry.py index badaec46d..a09c2f55b 100644 --- a/src/google/adk/telemetry.py +++ b/src/google/adk/telemetry.py @@ -195,6 +195,16 @@ def trace_call_llm( llm_response_json, ) + if llm_response.usage_metadata is not None: + span.set_attribute( + 'gen_ai.usage.input_tokens', + llm_response.usage_metadata.prompt_token_count, + ) + span.set_attribute( + 'gen_ai.usage.output_tokens', + llm_response.usage_metadata.total_token_count, + ) + def trace_send_data( invocation_context: InvocationContext, diff --git a/src/google/adk/tools/application_integration_tool/integration_connector_tool.py b/src/google/adk/tools/application_integration_tool/integration_connector_tool.py index 4e5be5959..5a50a7f0c 100644 --- a/src/google/adk/tools/application_integration_tool/integration_connector_tool.py +++ b/src/google/adk/tools/application_integration_tool/integration_connector_tool.py @@ -150,7 +150,7 @@ async def run_async( tool_auth_handler = ToolAuthHandler.from_tool_context( tool_context, self._auth_scheme, self._auth_credential ) - auth_result = tool_auth_handler.prepare_auth_credentials() + auth_result = await tool_auth_handler.prepare_auth_credentials() if auth_result.state == 'pending': return { @@ -178,7 +178,7 @@ async def run_async( args['operation'] = self._operation args['action'] = self._action logger.info('Running tool: %s with args: %s', self.name, args) - return self._rest_api_tool.call(args=args, tool_context=tool_context) + return await self._rest_api_tool.call(args=args, tool_context=tool_context) def __str__(self): return ( diff --git a/src/google/adk/tools/authenticated_function_tool.py b/src/google/adk/tools/authenticated_function_tool.py new file mode 100644 index 000000000..67cc5885f --- /dev/null +++ b/src/google/adk/tools/authenticated_function_tool.py @@ -0,0 +1,107 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import inspect +import logging +from typing import Any +from typing import Callable +from typing import Dict +from typing import Optional +from typing import Union + +from typing_extensions import override + +from ..auth.auth_credential import AuthCredential +from ..auth.auth_tool import AuthConfig +from ..auth.credential_manager import CredentialManager +from ..utils.feature_decorator import experimental +from .function_tool import FunctionTool +from .tool_context import ToolContext + +logger = logging.getLogger("google_adk." + __name__) + + +@experimental +class AuthenticatedFunctionTool(FunctionTool): + """A FunctionTool that handles authentication before the actual tool logic + gets called. Functions can accept a special `credential` argument which is the + credential ready for use.(Experimental) + """ + + def __init__( + self, + *, + func: Callable[..., Any], + auth_config: AuthConfig = None, + response_for_auth_required: Optional[Union[dict[str, Any], str]] = None, + ): + """Initializes the AuthenticatedFunctionTool. + + Args: + func: The function to be called. + auth_config: The authentication configuration. + response_for_auth_required: The response to return when the tool is + requesting auth credential from the client. There could be two case, + the tool doesn't configure any credentials + (auth_config.raw_auth_credential is missing) or the credentials + configured is not enough to authenticate the tool (e.g. an OAuth + client id and client secrect is configured.) and needs client input + (e.g. client need to involve the end user in an oauth flow and get + back the oauth response.) + """ + super().__init__(func=func) + self._ignore_params.append("credential") + + if auth_config and auth_config.auth_scheme: + self._credentials_manager = CredentialManager(auth_config=auth_config) + else: + logger.warning( + "auth_config or auth_config.auth_scheme is missing. Will skip" + " authentication.Using FunctionTool instead if authentication is not" + " required." + ) + self._credentials_manager = None + self._response_for_auth_required = response_for_auth_required + + @override + async def run_async( + self, *, args: dict[str, Any], tool_context: ToolContext + ) -> Any: + credential = None + if self._credentials_manager: + credential = await self._credentials_manager.get_auth_credential( + tool_context + ) + if not credential: + await self._credentials_manager.request_credential(tool_context) + return self._response_for_auth_required or "Pending User Authorization." + + return await self._run_async_impl( + args=args, tool_context=tool_context, credential=credential + ) + + async def _run_async_impl( + self, + *, + args: dict[str, Any], + tool_context: ToolContext, + credential: AuthCredential, + ) -> Any: + args_to_call = args.copy() + signature = inspect.signature(self.func) + if "credential" in signature.parameters: + args_to_call["credential"] = credential + return await super().run_async(args=args_to_call, tool_context=tool_context) diff --git a/src/google/adk/tools/base_authenticated_tool.py b/src/google/adk/tools/base_authenticated_tool.py new file mode 100644 index 000000000..4858e4953 --- /dev/null +++ b/src/google/adk/tools/base_authenticated_tool.py @@ -0,0 +1,107 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from abc import abstractmethod +import logging +from typing import Any +from typing import Optional +from typing import Union + +from typing_extensions import override + +from ..auth.auth_credential import AuthCredential +from ..auth.auth_tool import AuthConfig +from ..auth.credential_manager import CredentialManager +from ..utils.feature_decorator import experimental +from .base_tool import BaseTool +from .tool_context import ToolContext + +logger = logging.getLogger("google_adk." + __name__) + + +@experimental +class BaseAuthenticatedTool(BaseTool): + """A base tool class that handles authentication before the actual tool logic + gets called. Functions can accept a special `credential` argument which is the + credential ready for use.(Experimental) + """ + + def __init__( + self, + *, + name, + description, + auth_config: AuthConfig = None, + response_for_auth_required: Optional[Union[dict[str, Any], str]] = None, + ): + """ + Args: + name: The name of the tool. + description: The description of the tool. + auth_config: The auth configuration of the tool. + response_for_auth_required: The response to return when the tool is + requesting auth credential from the client. There could be two case, + the tool doesn't configure any credentials + (auth_config.raw_auth_credential is missing) or the credentials + configured is not enough to authenticate the tool (e.g. an OAuth + client id and client secrect is configured.) and needs client input + (e.g. client need to involve the end user in an oauth flow and get + back the oauth response.) + """ + super().__init__( + name=name, + description=description, + ) + + if auth_config and auth_config.auth_scheme: + self._credentials_manager = CredentialManager(auth_config=auth_config) + else: + logger.warning( + "auth_config or auth_config.auth_scheme is missing. Will skip" + " authentication.Using FunctionTool instead if authentication is not" + " required." + ) + self._credentials_manager = None + self._response_for_auth_required = response_for_auth_required + + @override + async def run_async( + self, *, args: dict[str, Any], tool_context: ToolContext + ) -> Any: + credential = None + if self._credentials_manager: + credential = await self._credentials_manager.get_auth_credential( + tool_context + ) + if not credential: + await self._credentials_manager.request_credential(tool_context) + return self._response_for_auth_required or "Pending User Authorization." + + return await self._run_async_impl( + args=args, + tool_context=tool_context, + credential=credential, + ) + + @abstractmethod + async def _run_async_impl( + self, + *, + args: dict[str, Any], + tool_context: ToolContext, + credential: AuthCredential, + ) -> Any: + pass diff --git a/src/google/adk/tools/bigquery/bigquery_credentials.py b/src/google/adk/tools/bigquery/bigquery_credentials.py index 0a99136c4..d0f3abe0e 100644 --- a/src/google/adk/tools/bigquery/bigquery_credentials.py +++ b/src/google/adk/tools/bigquery/bigquery_credentials.py @@ -21,9 +21,10 @@ from fastapi.openapi.models import OAuth2 from fastapi.openapi.models import OAuthFlowAuthorizationCode from fastapi.openapi.models import OAuthFlows +import google.auth.credentials from google.auth.exceptions import RefreshError from google.auth.transport.requests import Request -from google.oauth2.credentials import Credentials +import google.oauth2.credentials from pydantic import BaseModel from pydantic import model_validator @@ -40,26 +41,35 @@ @experimental class BigQueryCredentialsConfig(BaseModel): - """Configuration for Google API tools. (Experimental)""" + """Configuration for Google API tools (Experimental). + + Please do not use this in production, as it may be deprecated later. + """ # Configure the model to allow arbitrary types like Credentials model_config = {"arbitrary_types_allowed": True} - credentials: Optional[Credentials] = None - """the existing oauth credentials to use. If set,this credential will be used + credentials: Optional[google.auth.credentials.Credentials] = None + """The existing auth credentials to use. If set, this credential will be used for every end user, end users don't need to be involved in the oauthflow. This field is mutually exclusive with client_id, client_secret and scopes. Don't set this field unless you are sure this credential has the permission to access every end user's data. - Example usage: when the agent is deployed in Google Cloud environment and + Example usage 1: When the agent is deployed in Google Cloud environment and the service account (used as application default credentials) has access to all the required BigQuery resource. Setting this credential to allow user to access the BigQuery resource without end users going through oauth flow. - To get application default credential: `google.auth.default(...)`. See more + To get application default credential, use: `google.auth.default(...)`. See more details in https://cloud.google.com/docs/authentication/application-default-credentials. + Example usage 2: When the agent wants to access the user's BigQuery resources + using the service account key credentials. + + To load service account key credentials, use: `google.auth.load_credentials_from_file(...)`. + See more details in https://cloud.google.com/iam/docs/service-account-creds#user-managed-keys. + When the deployed environment cannot provide a pre-existing credential, consider setting below client_id, client_secret and scope for end users to go through oauth flow, so that agent can access the user data. @@ -86,7 +96,9 @@ def __post_init__(self) -> BigQueryCredentialsConfig: " client_id/client_secret/scopes." ) - if self.credentials: + if self.credentials and isinstance( + self.credentials, google.oauth2.credentials.Credentials + ): self.client_id = self.credentials.client_id self.client_secret = self.credentials.client_secret self.scopes = self.credentials.scopes @@ -115,7 +127,7 @@ def __init__(self, credentials_config: BigQueryCredentialsConfig): async def get_valid_credentials( self, tool_context: ToolContext - ) -> Optional[Credentials]: + ) -> Optional[google.auth.credentials.Credentials]: """Get valid credentials, handling refresh and OAuth flow as needed. Args: @@ -127,7 +139,7 @@ async def get_valid_credentials( # First, try to get credentials from the tool context creds_json = tool_context.state.get(BIGQUERY_TOKEN_CACHE_KEY, None) creds = ( - Credentials.from_authorized_user_info( + google.oauth2.credentials.Credentials.from_authorized_user_info( json.loads(creds_json), self.credentials_config.scopes ) if creds_json @@ -138,6 +150,11 @@ async def get_valid_credentials( if not creds: creds = self.credentials_config.credentials + # If non-oauth credentials are provided then use them as is. This helps + # in flows such as service account keys + if creds and not isinstance(creds, google.oauth2.credentials.Credentials): + return creds + # Check if we have valid credentials if creds and creds.valid: return creds @@ -159,7 +176,7 @@ async def get_valid_credentials( async def _perform_oauth_flow( self, tool_context: ToolContext - ) -> Optional[Credentials]: + ) -> Optional[google.oauth2.credentials.Credentials]: """Perform OAuth flow to get new credentials. Args: @@ -199,7 +216,7 @@ async def _perform_oauth_flow( if auth_response: # OAuth flow completed, create credentials - creds = Credentials( + creds = google.oauth2.credentials.Credentials( token=auth_response.oauth2.access_token, refresh_token=auth_response.oauth2.refresh_token, token_uri=auth_scheme.flows.authorizationCode.tokenUrl, diff --git a/src/google/adk/tools/bigquery/bigquery_tool.py b/src/google/adk/tools/bigquery/bigquery_tool.py index 182734188..50d49ff77 100644 --- a/src/google/adk/tools/bigquery/bigquery_tool.py +++ b/src/google/adk/tools/bigquery/bigquery_tool.py @@ -19,7 +19,7 @@ from typing import Callable from typing import Optional -from google.oauth2.credentials import Credentials +from google.auth.credentials import Credentials from typing_extensions import override from ...utils.feature_decorator import experimental diff --git a/src/google/adk/tools/bigquery/client.py b/src/google/adk/tools/bigquery/client.py index 23f1befc5..8b2816ebe 100644 --- a/src/google/adk/tools/bigquery/client.py +++ b/src/google/adk/tools/bigquery/client.py @@ -15,8 +15,8 @@ from __future__ import annotations import google.api_core.client_info +from google.auth.credentials import Credentials from google.cloud import bigquery -from google.oauth2.credentials import Credentials from ... import version diff --git a/src/google/adk/tools/bigquery/config.py b/src/google/adk/tools/bigquery/config.py index 606f86e33..a6f8eeb5e 100644 --- a/src/google/adk/tools/bigquery/config.py +++ b/src/google/adk/tools/bigquery/config.py @@ -26,10 +26,20 @@ class WriteMode(Enum): BLOCKED = 'blocked' """No write operations are allowed. - + This mode implies that only read (i.e. SELECT query) operations are allowed. """ + PROTECTED = 'protected' + """Only protected write operations are allowed in a BigQuery session. + + In this mode write operations in the anonymous dataset of a BigQuery session + are allowed. For example, a temporaray table can be created, manipulated and + deleted in the anonymous dataset during Agent interaction, while protecting + permanent tables from being modified or deleted. To learn more about BigQuery + sessions, see https://cloud.google.com/bigquery/docs/sessions-intro. + """ + ALLOWED = 'allowed' """All write operations are allowed.""" diff --git a/src/google/adk/tools/bigquery/metadata_tool.py b/src/google/adk/tools/bigquery/metadata_tool.py index 4f5400611..64f23d07b 100644 --- a/src/google/adk/tools/bigquery/metadata_tool.py +++ b/src/google/adk/tools/bigquery/metadata_tool.py @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from google.auth.credentials import Credentials from google.cloud import bigquery -from google.oauth2.credentials import Credentials from . import client diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index d3a94fda7..7406d9a4d 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -16,14 +16,16 @@ import types from typing import Callable +from google.auth.credentials import Credentials from google.cloud import bigquery -from google.oauth2.credentials import Credentials from . import client +from ..tool_context import ToolContext from .config import BigQueryToolConfig from .config import WriteMode MAX_DOWNLOADED_QUERY_RESULT_ROWS = 50 +BIGQUERY_SESSION_INFO_KEY = "bigquery_session_info" def execute_sql( @@ -31,14 +33,17 @@ def execute_sql( query: str, credentials: Credentials, config: BigQueryToolConfig, + tool_context: ToolContext, ) -> dict: - """Run a BigQuery SQL query in the project and return the result. + """Run a BigQuery or BigQuery ML SQL query in the project and return the result. Args: project_id (str): The GCP project id in which the query should be executed. query (str): The BigQuery SQL query to be executed. credentials (Credentials): The credentials to use for the request. + config (BigQueryToolConfig): The configuration for the tool. + tool_context (ToolContext): The context for the tool. Returns: dict: Dictionary representing the result of the query. @@ -49,11 +54,11 @@ def execute_sql( Examples: Fetch data or insights from a table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "SELECT island, COUNT(*) AS population " ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") { - "status": "ERROR", + "status": "SUCCESS", "rows": [ { "island": "Dream", @@ -72,23 +77,87 @@ def execute_sql( """ try: + # Get BigQuery client bq_client = client.get_bigquery_client( project=project_id, credentials=credentials ) + + # BigQuery connection properties where applicable + bq_connection_properties = None + if not config or config.write_mode == WriteMode.BLOCKED: - query_job = bq_client.query( + dry_run_query_job = bq_client.query( query, project=project_id, job_config=bigquery.QueryJobConfig(dry_run=True), ) - if query_job.statement_type != "SELECT": + if dry_run_query_job.statement_type != "SELECT": return { "status": "ERROR", "error_details": "Read-only mode only supports SELECT statements.", } + elif config.write_mode == WriteMode.PROTECTED: + # In protected write mode, write operation only to a temporary artifact is + # allowed. This artifact must have been created in a BigQuery session. In + # such a scenario the session info (session id and the anonymous dataset + # containing the artifact) is persisted in the tool context. + bq_session_info = tool_context.state.get(BIGQUERY_SESSION_INFO_KEY, None) + if bq_session_info: + bq_session_id, bq_session_dataset_id = bq_session_info + else: + session_creator_job = bq_client.query( + "SELECT 1", + project=project_id, + job_config=bigquery.QueryJobConfig( + dry_run=True, create_session=True + ), + ) + bq_session_id = session_creator_job.session_info.session_id + bq_session_dataset_id = session_creator_job.destination.dataset_id + + # Remember the BigQuery session info for subsequent queries + tool_context.state[BIGQUERY_SESSION_INFO_KEY] = ( + bq_session_id, + bq_session_dataset_id, + ) + + # Session connection property will be set in the query execution + bq_connection_properties = [ + bigquery.ConnectionProperty("session_id", bq_session_id) + ] + + # Check the query type w.r.t. the BigQuery session + dry_run_query_job = bq_client.query( + query, + project=project_id, + job_config=bigquery.QueryJobConfig( + dry_run=True, + connection_properties=bq_connection_properties, + ), + ) + if ( + dry_run_query_job.statement_type != "SELECT" + and dry_run_query_job.destination.dataset_id != bq_session_dataset_id + ): + return { + "status": "ERROR", + "error_details": ( + "Protected write mode only supports SELECT statements, or write" + " operations in the anonymous dataset of a BigQuery session." + ), + } + # Finally execute the query and fetch the result + job_config = ( + bigquery.QueryJobConfig(connection_properties=bq_connection_properties) + if bq_connection_properties + else None + ) row_iterator = bq_client.query_and_wait( - query, project=project_id, max_results=MAX_DOWNLOADED_QUERY_RESULT_ROWS + query, + job_config=job_config, + project=project_id, + max_results=MAX_DOWNLOADED_QUERY_RESULT_ROWS, ) rows = [{key: val for key, val in row.items()} for row in row_iterator] result = {"status": "SUCCESS", "rows": rows} @@ -106,9 +175,29 @@ def execute_sql( _execute_sql_write_examples = """ + Create a table with schema prescribed: + + >>> execute_sql("my_project", + ... "CREATE TABLE my_project.my_dataset.my_table " + ... "(island STRING, population INT64)") + { + "status": "SUCCESS", + "rows": [] + } + + Insert data into an existing table: + + >>> execute_sql("my_project", + ... "INSERT INTO my_project.my_dataset.my_table (island, population) " + ... "VALUES ('Dream', 124), ('Biscoe', 168)") + { + "status": "SUCCESS", + "rows": [] + } + Create a table from the result of a query: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "CREATE TABLE my_project.my_dataset.my_table AS " ... "SELECT island, COUNT(*) AS population " ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") @@ -119,7 +208,7 @@ def execute_sql( Delete a table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "DROP TABLE my_project.my_dataset.my_table") { "status": "SUCCESS", @@ -128,7 +217,7 @@ def execute_sql( Copy a table to another table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "CREATE TABLE my_project.my_dataset.my_table_clone " ... "CLONE my_project.my_dataset.my_table") { @@ -139,7 +228,7 @@ def execute_sql( Create a snapshot (a lightweight, read-optimized copy) of en existing table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "CREATE SNAPSHOT TABLE my_project.my_dataset.my_table_snapshot " ... "CLONE my_project.my_dataset.my_table") { @@ -147,12 +236,214 @@ def execute_sql( "rows": [] } + Create a BigQuery ML linear regression model: + + >>> execute_sql("my_project", + ... "CREATE MODEL `my_dataset.my_model` " + ... "OPTIONS (model_type='linear_reg', input_label_cols=['body_mass_g']) AS " + ... "SELECT * FROM `bigquery-public-data.ml_datasets.penguins` " + ... "WHERE body_mass_g IS NOT NULL") + { + "status": "SUCCESS", + "rows": [] + } + + Evaluate BigQuery ML model: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`)") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Evaluate BigQuery ML model on custom data: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Predict using BigQuery ML model: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.PREDICT(MODEL `my_dataset.my_model`, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [ + { + "predicted_body_mass_g": "3380.9271650847013", + ... + }, { + "predicted_body_mass_g": "3873.6072435386004", + ... + }, + ... + ] + } + + Delete a BigQuery ML model: + + >>> execute_sql("my_project", "DROP MODEL `my_dataset.my_model`") + { + "status": "SUCCESS", + "rows": [] + } + Notes: - If a destination table already exists, there are a few ways to overwrite it: - Use "CREATE OR REPLACE TABLE" instead of "CREATE TABLE". - First run "DROP TABLE", followed by "CREATE TABLE". - - To insert data into a table, use "INSERT INTO" statement. + - If a model already exists, there are a few ways to overwrite it: + - Use "CREATE OR REPLACE MODEL" instead of "CREATE MODEL". + - First run "DROP MODEL", followed by "CREATE MODEL". + """ + + +_execute_sql_protecetd_write_examples = """ + Create a temporary table with schema prescribed: + + >>> execute_sql("my_project", + ... "CREATE TEMP TABLE my_table (island STRING, population INT64)") + { + "status": "SUCCESS", + "rows": [] + } + + Insert data into an existing temporary table: + + >>> execute_sql("my_project", + ... "INSERT INTO my_table (island, population) " + ... "VALUES ('Dream', 124), ('Biscoe', 168)") + { + "status": "SUCCESS", + "rows": [] + } + + Create a temporary table from the result of a query: + + >>> execute_sql("my_project", + ... "CREATE TEMP TABLE my_table AS " + ... "SELECT island, COUNT(*) AS population " + ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") + { + "status": "SUCCESS", + "rows": [] + } + + Delete a temporary table: + + >>> execute_sql("my_project", "DROP TABLE my_table") + { + "status": "SUCCESS", + "rows": [] + } + + Copy a temporary table to another temporary table: + + >>> execute_sql("my_project", + ... "CREATE TEMP TABLE my_table_clone CLONE my_table") + { + "status": "SUCCESS", + "rows": [] + } + + Create a temporary BigQuery ML linear regression model: + + >>> execute_sql("my_project", + ... "CREATE TEMP MODEL my_model " + ... "OPTIONS (model_type='linear_reg', input_label_cols=['body_mass_g']) AS" + ... "SELECT * FROM `bigquery-public-data.ml_datasets.penguins` " + ... "WHERE body_mass_g IS NOT NULL") + { + "status": "SUCCESS", + "rows": [] + } + + Evaluate BigQuery ML model: + + >>> execute_sql("my_project", "SELECT * FROM ML.EVALUATE(MODEL my_model)") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Evaluate BigQuery ML model on custom data: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.EVALUATE(MODEL my_model, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Predict using BigQuery ML model: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.PREDICT(MODEL my_model, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [ + { + "predicted_body_mass_g": "3380.9271650847013", + ... + }, { + "predicted_body_mass_g": "3873.6072435386004", + ... + }, + ... + ] + } + + Delete a BigQuery ML model: + + >>> execute_sql("my_project", "DROP MODEL my_model") + { + "status": "SUCCESS", + "rows": [] + } + + Notes: + - If a destination table already exists, there are a few ways to overwrite + it: + - Use "CREATE OR REPLACE TEMP TABLE" instead of "CREATE TEMP TABLE". + - First run "DROP TABLE", followed by "CREATE TEMP TABLE". + - Only temporary tables can be created, inserted into or deleted. Please + do not try creating a permanent table (non-TEMP table), inserting into or + deleting one. + - If a destination model already exists, there are a few ways to overwrite + it: + - Use "CREATE OR REPLACE TEMP MODEL" instead of "CREATE TEMP MODEL". + - First run "DROP MODEL", followed by "CREATE TEMP MODEL". + - Only temporary models can be created or deleted. Please do not try + creating a permanent model (non-TEMP model) or deleting one. """ @@ -189,6 +480,9 @@ def get_execute_sql(config: BigQueryToolConfig) -> Callable[..., dict]: functools.update_wrapper(execute_sql_wrapper, execute_sql) # Now, set the new docstring - execute_sql_wrapper.__doc__ += _execute_sql_write_examples + if config.write_mode == WriteMode.PROTECTED: + execute_sql_wrapper.__doc__ += _execute_sql_protecetd_write_examples + else: + execute_sql_wrapper.__doc__ += _execute_sql_write_examples return execute_sql_wrapper diff --git a/src/google/adk/tools/google_search_tool.py b/src/google/adk/tools/google_search_tool.py index d116e4b6c..9fe387df3 100644 --- a/src/google/adk/tools/google_search_tool.py +++ b/src/google/adk/tools/google_search_tool.py @@ -54,7 +54,7 @@ async def process_llm_request( llm_request.config.tools.append( types.Tool(google_search_retrieval=types.GoogleSearchRetrieval()) ) - elif llm_request.model and 'gemini-2' in llm_request.model: + elif llm_request.model and 'gemini-' in llm_request.model: llm_request.config.tools.append( types.Tool(google_search=types.GoogleSearch()) ) diff --git a/src/google/adk/tools/mcp_tool/mcp_session_manager.py b/src/google/adk/tools/mcp_tool/mcp_session_manager.py index 5bc06e398..90b39e6cb 100644 --- a/src/google/adk/tools/mcp_tool/mcp_session_manager.py +++ b/src/google/adk/tools/mcp_tool/mcp_session_manager.py @@ -18,9 +18,12 @@ from contextlib import AsyncExitStack from datetime import timedelta import functools +import hashlib +import json import logging import sys from typing import Any +from typing import Dict from typing import Optional from typing import TextIO from typing import Union @@ -105,74 +108,39 @@ class StreamableHTTPConnectionParams(BaseModel): terminate_on_close: bool = True -def retry_on_closed_resource(session_manager_field_name: str): - """Decorator to automatically reinitialize session and retry action. +def retry_on_closed_resource(func): + """Decorator to automatically retry action when MCP session is closed. - When MCP session was closed, the decorator will automatically recreate the - session and retry the action with the same parameters. - - Note: - 1. session_manager_field_name is the name of the class member field that - contains the MCPSessionManager instance. - 2. The session manager must have a reinitialize_session() async method. - - Usage: - class MCPTool: - def __init__(self): - self._mcp_session_manager = MCPSessionManager(...) - - @retry_on_closed_resource('_mcp_session_manager') - async def use_session(self): - session = await self._mcp_session_manager.create_session() - await session.call_tool() + When MCP session was closed, the decorator will automatically retry the + action once. The create_session method will handle creating a new session + if the old one was disconnected. Args: - session_manager_field_name: The name of the session manager field. + func: The function to decorate. Returns: The decorated function. """ - def decorator(func): - @functools.wraps(func) # Preserves original function metadata - async def wrapper(self, *args, **kwargs): - try: - return await func(self, *args, **kwargs) - except anyio.ClosedResourceError as close_err: - try: - if hasattr(self, session_manager_field_name): - session_manager = getattr(self, session_manager_field_name) - if hasattr(session_manager, 'reinitialize_session') and callable( - getattr(session_manager, 'reinitialize_session') - ): - await session_manager.reinitialize_session() - else: - raise ValueError( - f'Session manager {session_manager_field_name} does not have' - ' reinitialize_session method.' - ) from close_err - else: - raise ValueError( - f'Session manager field {session_manager_field_name} does not' - ' exist in decorated class. Please check the field name in' - ' retry_on_closed_resource decorator.' - ) from close_err - except Exception as reinit_err: - raise RuntimeError( - f'Error reinitializing: {reinit_err}' - ) from reinit_err - return await func(self, *args, **kwargs) - - return wrapper - - return decorator + @functools.wraps(func) # Preserves original function metadata + async def wrapper(self, *args, **kwargs): + try: + return await func(self, *args, **kwargs) + except anyio.ClosedResourceError: + # Simply retry the function - create_session will handle + # detecting and replacing disconnected sessions + logger.info('Retrying %s due to closed resource', func.__name__) + return await func(self, *args, **kwargs) + + return wrapper class MCPSessionManager: """Manages MCP client sessions. This class provides methods for creating and initializing MCP client sessions, - handling different connection parameters (Stdio and SSE). + handling different connection parameters (Stdio and SSE) and supporting + session pooling based on authentication headers. """ def __init__( @@ -209,30 +177,125 @@ def __init__( else: self._connection_params = connection_params self._errlog = errlog - # Each session manager maintains its own exit stack for proper cleanup - self._exit_stack: Optional[AsyncExitStack] = None - self._session: Optional[ClientSession] = None + + # Session pool: maps session keys to (session, exit_stack) tuples + self._sessions: Dict[str, tuple[ClientSession, AsyncExitStack]] = {} + # Lock to prevent race conditions in session creation self._session_lock = asyncio.Lock() - async def create_session(self) -> ClientSession: + def _generate_session_key( + self, merged_headers: Optional[Dict[str, str]] = None + ) -> str: + """Generates a session key based on connection params and merged headers. + + For StdioConnectionParams, returns a constant key since headers are not + supported. For SSE and StreamableHTTP connections, generates a key based + on the provided merged headers. + + Args: + merged_headers: Already merged headers (base + additional). + + Returns: + A unique session key string. + """ + if isinstance(self._connection_params, StdioConnectionParams): + # For stdio connections, headers are not supported, so use constant key + return 'stdio_session' + + # For SSE and StreamableHTTP connections, use merged headers + if merged_headers: + headers_json = json.dumps(merged_headers, sort_keys=True) + headers_hash = hashlib.md5(headers_json.encode()).hexdigest() + return f'session_{headers_hash}' + else: + return 'session_no_headers' + + def _merge_headers( + self, additional_headers: Optional[Dict[str, str]] = None + ) -> Optional[Dict[str, str]]: + """Merges base connection headers with additional headers. + + Args: + additional_headers: Optional headers to merge with connection headers. + + Returns: + Merged headers dictionary, or None if no headers are provided. + """ + if isinstance(self._connection_params, StdioConnectionParams) or isinstance( + self._connection_params, StdioServerParameters + ): + # Stdio connections don't support headers + return None + + base_headers = {} + if ( + hasattr(self._connection_params, 'headers') + and self._connection_params.headers + ): + base_headers = self._connection_params.headers.copy() + + if additional_headers: + base_headers.update(additional_headers) + + return base_headers + + def _is_session_disconnected(self, session: ClientSession) -> bool: + """Checks if a session is disconnected or closed. + + Args: + session: The ClientSession to check. + + Returns: + True if the session is disconnected, False otherwise. + """ + return session._read_stream._closed or session._write_stream._closed + + async def create_session( + self, headers: Optional[Dict[str, str]] = None + ) -> ClientSession: """Creates and initializes an MCP client session. + This method will check if an existing session for the given headers + is still connected. If it's disconnected, it will be cleaned up and + a new session will be created. + + Args: + headers: Optional headers to include in the session. These will be + merged with any existing connection headers. Only applicable + for SSE and StreamableHTTP connections. + Returns: ClientSession: The initialized MCP client session. """ - # Fast path: if session already exists, return it without acquiring lock - if self._session is not None: - return self._session + # Merge headers once at the beginning + merged_headers = self._merge_headers(headers) + + # Generate session key using merged headers + session_key = self._generate_session_key(merged_headers) # Use async lock to prevent race conditions async with self._session_lock: - # Double-check: session might have been created while waiting for lock - if self._session is not None: - return self._session - - # Create a new exit stack for this session - self._exit_stack = AsyncExitStack() + # Check if we have an existing session + if session_key in self._sessions: + session, exit_stack = self._sessions[session_key] + + # Check if the existing session is still connected + if not self._is_session_disconnected(session): + # Session is still good, return it + return session + else: + # Session is disconnected, clean it up + logger.info('Cleaning up disconnected session: %s', session_key) + try: + await exit_stack.aclose() + except Exception as e: + logger.warning('Error during disconnected session cleanup: %s', e) + finally: + del self._sessions[session_key] + + # Create a new session (either first time or replacing disconnected one) + exit_stack = AsyncExitStack() try: if isinstance(self._connection_params, StdioConnectionParams): @@ -243,7 +306,7 @@ async def create_session(self) -> ClientSession: elif isinstance(self._connection_params, SseConnectionParams): client = sse_client( url=self._connection_params.url, - headers=self._connection_params.headers, + headers=merged_headers, timeout=self._connection_params.timeout, sse_read_timeout=self._connection_params.sse_read_timeout, ) @@ -252,7 +315,7 @@ async def create_session(self) -> ClientSession: ): client = streamablehttp_client( url=self._connection_params.url, - headers=self._connection_params.headers, + headers=merged_headers, timeout=timedelta(seconds=self._connection_params.timeout), sse_read_timeout=timedelta( seconds=self._connection_params.sse_read_timeout @@ -266,11 +329,11 @@ async def create_session(self) -> ClientSession: f' {self._connection_params}' ) - transports = await self._exit_stack.enter_async_context(client) + transports = await exit_stack.enter_async_context(client) # The streamable http client returns a GetSessionCallback in addition to the read/write MemoryObjectStreams # needed to build the ClientSession, we limit then to the two first values to be compatible with all clients. if isinstance(self._connection_params, StdioConnectionParams): - session = await self._exit_stack.enter_async_context( + session = await exit_stack.enter_async_context( ClientSession( *transports[:2], read_timeout_seconds=timedelta( @@ -279,44 +342,38 @@ async def create_session(self) -> ClientSession: ) ) else: - session = await self._exit_stack.enter_async_context( + session = await exit_stack.enter_async_context( ClientSession(*transports[:2]) ) await session.initialize() - self._session = session + # Store session and exit stack in the pool + self._sessions[session_key] = (session, exit_stack) + logger.debug('Created new session: %s', session_key) return session except Exception: # If session creation fails, clean up the exit stack - if self._exit_stack: - await self._exit_stack.aclose() - self._exit_stack = None + if exit_stack: + await exit_stack.aclose() raise async def close(self): - """Closes the session and cleans up resources.""" - if not self._exit_stack: - return + """Closes all sessions and cleans up resources.""" async with self._session_lock: - if self._exit_stack: + for session_key in list(self._sessions.keys()): + _, exit_stack = self._sessions[session_key] try: - await self._exit_stack.aclose() + await exit_stack.aclose() except Exception as e: # Log the error but don't re-raise to avoid blocking shutdown print( - f'Warning: Error during MCP session cleanup: {e}', + 'Warning: Error during MCP session cleanup for' + f' {session_key}: {e}', file=self._errlog, ) finally: - self._exit_stack = None - self._session = None - - async def reinitialize_session(self): - """Reinitializes the session when connection is lost.""" - # Close the old session and create a new one - await self.close() - await self.create_session() + del self._sessions[session_key] SseServerParams = SseConnectionParams diff --git a/src/google/adk/tools/mcp_tool/mcp_tool.py b/src/google/adk/tools/mcp_tool/mcp_tool.py index 6553bb2c0..af4616cae 100644 --- a/src/google/adk/tools/mcp_tool/mcp_tool.py +++ b/src/google/adk/tools/mcp_tool/mcp_tool.py @@ -14,9 +14,11 @@ from __future__ import annotations +import base64 import logging from typing import Optional +from fastapi.openapi.models import APIKeyIn from google.genai.types import FunctionDeclaration from typing_extensions import override @@ -42,17 +44,22 @@ from ...auth.auth_credential import AuthCredential from ...auth.auth_schemes import AuthScheme -from ..base_tool import BaseTool +from ...auth.auth_tool import AuthConfig +from ..base_authenticated_tool import BaseAuthenticatedTool +# import from ..tool_context import ToolContext logger = logging.getLogger("google_adk." + __name__) -class MCPTool(BaseTool): +class MCPTool(BaseAuthenticatedTool): """Turns an MCP Tool into an ADK Tool. Internally, the tool initializes from a MCP Tool, and uses the MCP Session to call the tool. + + Note: For API key authentication, only header-based API keys are supported. + Query and cookie-based API keys will result in authentication errors. """ def __init__( @@ -77,19 +84,17 @@ def __init__( Raises: ValueError: If mcp_tool or mcp_session_manager is None. """ - if mcp_tool is None: - raise ValueError("mcp_tool cannot be None") - if mcp_session_manager is None: - raise ValueError("mcp_session_manager cannot be None") super().__init__( name=mcp_tool.name, description=mcp_tool.description if mcp_tool.description else "", + auth_config=AuthConfig( + auth_scheme=auth_scheme, raw_auth_credential=auth_credential + ) + if auth_scheme + else None, ) self._mcp_tool = mcp_tool self._mcp_session_manager = mcp_session_manager - # TODO(cheliu): Support passing auth to MCP Server. - self._auth_scheme = auth_scheme - self._auth_credential = auth_credential @override def _get_declaration(self) -> FunctionDeclaration: @@ -105,8 +110,11 @@ def _get_declaration(self) -> FunctionDeclaration: ) return function_decl - @retry_on_closed_resource("_mcp_session_manager") - async def run_async(self, *, args, tool_context: ToolContext): + @retry_on_closed_resource + @override + async def _run_async_impl( + self, *, args, tool_context: ToolContext, credential: AuthCredential + ): """Runs the tool asynchronously. Args: @@ -116,8 +124,95 @@ async def run_async(self, *, args, tool_context: ToolContext): Returns: Any: The response from the tool. """ + # Extract headers from credential for session pooling + headers = await self._get_headers(tool_context, credential) + # Get the session from the session manager - session = await self._mcp_session_manager.create_session() + session = await self._mcp_session_manager.create_session(headers=headers) response = await session.call_tool(self.name, arguments=args) return response + + async def _get_headers( + self, tool_context: ToolContext, credential: AuthCredential + ) -> Optional[dict[str, str]]: + """Extracts authentication headers from credentials. + + Args: + tool_context: The tool context of the current invocation. + credential: The authentication credential to process. + + Returns: + Dictionary of headers to add to the request, or None if no auth. + + Raises: + ValueError: If API key authentication is configured for non-header location. + """ + headers: Optional[dict[str, str]] = None + if credential: + if credential.oauth2: + headers = {"Authorization": f"Bearer {credential.oauth2.access_token}"} + elif credential.http: + # Handle HTTP authentication schemes + if ( + credential.http.scheme.lower() == "bearer" + and credential.http.credentials.token + ): + headers = { + "Authorization": f"Bearer {credential.http.credentials.token}" + } + elif credential.http.scheme.lower() == "basic": + # Handle basic auth + if ( + credential.http.credentials.username + and credential.http.credentials.password + ): + + credentials = f"{credential.http.credentials.username}:{credential.http.credentials.password}" + encoded_credentials = base64.b64encode( + credentials.encode() + ).decode() + headers = {"Authorization": f"Basic {encoded_credentials}"} + elif credential.http.credentials.token: + # Handle other HTTP schemes with token + headers = { + "Authorization": ( + f"{credential.http.scheme} {credential.http.credentials.token}" + ) + } + elif credential.api_key: + if ( + not self._credentials_manager + or not self._credentials_manager._auth_config + ): + error_msg = ( + "Cannot find corresponding auth scheme for API key credential" + f" {credential}" + ) + logger.error(error_msg) + raise ValueError(error_msg) + elif ( + self._credentials_manager._auth_config.auth_scheme.in_ + != APIKeyIn.header + ): + error_msg = ( + "MCPTool only supports header-based API key authentication." + " Configured location:" + f" {self._credentials_manager._auth_config.auth_scheme.in_}" + ) + logger.error(error_msg) + raise ValueError(error_msg) + else: + headers = { + self._credentials_manager._auth_config.auth_scheme.name: ( + credential.api_key + ) + } + elif credential.service_account: + # Service accounts should be exchanged for access tokens before reaching this point + logger.warning( + "Service account credentials should be exchanged before MCP" + " session creation" + ) + + return headers diff --git a/src/google/adk/tools/mcp_tool/mcp_toolset.py b/src/google/adk/tools/mcp_tool/mcp_toolset.py index f55693e86..c01b0cec2 100644 --- a/src/google/adk/tools/mcp_tool/mcp_toolset.py +++ b/src/google/adk/tools/mcp_tool/mcp_toolset.py @@ -22,6 +22,8 @@ from typing import Union from ...agents.readonly_context import ReadonlyContext +from ...auth.auth_credential import AuthCredential +from ...auth.auth_schemes import AuthScheme from ..base_tool import BaseTool from ..base_toolset import BaseToolset from ..base_toolset import ToolPredicate @@ -94,6 +96,8 @@ def __init__( ], tool_filter: Optional[Union[ToolPredicate, List[str]]] = None, errlog: TextIO = sys.stderr, + auth_scheme: Optional[AuthScheme] = None, + auth_credential: Optional[AuthCredential] = None, ): """Initializes the MCPToolset. @@ -110,6 +114,8 @@ def __init__( list of tool names to include - A ToolPredicate function for custom filtering logic errlog: TextIO stream for error logging. + auth_scheme: The auth scheme of the tool for tool calling + auth_credential: The auth credential of the tool for tool calling """ super().__init__(tool_filter=tool_filter) @@ -124,8 +130,10 @@ def __init__( connection_params=self._connection_params, errlog=self._errlog, ) + self._auth_scheme = auth_scheme + self._auth_credential = auth_credential - @retry_on_closed_resource("_mcp_session_manager") + @retry_on_closed_resource async def get_tools( self, readonly_context: Optional[ReadonlyContext] = None, @@ -151,6 +159,8 @@ async def get_tools( mcp_tool = MCPTool( mcp_tool=tool, mcp_session_manager=self._mcp_session_manager, + auth_scheme=self._auth_scheme, + auth_credential=self._auth_credential, ) if self._is_tool_selected(mcp_tool, readonly_context): diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py index 1e451fe0f..dee103932 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py @@ -345,9 +345,9 @@ def _prepare_request_params( async def run_async( self, *, args: dict[str, Any], tool_context: Optional[ToolContext] ) -> Dict[str, Any]: - return self.call(args=args, tool_context=tool_context) + return await self.call(args=args, tool_context=tool_context) - def call( + async def call( self, *, args: dict[str, Any], tool_context: Optional[ToolContext] ) -> Dict[str, Any]: """Executes the REST API call. @@ -364,7 +364,7 @@ def call( tool_auth_handler = ToolAuthHandler.from_tool_context( tool_context, self.auth_scheme, self.auth_credential ) - auth_result = tool_auth_handler.prepare_auth_credentials() + auth_result = await tool_auth_handler.prepare_auth_credentials() auth_state, auth_scheme, auth_credential = ( auth_result.state, auth_result.auth_scheme, diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py index c36793fdc..74166b00e 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py @@ -25,7 +25,7 @@ from ....auth.auth_schemes import AuthScheme from ....auth.auth_schemes import AuthSchemeType from ....auth.auth_tool import AuthConfig -from ....auth.oauth2_credential_fetcher import OAuth2CredentialFetcher +from ....auth.refresher.oauth2_credential_refresher import OAuth2CredentialRefresher from ...tool_context import ToolContext from ..auth.credential_exchangers.auto_auth_credential_exchanger import AutoAuthCredentialExchanger from ..auth.credential_exchangers.base_credential_exchanger import AuthCredentialMissingError @@ -146,7 +146,7 @@ def from_tool_context( credential_store, ) - def _get_existing_credential( + async def _get_existing_credential( self, ) -> Optional[AuthCredential]: """Checks for and returns an existing, exchanged credential.""" @@ -156,9 +156,11 @@ def _get_existing_credential( ) if existing_credential: if existing_credential.oauth2: - existing_credential = OAuth2CredentialFetcher( - self.auth_scheme, existing_credential - ).refresh() + refresher = OAuth2CredentialRefresher() + if await refresher.is_refresh_needed(existing_credential): + existing_credential = await refresher.refresh( + existing_credential, self.auth_scheme + ) return existing_credential return None @@ -231,10 +233,9 @@ def _external_exchange_required(self, credential) -> bool: AuthCredentialTypes.OPEN_ID_CONNECT, ) and not credential.oauth2.access_token - and not credential.google_oauth2_json ) - def prepare_auth_credentials( + async def prepare_auth_credentials( self, ) -> AuthPreparationResult: """Prepares authentication credentials, handling exchange and user interaction.""" @@ -244,7 +245,7 @@ def prepare_auth_credentials( return AuthPreparationResult(state="done") # Check for existing credential. - existing_credential = self._get_existing_credential() + existing_credential = await self._get_existing_credential() credential = existing_credential or self.auth_credential # fetch credential from adk framework diff --git a/src/google/adk/version.py b/src/google/adk/version.py index c0b08cc60..1c061dd03 100644 --- a/src/google/adk/version.py +++ b/src/google/adk/version.py @@ -13,4 +13,4 @@ # limitations under the License. # version: major.minor.patch -__version__ = "1.3.0" +__version__ = "1.5.0" diff --git a/tests/integration/fixture/trip_planner_agent/initial.session.json b/tests/integration/fixture/trip_planner_agent/initial.session.json deleted file mode 100644 index b33840cda..000000000 --- a/tests/integration/fixture/trip_planner_agent/initial.session.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "test_id", - "app_name": "trip_planner_agent", - "user_id": "test_user", - "state": { - "origin": "San Francisco", - "interests": "Food, Shopping, Museums", - "range": "1000 miles", - "cities": "" - }, - "events": [], - "last_update_time": 1741218714.258285 -} diff --git a/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json b/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json index c504f68e3..317599c6b 100644 --- a/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json +++ b/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json @@ -1,19 +1,116 @@ -[ - { - "query": "Hi, who are you? What can you do?", - "expected_tool_use": [], - "reference": "I am trip_planner, and my goal is to plan the best trip ever. I can describe why a city was chosen, list its top attractions, and provide a detailed itinerary for each day of the trip.\n" - }, - { - "query": "I want to travel from San Francisco to an European country in fall next year. I am considering London and Paris. What is your advice?", - "expected_tool_use": [ - { - "tool_name": "transfer_to_agent", - "tool_input": { - "agent_name": "indentify_agent" +{ + "eval_set_id": "e7996ccc-16bc-46bf-9a24-0a3ecc3dacd7", + "name": "e7996ccc-16bc-46bf-9a24-0a3ecc3dacd7", + "description": null, + "eval_cases": [ + { + "eval_id": "/google/src/cloud/ankusharma/CS-agent_evaluator-2025-06-17_115009/google3/third_party/py/google/adk/open_source_workspace/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json", + "conversation": [ + { + "invocation_id": "d7ff8ec1-290b-48c5-b3aa-05cb8f27b8ae", + "user_content": { + "parts": [ + { + "video_metadata": null, + "thought": null, + "inline_data": null, + "file_data": null, + "thought_signature": null, + "code_execution_result": null, + "executable_code": null, + "function_call": null, + "function_response": null, + "text": "Hi, who are you? What can you do?" + } + ], + "role": "user" + }, + "final_response": { + "parts": [ + { + "video_metadata": null, + "thought": null, + "inline_data": null, + "file_data": null, + "thought_signature": null, + "code_execution_result": null, + "executable_code": null, + "function_call": null, + "function_response": null, + "text": "I am trip_planner, and my goal is to plan the best trip ever. I can describe why a city was chosen, list its top attractions, and provide a detailed itinerary for each day of the trip.\n" + } + ], + "role": "model" + }, + "intermediate_data": { + "tool_uses": [], + "intermediate_responses": [] + }, + "creation_timestamp": 1750190885.419684 + }, + { + "invocation_id": "f515ff57-ff21-488f-ab92-7d7de5bb76fe", + "user_content": { + "parts": [ + { + "video_metadata": null, + "thought": null, + "inline_data": null, + "file_data": null, + "thought_signature": null, + "code_execution_result": null, + "executable_code": null, + "function_call": null, + "function_response": null, + "text": "I want to travel from San Francisco to an European country in fall next year. I am considering London and Paris. What is your advice?" + } + ], + "role": "user" + }, + "final_response": { + "parts": [ + { + "video_metadata": null, + "thought": null, + "inline_data": null, + "file_data": null, + "thought_signature": null, + "code_execution_result": null, + "executable_code": null, + "function_call": null, + "function_response": null, + "text": "Okay, I can help you analyze London and Paris to determine which city is better for your trip next fall. I will consider weather patterns, seasonal events, travel costs (including flights from San Francisco), and your interests (food, shopping, and museums). After gathering this information, I'll provide a detailed report on my chosen city.\n" + } + ], + "role": "model" + }, + "intermediate_data": { + "tool_uses": [ + { + "id": null, + "args": { + "agent_name": "indentify_agent" + }, + "name": "transfer_to_agent" + } + ], + "intermediate_responses": [] + }, + "creation_timestamp": 1750190885.4197457 } - } - ], - "reference": "Okay, I can help you analyze London and Paris to determine which city is better for your trip next fall. I will consider weather patterns, seasonal events, travel costs (including flights from San Francisco), and your interests (food, shopping, and museums). After gathering this information, I'll provide a detailed report on my chosen city.\n" - } -] + ], + "session_input": { + "app_name": "trip_planner_agent", + "user_id": "test_user", + "state": { + "origin": "San Francisco", + "interests": "Food, Shopping, Museums", + "range": "1000 miles", + "cities": "" + } + }, + "creation_timestamp": 1750190885.4197533 + } + ], + "creation_timestamp": 1750190885.4197605 +} \ No newline at end of file diff --git a/tests/integration/models/test_litellm_with_function.py b/tests/integration/models/test_litellm_with_function.py index 799c55e5c..e0d2bc991 100644 --- a/tests/integration/models/test_litellm_with_function.py +++ b/tests/integration/models/test_litellm_with_function.py @@ -17,11 +17,8 @@ from google.genai import types from google.genai.types import Content from google.genai.types import Part -import litellm import pytest -litellm.add_function_to_prompt = True - _TEST_MODEL_NAME = "vertex_ai/meta/llama-3.1-405b-instruct-maas" _SYSTEM_PROMPT = """ diff --git a/tests/unittests/a2a/converters/test_event_converter.py b/tests/unittests/a2a/converters/test_event_converter.py new file mode 100644 index 000000000..2ba8e26b4 --- /dev/null +++ b/tests/unittests/a2a/converters/test_event_converter.py @@ -0,0 +1,1214 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from unittest.mock import Mock +from unittest.mock import patch + +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from a2a.types import DataPart + from a2a.types import Message + from a2a.types import Role + from a2a.types import Task + from a2a.types import TaskArtifactUpdateEvent + from a2a.types import TaskState + from a2a.types import TaskStatusUpdateEvent + from google.adk.a2a.converters.event_converter import _convert_artifact_to_a2a_events + from google.adk.a2a.converters.event_converter import _create_artifact_id + from google.adk.a2a.converters.event_converter import _create_error_status_event + from google.adk.a2a.converters.event_converter import _create_status_update_event + from google.adk.a2a.converters.event_converter import _get_adk_metadata_key + from google.adk.a2a.converters.event_converter import _get_context_metadata + from google.adk.a2a.converters.event_converter import _process_long_running_tool + from google.adk.a2a.converters.event_converter import _serialize_metadata_value + from google.adk.a2a.converters.event_converter import ARTIFACT_ID_SEPARATOR + from google.adk.a2a.converters.event_converter import convert_event_to_a2a_events + from google.adk.a2a.converters.event_converter import convert_event_to_a2a_message + from google.adk.a2a.converters.event_converter import DEFAULT_ERROR_MESSAGE + from google.adk.a2a.converters.utils import ADK_METADATA_KEY_PREFIX + from google.adk.agents.invocation_context import InvocationContext + from google.adk.events.event import Event + from google.adk.events.event_actions import EventActions +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyTypes: + pass + + DataPart = DummyTypes() + Message = DummyTypes() + Role = DummyTypes() + Task = DummyTypes() + TaskArtifactUpdateEvent = DummyTypes() + TaskState = DummyTypes() + TaskStatusUpdateEvent = DummyTypes() + _convert_artifact_to_a2a_events = lambda *args: None + _create_artifact_id = lambda *args: None + _create_error_status_event = lambda *args: None + _create_status_update_event = lambda *args: None + _get_adk_metadata_key = lambda *args: None + _get_context_metadata = lambda *args: None + _process_long_running_tool = lambda *args: None + _serialize_metadata_value = lambda *args: None + ADK_METADATA_KEY_PREFIX = "adk_" + ARTIFACT_ID_SEPARATOR = "_" + convert_event_to_a2a_events = lambda *args: None + convert_event_to_a2a_message = lambda *args: None + DEFAULT_ERROR_MESSAGE = "error" + InvocationContext = DummyTypes() + Event = DummyTypes() + EventActions = DummyTypes() + types = DummyTypes() + else: + raise e + + +class TestEventConverter: + """Test suite for event_converter module.""" + + def setup_method(self): + """Set up test fixtures.""" + self.mock_session = Mock() + self.mock_session.id = "test-session-id" + + self.mock_artifact_service = Mock() + self.mock_invocation_context = Mock(spec=InvocationContext) + self.mock_invocation_context.app_name = "test-app" + self.mock_invocation_context.user_id = "test-user" + self.mock_invocation_context.session = self.mock_session + self.mock_invocation_context.artifact_service = self.mock_artifact_service + + self.mock_event = Mock(spec=Event) + self.mock_event.invocation_id = "test-invocation-id" + self.mock_event.author = "test-author" + self.mock_event.branch = None + self.mock_event.grounding_metadata = None + self.mock_event.custom_metadata = None + self.mock_event.usage_metadata = None + self.mock_event.error_code = None + self.mock_event.error_message = None + self.mock_event.content = None + self.mock_event.long_running_tool_ids = None + self.mock_event.actions = Mock(spec=EventActions) + self.mock_event.actions.artifact_delta = None + + def test_get_adk_event_metadata_key_success(self): + """Test successful metadata key generation.""" + key = "test_key" + result = _get_adk_metadata_key(key) + assert result == f"{ADK_METADATA_KEY_PREFIX}{key}" + + def test_get_adk_event_metadata_key_empty_string(self): + """Test metadata key generation with empty string.""" + with pytest.raises(ValueError) as exc_info: + _get_adk_metadata_key("") + assert "cannot be empty or None" in str(exc_info.value) + + def test_get_adk_event_metadata_key_none(self): + """Test metadata key generation with None.""" + with pytest.raises(ValueError) as exc_info: + _get_adk_metadata_key(None) + assert "cannot be empty or None" in str(exc_info.value) + + def test_serialize_metadata_value_with_model_dump(self): + """Test serialization of value with model_dump method.""" + mock_value = Mock() + mock_value.model_dump.return_value = {"key": "value"} + + result = _serialize_metadata_value(mock_value) + + assert result == {"key": "value"} + mock_value.model_dump.assert_called_once_with( + exclude_none=True, by_alias=True + ) + + def test_serialize_metadata_value_with_model_dump_exception(self): + """Test serialization when model_dump raises exception.""" + mock_value = Mock() + mock_value.model_dump.side_effect = Exception("Serialization failed") + + with patch( + "google.adk.a2a.converters.event_converter.logger" + ) as mock_logger: + result = _serialize_metadata_value(mock_value) + + assert result == str(mock_value) + mock_logger.warning.assert_called_once() + + def test_serialize_metadata_value_without_model_dump(self): + """Test serialization of value without model_dump method.""" + value = "simple_string" + result = _serialize_metadata_value(value) + assert result == "simple_string" + + def test_get_context_metadata_success(self): + """Test successful context metadata creation.""" + result = _get_context_metadata( + self.mock_event, self.mock_invocation_context + ) + + assert result is not None + expected_keys = [ + f"{ADK_METADATA_KEY_PREFIX}app_name", + f"{ADK_METADATA_KEY_PREFIX}user_id", + f"{ADK_METADATA_KEY_PREFIX}session_id", + f"{ADK_METADATA_KEY_PREFIX}invocation_id", + f"{ADK_METADATA_KEY_PREFIX}author", + ] + + for key in expected_keys: + assert key in result + + def test_get_context_metadata_with_optional_fields(self): + """Test context metadata creation with optional fields.""" + self.mock_event.branch = "test-branch" + self.mock_event.error_code = "ERROR_001" + + mock_metadata = Mock() + mock_metadata.model_dump.return_value = {"test": "value"} + self.mock_event.grounding_metadata = mock_metadata + + result = _get_context_metadata( + self.mock_event, self.mock_invocation_context + ) + + assert result is not None + assert f"{ADK_METADATA_KEY_PREFIX}branch" in result + assert f"{ADK_METADATA_KEY_PREFIX}grounding_metadata" in result + assert result[f"{ADK_METADATA_KEY_PREFIX}branch"] == "test-branch" + + # Check if error_code is in the result - it should be there since we set it + if f"{ADK_METADATA_KEY_PREFIX}error_code" in result: + assert result[f"{ADK_METADATA_KEY_PREFIX}error_code"] == "ERROR_001" + + def test_get_context_metadata_none_event(self): + """Test context metadata creation with None event.""" + with pytest.raises(ValueError) as exc_info: + _get_context_metadata(None, self.mock_invocation_context) + assert "Event cannot be None" in str(exc_info.value) + + def test_get_context_metadata_none_context(self): + """Test context metadata creation with None context.""" + with pytest.raises(ValueError) as exc_info: + _get_context_metadata(self.mock_event, None) + assert "Invocation context cannot be None" in str(exc_info.value) + + def test_create_artifact_id(self): + """Test artifact ID creation.""" + app_name = "test-app" + user_id = "user123" + session_id = "session456" + filename = "test.txt" + version = 1 + + result = _create_artifact_id( + app_name, user_id, session_id, filename, version + ) + expected = f"{app_name}{ARTIFACT_ID_SEPARATOR}{user_id}{ARTIFACT_ID_SEPARATOR}{session_id}{ARTIFACT_ID_SEPARATOR}{filename}{ARTIFACT_ID_SEPARATOR}{version}" + + assert result == expected + + @patch( + "google.adk.a2a.converters.event_converter.convert_genai_part_to_a2a_part" + ) + def test_convert_artifact_to_a2a_events_success(self, mock_convert_part): + """Test successful artifact delta conversion.""" + filename = "test.txt" + version = 1 + task_id = "test-task-id" + context_id = "test-context-id" + + mock_artifact_part = Mock() + # Create a proper Part that Pydantic will accept + from a2a.types import Part + from a2a.types import TextPart + + text_part = TextPart(text="test content") + mock_converted_part = Part(root=text_part) + + self.mock_artifact_service.load_artifact.return_value = mock_artifact_part + mock_convert_part.return_value = mock_converted_part + + result = _convert_artifact_to_a2a_events( + self.mock_event, + self.mock_invocation_context, + filename, + version, + task_id, + context_id, + ) + + assert isinstance(result, TaskArtifactUpdateEvent) + assert result.taskId == task_id + assert result.contextId == context_id + assert result.append is False + assert result.lastChunk is True + + # Check artifact properties + assert result.artifact.name == filename + assert result.artifact.metadata["filename"] == filename + assert result.artifact.metadata["version"] == version + assert len(result.artifact.parts) == 1 + assert result.artifact.parts[0].root.text == "test content" + + def test_convert_artifact_to_a2a_events_empty_filename(self): + """Test artifact delta conversion with empty filename.""" + with pytest.raises(ValueError) as exc_info: + _convert_artifact_to_a2a_events( + self.mock_event, self.mock_invocation_context, "", 1, "", "" + ) + assert "Filename cannot be empty" in str(exc_info.value) + + def test_convert_artifact_to_a2a_events_negative_version(self): + """Test artifact delta conversion with negative version.""" + with pytest.raises(ValueError) as exc_info: + _convert_artifact_to_a2a_events( + self.mock_event, self.mock_invocation_context, "test.txt", -1, "", "" + ) + assert "Version must be non-negative" in str(exc_info.value) + + @patch( + "google.adk.a2a.converters.event_converter.convert_genai_part_to_a2a_part" + ) + def test_convert_artifact_to_a2a_events_conversion_failure( + self, mock_convert_part + ): + """Test artifact delta conversion when part conversion fails.""" + filename = "test.txt" + version = 1 + + mock_artifact_part = Mock() + self.mock_artifact_service.load_artifact.return_value = mock_artifact_part + mock_convert_part.return_value = None # Simulate conversion failure + + with pytest.raises(RuntimeError) as exc_info: + _convert_artifact_to_a2a_events( + self.mock_event, + self.mock_invocation_context, + filename, + version, + "", + "", + ) + assert "Failed to convert artifact part" in str(exc_info.value) + + def test_process_long_running_tool_marks_tool(self): + """Test processing of long-running tool metadata.""" + mock_a2a_part = Mock() + mock_data_part = Mock(spec=DataPart) + mock_data_part.metadata = {"adk_type": "function_call", "id": "tool-123"} + mock_data_part.data = Mock() + mock_data_part.data.get = Mock(return_value="tool-123") + mock_a2a_part.root = mock_data_part + + self.mock_event.long_running_tool_ids = {"tool-123"} + + with ( + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_KEY", + "type", + ), + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL", + "function_call", + ), + patch( + "google.adk.a2a.converters.event_converter._get_adk_metadata_key" + ) as mock_get_key, + ): + mock_get_key.side_effect = lambda key: f"adk_{key}" + + _process_long_running_tool(mock_a2a_part, self.mock_event) + + expected_key = f"{ADK_METADATA_KEY_PREFIX}is_long_running" + assert mock_data_part.metadata[expected_key] is True + + def test_process_long_running_tool_no_marking(self): + """Test processing when tool should not be marked as long-running.""" + mock_a2a_part = Mock() + mock_data_part = Mock(spec=DataPart) + mock_data_part.metadata = {"adk_type": "function_call", "id": "tool-456"} + mock_data_part.data = Mock() + mock_data_part.data.get = Mock(return_value="tool-456") + mock_a2a_part.root = mock_data_part + + self.mock_event.long_running_tool_ids = {"tool-123"} # Different ID + + with ( + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_KEY", + "type", + ), + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL", + "function_call", + ), + patch( + "google.adk.a2a.converters.event_converter._get_adk_metadata_key" + ) as mock_get_key, + ): + mock_get_key.side_effect = lambda key: f"adk_{key}" + + _process_long_running_tool(mock_a2a_part, self.mock_event) + + expected_key = f"{ADK_METADATA_KEY_PREFIX}is_long_running" + assert expected_key not in mock_data_part.metadata + + @patch( + "google.adk.a2a.converters.event_converter.convert_genai_part_to_a2a_part" + ) + @patch("google.adk.a2a.converters.event_converter.uuid.uuid4") + def test_convert_event_to_message_success(self, mock_uuid, mock_convert_part): + """Test successful event to message conversion.""" + mock_uuid.return_value = "test-uuid" + + mock_part = Mock() + # Create a proper Part that Pydantic will accept + from a2a.types import Part + from a2a.types import TextPart + + text_part = TextPart(text="test message") + mock_a2a_part = Part(root=text_part) + mock_convert_part.return_value = mock_a2a_part + + mock_content = Mock() + mock_content.parts = [mock_part] + self.mock_event.content = mock_content + + result = convert_event_to_a2a_message( + self.mock_event, self.mock_invocation_context + ) + + assert isinstance(result, Message) + assert result.messageId == "test-uuid" + assert result.role == Role.agent + assert len(result.parts) == 1 + assert result.parts[0].root.text == "test message" + + def test_convert_event_to_message_no_content(self): + """Test event to message conversion with no content.""" + self.mock_event.content = None + + result = convert_event_to_a2a_message( + self.mock_event, self.mock_invocation_context + ) + + assert result is None + + def test_convert_event_to_message_empty_parts(self): + """Test event to message conversion with empty parts.""" + mock_content = Mock() + mock_content.parts = [] + self.mock_event.content = mock_content + + result = convert_event_to_a2a_message( + self.mock_event, self.mock_invocation_context + ) + + assert result is None + + def test_convert_event_to_message_none_event(self): + """Test event to message conversion with None event.""" + with pytest.raises(ValueError) as exc_info: + convert_event_to_a2a_message(None, self.mock_invocation_context) + assert "Event cannot be None" in str(exc_info.value) + + def test_convert_event_to_message_none_context(self): + """Test event to message conversion with None context.""" + with pytest.raises(ValueError) as exc_info: + convert_event_to_a2a_message(self.mock_event, None) + assert "Invocation context cannot be None" in str(exc_info.value) + + @patch( + "google.adk.a2a.converters.event_converter.convert_genai_part_to_a2a_part" + ) + @patch("google.adk.a2a.converters.event_converter.uuid.uuid4") + def test_convert_event_to_message_with_custom_role( + self, mock_uuid, mock_convert_part + ): + """Test event to message conversion with custom role.""" + mock_uuid.return_value = "test-uuid" + + mock_part = Mock() + # Create a proper Part that Pydantic will accept + from a2a.types import Part + from a2a.types import TextPart + + text_part = TextPart(text="test message") + mock_a2a_part = Part(root=text_part) + mock_convert_part.return_value = mock_a2a_part + + mock_content = Mock() + mock_content.parts = [mock_part] + self.mock_event.content = mock_content + + result = convert_event_to_a2a_message( + self.mock_event, self.mock_invocation_context, role=Role.user + ) + + assert isinstance(result, Message) + assert result.messageId == "test-uuid" + assert result.role == Role.user + assert len(result.parts) == 1 + assert result.parts[0].root.text == "test message" + + @patch("google.adk.a2a.converters.event_converter.uuid.uuid4") + @patch("google.adk.a2a.converters.event_converter.datetime") + def test_create_error_status_event(self, mock_datetime, mock_uuid): + """Test creation of error status event.""" + mock_uuid.return_value = "test-uuid" + mock_datetime.now.return_value.isoformat.return_value = ( + "2023-01-01T00:00:00" + ) + + self.mock_event.error_message = "Test error message" + task_id = "test-task-id" + context_id = "test-context-id" + + result = _create_error_status_event( + self.mock_event, self.mock_invocation_context, task_id, context_id + ) + + assert isinstance(result, TaskStatusUpdateEvent) + assert result.taskId == task_id + assert result.contextId == context_id + assert result.status.state == TaskState.failed + assert result.status.message.parts[0].root.text == "Test error message" + + @patch("google.adk.a2a.converters.event_converter.uuid.uuid4") + @patch("google.adk.a2a.converters.event_converter.datetime") + def test_create_error_status_event_no_message(self, mock_datetime, mock_uuid): + """Test creation of error status event without error message.""" + mock_uuid.return_value = "test-uuid" + mock_datetime.now.return_value.isoformat.return_value = ( + "2023-01-01T00:00:00" + ) + + task_id = "test-task-id" + context_id = "test-context-id" + + result = _create_error_status_event( + self.mock_event, self.mock_invocation_context, task_id, context_id + ) + + assert result.status.message.parts[0].root.text == DEFAULT_ERROR_MESSAGE + + @patch("google.adk.a2a.converters.event_converter.datetime") + def test_create_running_status_event(self, mock_datetime): + """Test creation of running status event.""" + mock_datetime.now.return_value.isoformat.return_value = ( + "2023-01-01T00:00:00" + ) + + mock_message = Mock(spec=Message) + mock_message.parts = [] + task_id = "test-task-id" + context_id = "test-context-id" + + result = _create_status_update_event( + mock_message, + self.mock_invocation_context, + self.mock_event, + task_id, + context_id, + ) + + assert isinstance(result, TaskStatusUpdateEvent) + assert result.taskId == task_id + assert result.contextId == context_id + assert result.status.state == TaskState.working + assert result.status.message == mock_message + + @patch( + "google.adk.a2a.converters.event_converter._convert_artifact_to_a2a_events" + ) + @patch( + "google.adk.a2a.converters.event_converter.convert_event_to_a2a_message" + ) + @patch("google.adk.a2a.converters.event_converter._create_error_status_event") + @patch( + "google.adk.a2a.converters.event_converter._create_status_update_event" + ) + def test_convert_event_to_a2a_events_full_scenario( + self, + mock_create_running, + mock_create_error, + mock_convert_message, + mock_convert_artifact, + ): + """Test full event to A2A events conversion scenario.""" + # Setup artifact delta + self.mock_event.actions.artifact_delta = {"file1.txt": 1, "file2.txt": 2} + + # Setup error + self.mock_event.error_code = "ERROR_001" + + # Setup message + mock_message = Mock(spec=Message) + mock_convert_message.return_value = mock_message + + # Setup mock returns + mock_artifact_event1 = Mock() + mock_artifact_event2 = Mock() + mock_convert_artifact.side_effect = [ + mock_artifact_event1, + mock_artifact_event2, + ] + + mock_error_event = Mock() + mock_create_error.return_value = mock_error_event + + mock_running_event = Mock() + mock_create_running.return_value = mock_running_event + + result = convert_event_to_a2a_events( + self.mock_event, self.mock_invocation_context + ) + + # Verify artifact delta events + assert mock_convert_artifact.call_count == 2 + + # Verify error event - now called with task_id and context_id parameters + mock_create_error.assert_called_once_with( + self.mock_event, self.mock_invocation_context, None, None + ) + + # Verify running event - now called with task_id and context_id parameters + mock_create_running.assert_called_once_with( + mock_message, self.mock_invocation_context, self.mock_event, None, None + ) + + # Verify result contains all events + assert len(result) == 4 # 2 artifact + 1 error + 1 running + assert mock_artifact_event1 in result + assert mock_artifact_event2 in result + assert mock_error_event in result + assert mock_running_event in result + + def test_convert_event_to_a2a_events_empty_scenario(self): + """Test event to A2A events conversion with empty event.""" + result = convert_event_to_a2a_events( + self.mock_event, self.mock_invocation_context + ) + + assert result == [] + + def test_convert_event_to_a2a_events_none_event(self): + """Test event to A2A events conversion with None event.""" + with pytest.raises(ValueError) as exc_info: + convert_event_to_a2a_events(None, self.mock_invocation_context) + assert "Event cannot be None" in str(exc_info.value) + + def test_convert_event_to_a2a_events_none_context(self): + """Test event to A2A events conversion with None context.""" + with pytest.raises(ValueError) as exc_info: + convert_event_to_a2a_events(self.mock_event, None) + assert "Invocation context cannot be None" in str(exc_info.value) + + @patch( + "google.adk.a2a.converters.event_converter.convert_event_to_a2a_message" + ) + def test_convert_event_to_a2a_events_message_only(self, mock_convert_message): + """Test event to A2A events conversion with message only.""" + mock_message = Mock(spec=Message) + mock_convert_message.return_value = mock_message + + with patch( + "google.adk.a2a.converters.event_converter._create_status_update_event" + ) as mock_create_running: + mock_running_event = Mock() + mock_create_running.return_value = mock_running_event + + result = convert_event_to_a2a_events( + self.mock_event, self.mock_invocation_context + ) + + assert len(result) == 1 + assert result[0] == mock_running_event + # Verify the function is called with task_id and context_id parameters + mock_create_running.assert_called_once_with( + mock_message, + self.mock_invocation_context, + self.mock_event, + None, + None, + ) + + @patch("google.adk.a2a.converters.event_converter.logger") + def test_convert_event_to_a2a_events_exception_handling(self, mock_logger): + """Test exception handling in convert_event_to_a2a_events.""" + # Make convert_event_to_a2a_message raise an exception + with patch( + "google.adk.a2a.converters.event_converter.convert_event_to_a2a_message" + ) as mock_convert_message: + mock_convert_message.side_effect = Exception("Test exception") + + with pytest.raises(Exception): + convert_event_to_a2a_events( + self.mock_event, self.mock_invocation_context + ) + + mock_logger.error.assert_called_once() + + def test_convert_event_to_a2a_events_with_task_id_and_context_id(self): + """Test event to A2A events conversion with specific task_id and context_id.""" + # Setup message + mock_message = Mock(spec=Message) + mock_message.parts = [] + + with patch( + "google.adk.a2a.converters.event_converter.convert_event_to_a2a_message" + ) as mock_convert_message: + mock_convert_message.return_value = mock_message + + with patch( + "google.adk.a2a.converters.event_converter._create_status_update_event" + ) as mock_create_running: + mock_running_event = Mock() + mock_create_running.return_value = mock_running_event + + task_id = "custom-task-id" + context_id = "custom-context-id" + + result = convert_event_to_a2a_events( + self.mock_event, self.mock_invocation_context, task_id, context_id + ) + + assert len(result) == 1 + assert result[0] == mock_running_event + + # Verify the function is called with the specific task_id and context_id + mock_create_running.assert_called_once_with( + mock_message, + self.mock_invocation_context, + self.mock_event, + task_id, + context_id, + ) + + def test_convert_event_to_a2a_events_with_artifacts_and_custom_ids(self): + """Test event to A2A events conversion with artifacts and custom IDs.""" + # Setup artifact delta + self.mock_event.actions.artifact_delta = {"file1.txt": 1} + + # Setup message + mock_message = Mock(spec=Message) + mock_message.parts = [] + + with patch( + "google.adk.a2a.converters.event_converter.convert_event_to_a2a_message" + ) as mock_convert_message: + mock_convert_message.return_value = mock_message + + with patch( + "google.adk.a2a.converters.event_converter._convert_artifact_to_a2a_events" + ) as mock_convert_artifact: + mock_artifact_event = Mock() + mock_convert_artifact.return_value = mock_artifact_event + + with patch( + "google.adk.a2a.converters.event_converter._create_status_update_event" + ) as mock_create_running: + mock_running_event = Mock() + mock_create_running.return_value = mock_running_event + + task_id = "custom-task-id" + context_id = "custom-context-id" + + result = convert_event_to_a2a_events( + self.mock_event, self.mock_invocation_context, task_id, context_id + ) + + assert len(result) == 2 # 1 artifact + 1 status + assert mock_artifact_event in result + assert mock_running_event in result + + # Verify artifact conversion is called with custom IDs + mock_convert_artifact.assert_called_once_with( + self.mock_event, + self.mock_invocation_context, + "file1.txt", + 1, + task_id, + context_id, + ) + + # Verify status update is called with custom IDs + mock_create_running.assert_called_once_with( + mock_message, + self.mock_invocation_context, + self.mock_event, + task_id, + context_id, + ) + + def test_create_status_update_event_with_auth_required_state(self): + """Test creation of status update event with auth_required state.""" + from a2a.types import DataPart + from a2a.types import Part + + # Create a mock message with a part that triggers auth_required state + mock_message = Mock(spec=Message) + mock_part = Mock() + mock_data_part = Mock(spec=DataPart) + mock_data_part.metadata = { + "adk_type": "function_call", + "adk_is_long_running": True, + } + mock_data_part.data = Mock() + mock_data_part.data.get = Mock(return_value="request_euc") + mock_part.root = mock_data_part + mock_message.parts = [mock_part] + + task_id = "test-task-id" + context_id = "test-context-id" + + with patch( + "google.adk.a2a.converters.event_converter.datetime" + ) as mock_datetime: + mock_datetime.now.return_value.isoformat.return_value = ( + "2023-01-01T00:00:00" + ) + + with ( + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_KEY", + "type", + ), + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL", + "function_call", + ), + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY", + "is_long_running", + ), + patch( + "google.adk.a2a.converters.event_converter.REQUEST_EUC_FUNCTION_CALL_NAME", + "request_euc", + ), + patch( + "google.adk.a2a.converters.event_converter._get_adk_metadata_key" + ) as mock_get_key, + ): + mock_get_key.side_effect = lambda key: f"adk_{key}" + + result = _create_status_update_event( + mock_message, + self.mock_invocation_context, + self.mock_event, + task_id, + context_id, + ) + + assert isinstance(result, TaskStatusUpdateEvent) + assert result.taskId == task_id + assert result.contextId == context_id + assert result.status.state == TaskState.auth_required + + def test_create_status_update_event_with_input_required_state(self): + """Test creation of status update event with input_required state.""" + from a2a.types import DataPart + from a2a.types import Part + + # Create a mock message with a part that triggers input_required state + mock_message = Mock(spec=Message) + mock_part = Mock() + mock_data_part = Mock(spec=DataPart) + mock_data_part.metadata = { + "adk_type": "function_call", + "adk_is_long_running": True, + } + mock_data_part.data = Mock() + mock_data_part.data.get = Mock(return_value="some_other_function") + mock_part.root = mock_data_part + mock_message.parts = [mock_part] + + task_id = "test-task-id" + context_id = "test-context-id" + + with patch( + "google.adk.a2a.converters.event_converter.datetime" + ) as mock_datetime: + mock_datetime.now.return_value.isoformat.return_value = ( + "2023-01-01T00:00:00" + ) + + with ( + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_KEY", + "type", + ), + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL", + "function_call", + ), + patch( + "google.adk.a2a.converters.event_converter.A2A_DATA_PART_METADATA_IS_LONG_RUNNING_KEY", + "is_long_running", + ), + patch( + "google.adk.a2a.converters.event_converter.REQUEST_EUC_FUNCTION_CALL_NAME", + "request_euc", + ), + patch( + "google.adk.a2a.converters.event_converter._get_adk_metadata_key" + ) as mock_get_key, + ): + mock_get_key.side_effect = lambda key: f"adk_{key}" + + result = _create_status_update_event( + mock_message, + self.mock_invocation_context, + self.mock_event, + task_id, + context_id, + ) + + assert isinstance(result, TaskStatusUpdateEvent) + assert result.taskId == task_id + assert result.contextId == context_id + assert result.status.state == TaskState.input_required + + +class TestA2AToEventConverters: + """Test suite for A2A to Event conversion functions.""" + + def setup_method(self): + """Set up test fixtures.""" + self.mock_invocation_context = Mock(spec=InvocationContext) + self.mock_invocation_context.branch = "test-branch" + self.mock_invocation_context.invocation_id = "test-invocation-id" + + def test_convert_a2a_task_to_event_with_status_message(self): + """Test converting A2A task with status message.""" + from google.adk.a2a.converters.event_converter import convert_a2a_task_to_event + + # Create mock message and task + mock_message = Mock(spec=Message) + mock_status = Mock() + mock_status.message = mock_message + mock_task = Mock(spec=Task) + mock_task.status = mock_status + mock_task.history = [] + + # Mock the convert_a2a_message_to_event function + with patch( + "google.adk.a2a.converters.event_converter.convert_a2a_message_to_event" + ) as mock_convert_message: + mock_event = Mock(spec=Event) + mock_event.invocation_id = "test-invocation-id" + mock_convert_message.return_value = mock_event + + result = convert_a2a_task_to_event( + mock_task, "test-author", self.mock_invocation_context + ) + + # Verify the message converter was called with correct parameters + mock_convert_message.assert_called_once_with( + mock_message, "test-author", self.mock_invocation_context + ) + assert result == mock_event + assert result.invocation_id == "test-invocation-id" + + def test_convert_a2a_task_to_event_with_history_message(self): + """Test converting A2A task with history message when no status message.""" + from google.adk.a2a.converters.event_converter import convert_a2a_task_to_event + + # Create mock message and task + mock_message = Mock(spec=Message) + mock_task = Mock(spec=Task) + mock_task.status = None + mock_task.history = [mock_message] + + # Mock the convert_a2a_message_to_event function + with patch( + "google.adk.a2a.converters.event_converter.convert_a2a_message_to_event" + ) as mock_convert_message: + mock_event = Mock(spec=Event) + mock_event.invocation_id = "test-invocation-id" + mock_convert_message.return_value = mock_event + + result = convert_a2a_task_to_event(mock_task, "test-author") + + # Verify the message converter was called with correct parameters + mock_convert_message.assert_called_once_with( + mock_message, "test-author", None + ) + assert result == mock_event + + def test_convert_a2a_task_to_event_no_message(self): + """Test converting A2A task with no message.""" + from google.adk.a2a.converters.event_converter import convert_a2a_task_to_event + + # Create mock task with no message + mock_task = Mock(spec=Task) + mock_task.status = None + mock_task.history = [] + + result = convert_a2a_task_to_event( + mock_task, "test-author", self.mock_invocation_context + ) + + # Verify minimal event was created with correct invocation_id + assert result.author == "test-author" + assert result.branch == "test-branch" + assert result.invocation_id == "test-invocation-id" + + @patch("google.adk.a2a.converters.event_converter.uuid.uuid4") + def test_convert_a2a_task_to_event_default_author(self, mock_uuid): + """Test converting A2A task with default author and no invocation context.""" + from google.adk.a2a.converters.event_converter import convert_a2a_task_to_event + + # Create mock task with no message + mock_task = Mock(spec=Task) + mock_task.status = None + mock_task.history = [] + + # Mock UUID generation + mock_uuid.return_value = "generated-uuid" + + result = convert_a2a_task_to_event(mock_task) + + # Verify default author was used and UUID was generated for invocation_id + assert result.author == "a2a agent" + assert result.branch is None + assert result.invocation_id == "generated-uuid" + + def test_convert_a2a_task_to_event_none_task(self): + """Test converting None task raises ValueError.""" + from google.adk.a2a.converters.event_converter import convert_a2a_task_to_event + + with pytest.raises(ValueError, match="A2A task cannot be None"): + convert_a2a_task_to_event(None) + + def test_convert_a2a_task_to_event_message_conversion_error(self): + """Test error handling when message conversion fails.""" + from google.adk.a2a.converters.event_converter import convert_a2a_task_to_event + + # Create mock message and task + mock_message = Mock(spec=Message) + mock_status = Mock() + mock_status.message = mock_message + mock_task = Mock(spec=Task) + mock_task.status = mock_status + mock_task.history = [] + + # Mock the convert_a2a_message_to_event function to raise an exception + with patch( + "google.adk.a2a.converters.event_converter.convert_a2a_message_to_event" + ) as mock_convert_message: + mock_convert_message.side_effect = Exception("Conversion failed") + + with pytest.raises(RuntimeError, match="Failed to convert task message"): + convert_a2a_task_to_event(mock_task, "test-author") + + @patch( + "google.adk.a2a.converters.event_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_message_to_event_success(self, mock_convert_part): + """Test successful conversion of A2A message to event.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + from google.genai import types as genai_types + + # Create mock parts and message with valid genai Part + mock_a2a_part = Mock() + mock_genai_part = genai_types.Part(text="test content") + mock_convert_part.return_value = mock_genai_part + + mock_message = Mock(spec=Message) + mock_message.parts = [mock_a2a_part] + + result = convert_a2a_message_to_event( + mock_message, "test-author", self.mock_invocation_context + ) + + # Verify conversion was successful + assert result.author == "test-author" + assert result.branch == "test-branch" + assert result.invocation_id == "test-invocation-id" + assert result.content.role == "model" + assert len(result.content.parts) == 1 + assert result.content.parts[0].text == "test content" + mock_convert_part.assert_called_once_with(mock_a2a_part) + + @patch( + "google.adk.a2a.converters.event_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_message_to_event_with_long_running_tools( + self, mock_convert_part + ): + """Test conversion with long-running tools by mocking the entire flow.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + + # Create mock parts and message + mock_a2a_part = Mock() + mock_message = Mock(spec=Message) + mock_message.parts = [mock_a2a_part] + + # Mock the part conversion to return None to simulate long-running tool detection logic + mock_convert_part.return_value = None + + # Patch the long-running tool detection since the main logic is in the actual conversion + with patch( + "google.adk.a2a.converters.event_converter.logger" + ) as mock_logger: + result = convert_a2a_message_to_event( + mock_message, "test-author", self.mock_invocation_context + ) + + # Verify basic conversion worked + assert result.author == "test-author" + assert result.invocation_id == "test-invocation-id" + assert result.content.role == "model" + # Parts will be empty since conversion returned None, but that's expected for this test + + def test_convert_a2a_message_to_event_empty_parts(self): + """Test conversion with empty parts list.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + + mock_message = Mock(spec=Message) + mock_message.parts = [] + + result = convert_a2a_message_to_event( + mock_message, "test-author", self.mock_invocation_context + ) + + # Verify event was created with empty parts + assert result.author == "test-author" + assert result.invocation_id == "test-invocation-id" + assert result.content.role == "model" + assert len(result.content.parts) == 0 + + def test_convert_a2a_message_to_event_none_message(self): + """Test converting None message raises ValueError.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + + with pytest.raises(ValueError, match="A2A message cannot be None"): + convert_a2a_message_to_event(None) + + @patch( + "google.adk.a2a.converters.event_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_message_to_event_part_conversion_fails( + self, mock_convert_part + ): + """Test handling when part conversion returns None.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + + # Setup mock to return None (conversion failure) + mock_a2a_part = Mock() + mock_convert_part.return_value = None + + mock_message = Mock(spec=Message) + mock_message.parts = [mock_a2a_part] + + result = convert_a2a_message_to_event( + mock_message, "test-author", self.mock_invocation_context + ) + + # Verify event was created but with no parts + assert result.author == "test-author" + assert result.invocation_id == "test-invocation-id" + assert result.content.role == "model" + assert len(result.content.parts) == 0 + + @patch( + "google.adk.a2a.converters.event_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_message_to_event_part_conversion_exception( + self, mock_convert_part + ): + """Test handling when part conversion raises exception.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + from google.genai import types as genai_types + + # Setup mock to raise exception + mock_a2a_part1 = Mock() + mock_a2a_part2 = Mock() + mock_genai_part = genai_types.Part(text="successful conversion") + + mock_convert_part.side_effect = [ + Exception("Conversion failed"), # First part fails + mock_genai_part, # Second part succeeds + ] + + mock_message = Mock(spec=Message) + mock_message.parts = [mock_a2a_part1, mock_a2a_part2] + + result = convert_a2a_message_to_event( + mock_message, "test-author", self.mock_invocation_context + ) + + # Verify event was created with only the successfully converted part + assert result.author == "test-author" + assert result.invocation_id == "test-invocation-id" + assert result.content.role == "model" + assert len(result.content.parts) == 1 + assert result.content.parts[0].text == "successful conversion" + + @patch( + "google.adk.a2a.converters.event_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_message_to_event_missing_tool_id( + self, mock_convert_part + ): + """Test handling of message conversion when part conversion fails.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + + # Create mock parts and message + mock_a2a_part = Mock() + mock_message = Mock(spec=Message) + mock_message.parts = [mock_a2a_part] + + # Mock the part conversion to return None + mock_convert_part.return_value = None + + result = convert_a2a_message_to_event( + mock_message, "test-author", self.mock_invocation_context + ) + + # Verify basic conversion worked + assert result.author == "test-author" + assert result.invocation_id == "test-invocation-id" + assert result.content.role == "model" + # Parts will be empty since conversion returned None + assert len(result.content.parts) == 0 + + @patch("google.adk.a2a.converters.event_converter.uuid.uuid4") + def test_convert_a2a_message_to_event_default_author(self, mock_uuid): + """Test conversion with default author and no invocation context.""" + from google.adk.a2a.converters.event_converter import convert_a2a_message_to_event + + mock_message = Mock(spec=Message) + mock_message.parts = [] + + # Mock UUID generation + mock_uuid.return_value = "generated-uuid" + + result = convert_a2a_message_to_event(mock_message) + + # Verify default author was used and UUID was generated for invocation_id + assert result.author == "a2a agent" + assert result.branch is None + assert result.invocation_id == "generated-uuid" diff --git a/tests/unittests/a2a/converters/test_part_converter.py b/tests/unittests/a2a/converters/test_part_converter.py index 5ad6cd62d..1e8f0d4a3 100644 --- a/tests/unittests/a2a/converters/test_part_converter.py +++ b/tests/unittests/a2a/converters/test_part_converter.py @@ -13,18 +13,49 @@ # limitations under the License. import json +import sys from unittest.mock import Mock from unittest.mock import patch -from a2a import types as a2a_types -from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL -from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE -from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_KEY -from google.adk.a2a.converters.part_converter import convert_a2a_part_to_genai_part -from google.adk.a2a.converters.part_converter import convert_genai_part_to_a2a_part -from google.genai import types as genai_types import pytest +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from a2a import types as a2a_types + from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT + from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE + from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL + from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE + from google.adk.a2a.converters.part_converter import A2A_DATA_PART_METADATA_TYPE_KEY + from google.adk.a2a.converters.part_converter import convert_a2a_part_to_genai_part + from google.adk.a2a.converters.part_converter import convert_genai_part_to_a2a_part + from google.adk.a2a.converters.utils import _get_adk_metadata_key + from google.genai import types as genai_types +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyTypes: + pass + + a2a_types = DummyTypes() + genai_types = DummyTypes() + A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL = "function_call" + A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE = "function_response" + A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT = "code_execution_result" + A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE = "executable_code" + A2A_DATA_PART_METADATA_TYPE_KEY = "type" + convert_a2a_part_to_genai_part = lambda x: None + convert_genai_part_to_a2a_part = lambda x: None + _get_adk_metadata_key = lambda x: f"adk_{x}" + else: + raise e + class TestConvertA2aPartToGenaiPart: """Test cases for convert_a2a_part_to_genai_part function.""" @@ -67,11 +98,14 @@ def test_convert_file_part_with_bytes(self): """Test conversion of A2A FilePart with bytes to GenAI Part.""" # Arrange test_bytes = b"test file content" - # Note: A2A FileWithBytes converts bytes to string automatically + # A2A FileWithBytes expects base64-encoded string + import base64 + + base64_encoded = base64.b64encode(test_bytes).decode("utf-8") a2a_part = a2a_types.Part( root=a2a_types.FilePart( file=a2a_types.FileWithBytes( - bytes=test_bytes, mimeType="text/plain" + bytes=base64_encoded, mimeType="text/plain" ) ) ) @@ -83,7 +117,7 @@ def test_convert_file_part_with_bytes(self): assert result is not None assert isinstance(result, genai_types.Part) assert result.inline_data is not None - # Source code now properly converts A2A string back to bytes for GenAI Blob + # The converter decodes base64 back to original bytes assert result.inline_data.data == test_bytes assert result.inline_data.mime_type == "text/plain" @@ -98,9 +132,10 @@ def test_convert_data_part_function_call(self): root=a2a_types.DataPart( data=function_call_data, metadata={ - A2A_DATA_PART_METADATA_TYPE_KEY: ( - A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL - ) + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL, + "adk_type": A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL, }, ) ) @@ -126,9 +161,10 @@ def test_convert_data_part_function_response(self): root=a2a_types.DataPart( data=function_response_data, metadata={ - A2A_DATA_PART_METADATA_TYPE_KEY: ( - A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE - ) + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE, + "adk_type": A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE, }, ) ) @@ -233,8 +269,25 @@ def test_convert_text_part(self): # Assert assert result is not None - assert isinstance(result, a2a_types.TextPart) - assert result.text == "Hello, world!" + assert isinstance(result, a2a_types.Part) + assert isinstance(result.root, a2a_types.TextPart) + assert result.root.text == "Hello, world!" + + def test_convert_text_part_with_thought(self): + """Test conversion of GenAI text Part with thought to A2A Part.""" + # Arrange - thought is a boolean field in genai_types.Part + genai_part = genai_types.Part(text="Hello, world!", thought=True) + + # Act + result = convert_genai_part_to_a2a_part(genai_part) + + # Assert + assert result is not None + assert isinstance(result, a2a_types.Part) + assert isinstance(result.root, a2a_types.TextPart) + assert result.root.text == "Hello, world!" + assert result.root.metadata is not None + assert result.root.metadata[_get_adk_metadata_key("thought")] == True def test_convert_file_data_part(self): """Test conversion of GenAI file_data Part to A2A Part.""" @@ -250,10 +303,11 @@ def test_convert_file_data_part(self): # Assert assert result is not None - assert isinstance(result, a2a_types.FilePart) - assert isinstance(result.file, a2a_types.FileWithUri) - assert result.file.uri == "gs://bucket/file.txt" - assert result.file.mimeType == "text/plain" + assert isinstance(result, a2a_types.Part) + assert isinstance(result.root, a2a_types.FilePart) + assert isinstance(result.root.file, a2a_types.FileWithUri) + assert result.root.file.uri == "gs://bucket/file.txt" + assert result.root.file.mimeType == "text/plain" def test_convert_inline_data_part(self): """Test conversion of GenAI inline_data Part to A2A Part.""" @@ -271,10 +325,34 @@ def test_convert_inline_data_part(self): assert isinstance(result, a2a_types.Part) assert isinstance(result.root, a2a_types.FilePart) assert isinstance(result.root.file, a2a_types.FileWithBytes) - # A2A FileWithBytes stores bytes as strings - assert result.root.file.bytes == test_bytes.decode("utf-8") + # A2A FileWithBytes now stores base64-encoded bytes to ensure round-trip compatibility + import base64 + + expected_base64 = base64.b64encode(test_bytes).decode("utf-8") + assert result.root.file.bytes == expected_base64 assert result.root.file.mimeType == "text/plain" + def test_convert_inline_data_part_with_video_metadata(self): + """Test conversion of GenAI inline_data Part with video metadata to A2A Part.""" + # Arrange + test_bytes = b"test video content" + video_metadata = genai_types.VideoMetadata(fps=30.0) + genai_part = genai_types.Part( + inline_data=genai_types.Blob(data=test_bytes, mime_type="video/mp4"), + video_metadata=video_metadata, + ) + + # Act + result = convert_genai_part_to_a2a_part(genai_part) + + # Assert + assert result is not None + assert isinstance(result, a2a_types.Part) + assert isinstance(result.root, a2a_types.FilePart) + assert isinstance(result.root.file, a2a_types.FileWithBytes) + assert result.root.metadata is not None + assert _get_adk_metadata_key("video_metadata") in result.root.metadata + def test_convert_function_call_part(self): """Test conversion of GenAI function_call Part to A2A Part.""" # Arrange @@ -293,7 +371,9 @@ def test_convert_function_call_part(self): expected_data = function_call.model_dump(by_alias=True, exclude_none=True) assert result.root.data == expected_data assert ( - result.root.metadata[A2A_DATA_PART_METADATA_TYPE_KEY] + result.root.metadata[ + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ] == A2A_DATA_PART_METADATA_TYPE_FUNCTION_CALL ) @@ -317,10 +397,62 @@ def test_convert_function_response_part(self): ) assert result.root.data == expected_data assert ( - result.root.metadata[A2A_DATA_PART_METADATA_TYPE_KEY] + result.root.metadata[ + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ] == A2A_DATA_PART_METADATA_TYPE_FUNCTION_RESPONSE ) + def test_convert_code_execution_result_part(self): + """Test conversion of GenAI code_execution_result Part to A2A Part.""" + # Arrange + code_execution_result = genai_types.CodeExecutionResult( + outcome=genai_types.Outcome.OUTCOME_OK, output="Hello, World!" + ) + genai_part = genai_types.Part(code_execution_result=code_execution_result) + + # Act + result = convert_genai_part_to_a2a_part(genai_part) + + # Assert + assert result is not None + assert isinstance(result, a2a_types.Part) + assert isinstance(result.root, a2a_types.DataPart) + expected_data = code_execution_result.model_dump( + by_alias=True, exclude_none=True + ) + assert result.root.data == expected_data + assert ( + result.root.metadata[ + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ] + == A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT + ) + + def test_convert_executable_code_part(self): + """Test conversion of GenAI executable_code Part to A2A Part.""" + # Arrange + executable_code = genai_types.ExecutableCode( + language=genai_types.Language.PYTHON, code="print('Hello, World!')" + ) + genai_part = genai_types.Part(executable_code=executable_code) + + # Act + result = convert_genai_part_to_a2a_part(genai_part) + + # Assert + assert result is not None + assert isinstance(result, a2a_types.Part) + assert isinstance(result.root, a2a_types.DataPart) + expected_data = executable_code.model_dump(by_alias=True, exclude_none=True) + assert result.root.data == expected_data + assert ( + result.root.metadata[ + _get_adk_metadata_key(A2A_DATA_PART_METADATA_TYPE_KEY) + ] + == A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE + ) + def test_convert_unsupported_part(self): """Test handling of unsupported GenAI Part types.""" # Arrange - Create a GenAI Part with no recognized fields @@ -352,8 +484,9 @@ def test_text_part_round_trip(self): # Assert assert result_a2a_part is not None - assert isinstance(result_a2a_part, a2a_types.TextPart) - assert result_a2a_part.text == original_text + assert isinstance(result_a2a_part, a2a_types.Part) + assert isinstance(result_a2a_part.root, a2a_types.TextPart) + assert result_a2a_part.root.text == original_text def test_file_uri_round_trip(self): """Test round-trip conversion for file parts with URI.""" @@ -374,10 +507,122 @@ def test_file_uri_round_trip(self): # Assert assert result_a2a_part is not None - assert isinstance(result_a2a_part, a2a_types.FilePart) - assert isinstance(result_a2a_part.file, a2a_types.FileWithUri) - assert result_a2a_part.file.uri == original_uri - assert result_a2a_part.file.mimeType == original_mime_type + assert isinstance(result_a2a_part, a2a_types.Part) + assert isinstance(result_a2a_part.root, a2a_types.FilePart) + assert isinstance(result_a2a_part.root.file, a2a_types.FileWithUri) + assert result_a2a_part.root.file.uri == original_uri + assert result_a2a_part.root.file.mimeType == original_mime_type + + def test_file_bytes_round_trip(self): + """Test round-trip conversion for file parts with bytes.""" + # Arrange + original_bytes = b"test file content for round trip" + original_mime_type = "application/octet-stream" + + # Start with GenAI part (the more common starting point) + genai_part = genai_types.Part( + inline_data=genai_types.Blob( + data=original_bytes, mime_type=original_mime_type + ) + ) + + # Act - Round trip: GenAI -> A2A -> GenAI + a2a_part = convert_genai_part_to_a2a_part(genai_part) + result_genai_part = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result_genai_part is not None + assert isinstance(result_genai_part, genai_types.Part) + assert result_genai_part.inline_data is not None + assert result_genai_part.inline_data.data == original_bytes + assert result_genai_part.inline_data.mime_type == original_mime_type + + def test_function_call_round_trip(self): + """Test round-trip conversion for function call parts.""" + # Arrange + function_call = genai_types.FunctionCall( + name="test_function", args={"param1": "value1", "param2": 42} + ) + genai_part = genai_types.Part(function_call=function_call) + + # Act - Round trip: GenAI -> A2A -> GenAI + a2a_part = convert_genai_part_to_a2a_part(genai_part) + result_genai_part = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result_genai_part is not None + assert isinstance(result_genai_part, genai_types.Part) + assert result_genai_part.function_call is not None + assert result_genai_part.function_call.name == function_call.name + assert result_genai_part.function_call.args == function_call.args + + def test_function_response_round_trip(self): + """Test round-trip conversion for function response parts.""" + # Arrange + function_response = genai_types.FunctionResponse( + name="test_function", response={"result": "success", "data": [1, 2, 3]} + ) + genai_part = genai_types.Part(function_response=function_response) + + # Act - Round trip: GenAI -> A2A -> GenAI + a2a_part = convert_genai_part_to_a2a_part(genai_part) + result_genai_part = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result_genai_part is not None + assert isinstance(result_genai_part, genai_types.Part) + assert result_genai_part.function_response is not None + assert result_genai_part.function_response.name == function_response.name + assert ( + result_genai_part.function_response.response + == function_response.response + ) + + def test_code_execution_result_round_trip(self): + """Test round-trip conversion for code execution result parts.""" + # Arrange + code_execution_result = genai_types.CodeExecutionResult( + outcome=genai_types.Outcome.OUTCOME_OK, output="Hello, World!" + ) + genai_part = genai_types.Part(code_execution_result=code_execution_result) + + # Act - Round trip: GenAI -> A2A -> GenAI + a2a_part = convert_genai_part_to_a2a_part(genai_part) + result_genai_part = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result_genai_part is not None + assert isinstance(result_genai_part, genai_types.Part) + assert result_genai_part.code_execution_result is not None + assert ( + result_genai_part.code_execution_result.outcome + == code_execution_result.outcome + ) + assert ( + result_genai_part.code_execution_result.output + == code_execution_result.output + ) + + def test_executable_code_round_trip(self): + """Test round-trip conversion for executable code parts.""" + # Arrange + executable_code = genai_types.ExecutableCode( + language=genai_types.Language.PYTHON, code="print('Hello, World!')" + ) + genai_part = genai_types.Part(executable_code=executable_code) + + # Act - Round trip: GenAI -> A2A -> GenAI + a2a_part = convert_genai_part_to_a2a_part(genai_part) + result_genai_part = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result_genai_part is not None + assert isinstance(result_genai_part, genai_types.Part) + assert result_genai_part.executable_code is not None + assert ( + result_genai_part.executable_code.language == executable_code.language + ) + assert result_genai_part.executable_code.code == executable_code.code class TestEdgeCases: @@ -441,3 +686,75 @@ def test_data_part_with_empty_metadata(self): # Assert assert result is not None assert result.text == json.dumps(data) + + +class TestNewConstants: + """Test cases for new constants and functionality.""" + + def test_new_constants_exist(self): + """Test that new constants are defined.""" + assert ( + A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT + == "code_execution_result" + ) + assert A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE == "executable_code" + + def test_convert_a2a_data_part_with_code_execution_result_metadata(self): + """Test conversion of A2A DataPart with code execution result metadata.""" + # Arrange + code_execution_result_data = { + "outcome": "OUTCOME_OK", + "output": "Hello, World!", + } + a2a_part = a2a_types.Part( + root=a2a_types.DataPart( + data=code_execution_result_data, + metadata={ + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_CODE_EXECUTION_RESULT, + }, + ) + ) + + # Act + result = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result is not None + assert isinstance(result, genai_types.Part) + # Now it should convert back to a proper CodeExecutionResult + assert result.code_execution_result is not None + assert ( + result.code_execution_result.outcome == genai_types.Outcome.OUTCOME_OK + ) + assert result.code_execution_result.output == "Hello, World!" + + def test_convert_a2a_data_part_with_executable_code_metadata(self): + """Test conversion of A2A DataPart with executable code metadata.""" + # Arrange + executable_code_data = { + "language": "PYTHON", + "code": "print('Hello, World!')", + } + a2a_part = a2a_types.Part( + root=a2a_types.DataPart( + data=executable_code_data, + metadata={ + _get_adk_metadata_key( + A2A_DATA_PART_METADATA_TYPE_KEY + ): A2A_DATA_PART_METADATA_TYPE_EXECUTABLE_CODE, + }, + ) + ) + + # Act + result = convert_a2a_part_to_genai_part(a2a_part) + + # Assert + assert result is not None + assert isinstance(result, genai_types.Part) + # Now it should convert back to a proper ExecutableCode + assert result.executable_code is not None + assert result.executable_code.language == genai_types.Language.PYTHON + assert result.executable_code.code == "print('Hello, World!')" diff --git a/tests/unittests/a2a/converters/test_request_converter.py b/tests/unittests/a2a/converters/test_request_converter.py new file mode 100644 index 000000000..699df14c2 --- /dev/null +++ b/tests/unittests/a2a/converters/test_request_converter.py @@ -0,0 +1,374 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from unittest.mock import Mock +from unittest.mock import patch + +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A tool requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from a2a.server.agent_execution import RequestContext + from google.adk.a2a.converters.request_converter import _get_user_id + from google.adk.a2a.converters.request_converter import convert_a2a_request_to_adk_run_args + from google.adk.runners import RunConfig + from google.genai import types as genai_types +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyTypes: + pass + + a2a_types = DummyTypes() + genai_types = DummyTypes() + RequestContext = DummyTypes() + RunConfig = DummyTypes() + _get_user_id = lambda x: None + convert_a2a_request_to_adk_run_args = lambda x: None + else: + raise e + + +class TestGetUserId: + """Test cases for _get_user_id function.""" + + def test_get_user_id_from_call_context(self): + """Test getting user ID from call context when auth is enabled.""" + # Arrange + mock_user = Mock() + mock_user.user_name = "authenticated_user" + + mock_call_context = Mock() + mock_call_context.user = mock_user + + request = Mock(spec=RequestContext) + request.call_context = mock_call_context + request.context_id = "test_context" + + # Act + result = _get_user_id(request) + + # Assert + assert result == "authenticated_user" + + def test_get_user_id_from_context_when_no_call_context(self): + """Test getting user ID from context when call context is not available.""" + # Arrange + request = Mock(spec=RequestContext) + request.call_context = None + request.context_id = "test_context" + + # Act + result = _get_user_id(request) + + # Assert + assert result == "A2A_USER_test_context" + + def test_get_user_id_from_context_when_call_context_has_no_user(self): + """Test getting user ID from context when call context has no user.""" + # Arrange + mock_call_context = Mock() + mock_call_context.user = None + + request = Mock(spec=RequestContext) + request.call_context = mock_call_context + request.context_id = "test_context" + + # Act + result = _get_user_id(request) + + # Assert + assert result == "A2A_USER_test_context" + + def test_get_user_id_with_empty_user_name(self): + """Test getting user ID when user exists but user_name is empty.""" + # Arrange + mock_user = Mock() + mock_user.user_name = "" + + mock_call_context = Mock() + mock_call_context.user = mock_user + + request = Mock(spec=RequestContext) + request.call_context = mock_call_context + request.context_id = "test_context" + + # Act + result = _get_user_id(request) + + # Assert + assert result == "A2A_USER_test_context" + + def test_get_user_id_with_none_user_name(self): + """Test getting user ID when user exists but user_name is None.""" + # Arrange + mock_user = Mock() + mock_user.user_name = None + + mock_call_context = Mock() + mock_call_context.user = mock_user + + request = Mock(spec=RequestContext) + request.call_context = mock_call_context + request.context_id = "test_context" + + # Act + result = _get_user_id(request) + + # Assert + assert result == "A2A_USER_test_context" + + def test_get_user_id_with_none_context_id(self): + """Test getting user ID when context_id is None.""" + # Arrange + request = Mock(spec=RequestContext) + request.call_context = None + request.context_id = None + + # Act + result = _get_user_id(request) + + # Assert + assert result == "A2A_USER_None" + + +class TestConvertA2aRequestToAdkRunArgs: + """Test cases for convert_a2a_request_to_adk_run_args function.""" + + @patch( + "google.adk.a2a.converters.request_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_request_basic(self, mock_convert_part): + """Test basic conversion of A2A request to ADK run args.""" + # Arrange + mock_part1 = Mock() + mock_part2 = Mock() + + mock_message = Mock() + mock_message.parts = [mock_part1, mock_part2] + + mock_user = Mock() + mock_user.user_name = "test_user" + + mock_call_context = Mock() + mock_call_context.user = mock_user + + request = Mock(spec=RequestContext) + request.message = mock_message + request.context_id = "test_context_123" + request.call_context = mock_call_context + + # Create proper genai_types.Part objects instead of mocks + mock_genai_part1 = genai_types.Part(text="test part 1") + mock_genai_part2 = genai_types.Part(text="test part 2") + mock_convert_part.side_effect = [mock_genai_part1, mock_genai_part2] + + # Act + result = convert_a2a_request_to_adk_run_args(request) + + # Assert + assert result is not None + assert result["user_id"] == "test_user" + assert result["session_id"] == "test_context_123" + assert isinstance(result["new_message"], genai_types.Content) + assert result["new_message"].role == "user" + assert result["new_message"].parts == [mock_genai_part1, mock_genai_part2] + assert isinstance(result["run_config"], RunConfig) + + # Verify calls + assert mock_convert_part.call_count == 2 + mock_convert_part.assert_any_call(mock_part1) + mock_convert_part.assert_any_call(mock_part2) + + def test_convert_a2a_request_no_message_raises_error(self): + """Test that conversion raises ValueError when message is None.""" + # Arrange + request = Mock(spec=RequestContext) + request.message = None + + # Act & Assert + with pytest.raises(ValueError, match="Request message cannot be None"): + convert_a2a_request_to_adk_run_args(request) + + @patch( + "google.adk.a2a.converters.request_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_request_empty_parts(self, mock_convert_part): + """Test conversion with empty parts list.""" + # Arrange + mock_message = Mock() + mock_message.parts = [] + + request = Mock(spec=RequestContext) + request.message = mock_message + request.context_id = "test_context_123" + request.call_context = None + + # Act + result = convert_a2a_request_to_adk_run_args(request) + + # Assert + assert result is not None + assert result["user_id"] == "A2A_USER_test_context_123" + assert result["session_id"] == "test_context_123" + assert isinstance(result["new_message"], genai_types.Content) + assert result["new_message"].role == "user" + assert result["new_message"].parts == [] + assert isinstance(result["run_config"], RunConfig) + + # Verify convert_part wasn't called + mock_convert_part.assert_not_called() + + @patch( + "google.adk.a2a.converters.request_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_request_none_context_id(self, mock_convert_part): + """Test conversion when context_id is None.""" + # Arrange + mock_part = Mock() + mock_message = Mock() + mock_message.parts = [mock_part] + + request = Mock(spec=RequestContext) + request.message = mock_message + request.context_id = None + request.call_context = None + + # Create proper genai_types.Part object instead of mock + mock_genai_part = genai_types.Part(text="test part") + mock_convert_part.return_value = mock_genai_part + + # Act + result = convert_a2a_request_to_adk_run_args(request) + + # Assert + assert result is not None + assert result["user_id"] == "A2A_USER_None" + assert result["session_id"] is None + assert isinstance(result["new_message"], genai_types.Content) + assert result["new_message"].role == "user" + assert result["new_message"].parts == [mock_genai_part] + assert isinstance(result["run_config"], RunConfig) + + @patch( + "google.adk.a2a.converters.request_converter.convert_a2a_part_to_genai_part" + ) + def test_convert_a2a_request_no_auth(self, mock_convert_part): + """Test conversion when no authentication is available.""" + # Arrange + mock_part = Mock() + mock_message = Mock() + mock_message.parts = [mock_part] + + request = Mock(spec=RequestContext) + request.message = mock_message + request.context_id = "session_123" + request.call_context = None + + # Create proper genai_types.Part object instead of mock + mock_genai_part = genai_types.Part(text="test part") + mock_convert_part.return_value = mock_genai_part + + # Act + result = convert_a2a_request_to_adk_run_args(request) + + # Assert + assert result is not None + assert result["user_id"] == "A2A_USER_session_123" + assert result["session_id"] == "session_123" + assert isinstance(result["new_message"], genai_types.Content) + assert result["new_message"].role == "user" + assert result["new_message"].parts == [mock_genai_part] + assert isinstance(result["run_config"], RunConfig) + + +class TestIntegration: + """Integration test cases combining both functions.""" + + @patch( + "google.adk.a2a.converters.request_converter.convert_a2a_part_to_genai_part" + ) + def test_end_to_end_conversion_with_auth_user(self, mock_convert_part): + """Test end-to-end conversion with authenticated user.""" + # Arrange + mock_user = Mock() + mock_user.user_name = "auth_user" + + mock_call_context = Mock() + mock_call_context.user = mock_user + + mock_part = Mock() + mock_message = Mock() + mock_message.parts = [mock_part] + + request = Mock(spec=RequestContext) + request.call_context = mock_call_context + request.message = mock_message + request.context_id = "mysession" + + # Create proper genai_types.Part object instead of mock + mock_genai_part = genai_types.Part(text="test part") + mock_convert_part.return_value = mock_genai_part + + # Act + result = convert_a2a_request_to_adk_run_args(request) + + # Assert + assert result is not None + assert result["user_id"] == "auth_user" # Should use authenticated user + assert result["session_id"] == "mysession" + assert isinstance(result["new_message"], genai_types.Content) + assert result["new_message"].role == "user" + assert result["new_message"].parts == [mock_genai_part] + assert isinstance(result["run_config"], RunConfig) + + @patch( + "google.adk.a2a.converters.request_converter.convert_a2a_part_to_genai_part" + ) + def test_end_to_end_conversion_with_fallback_user(self, mock_convert_part): + """Test end-to-end conversion with fallback user ID.""" + # Arrange + mock_part = Mock() + mock_message = Mock() + mock_message.parts = [mock_part] + + request = Mock(spec=RequestContext) + request.call_context = None + request.message = mock_message + request.context_id = "test_session_456" + + # Create proper genai_types.Part object instead of mock + mock_genai_part = genai_types.Part(text="test part") + mock_convert_part.return_value = mock_genai_part + + # Act + result = convert_a2a_request_to_adk_run_args(request) + + # Assert + assert result is not None + assert ( + result["user_id"] == "A2A_USER_test_session_456" + ) # Should fallback to context ID + assert result["session_id"] == "test_session_456" + assert isinstance(result["new_message"], genai_types.Content) + assert result["new_message"].role == "user" + assert result["new_message"].parts == [mock_genai_part] + assert isinstance(result["run_config"], RunConfig) diff --git a/tests/unittests/a2a/converters/test_utils.py b/tests/unittests/a2a/converters/test_utils.py new file mode 100644 index 000000000..f919cbd00 --- /dev/null +++ b/tests/unittests/a2a/converters/test_utils.py @@ -0,0 +1,213 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys + +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) + +from google.adk.a2a.converters.utils import _from_a2a_context_id +from google.adk.a2a.converters.utils import _get_adk_metadata_key +from google.adk.a2a.converters.utils import _to_a2a_context_id +from google.adk.a2a.converters.utils import ADK_CONTEXT_ID_PREFIX +from google.adk.a2a.converters.utils import ADK_METADATA_KEY_PREFIX +import pytest + + +class TestUtilsFunctions: + """Test suite for utils module functions.""" + + def test_get_adk_metadata_key_success(self): + """Test successful metadata key generation.""" + key = "test_key" + result = _get_adk_metadata_key(key) + assert result == f"{ADK_METADATA_KEY_PREFIX}{key}" + + def test_get_adk_metadata_key_empty_string(self): + """Test metadata key generation with empty string.""" + with pytest.raises( + ValueError, match="Metadata key cannot be empty or None" + ): + _get_adk_metadata_key("") + + def test_get_adk_metadata_key_none(self): + """Test metadata key generation with None.""" + with pytest.raises( + ValueError, match="Metadata key cannot be empty or None" + ): + _get_adk_metadata_key(None) + + def test_get_adk_metadata_key_whitespace(self): + """Test metadata key generation with whitespace string.""" + key = " " + result = _get_adk_metadata_key(key) + assert result == f"{ADK_METADATA_KEY_PREFIX}{key}" + + def test_to_a2a_context_id_success(self): + """Test successful context ID generation.""" + app_name = "test-app" + user_id = "test-user" + session_id = "test-session" + + result = _to_a2a_context_id(app_name, user_id, session_id) + + expected = f"{ADK_CONTEXT_ID_PREFIX}/test-app/test-user/test-session" + assert result == expected + + def test_to_a2a_context_id_empty_app_name(self): + """Test context ID generation with empty app name.""" + with pytest.raises( + ValueError, + match=( + "All parameters \\(app_name, user_id, session_id\\) must be" + " non-empty" + ), + ): + _to_a2a_context_id("", "user", "session") + + def test_to_a2a_context_id_empty_user_id(self): + """Test context ID generation with empty user ID.""" + with pytest.raises( + ValueError, + match=( + "All parameters \\(app_name, user_id, session_id\\) must be" + " non-empty" + ), + ): + _to_a2a_context_id("app", "", "session") + + def test_to_a2a_context_id_empty_session_id(self): + """Test context ID generation with empty session ID.""" + with pytest.raises( + ValueError, + match=( + "All parameters \\(app_name, user_id, session_id\\) must be" + " non-empty" + ), + ): + _to_a2a_context_id("app", "user", "") + + def test_to_a2a_context_id_none_values(self): + """Test context ID generation with None values.""" + with pytest.raises( + ValueError, + match=( + "All parameters \\(app_name, user_id, session_id\\) must be" + " non-empty" + ), + ): + _to_a2a_context_id(None, "user", "session") + + def test_to_a2a_context_id_special_characters(self): + """Test context ID generation with special characters.""" + app_name = "test-app@2024" + user_id = "user_123" + session_id = "session-456" + + result = _to_a2a_context_id(app_name, user_id, session_id) + + expected = f"{ADK_CONTEXT_ID_PREFIX}/test-app@2024/user_123/session-456" + assert result == expected + + def test_from_a2a_context_id_success(self): + """Test successful context ID parsing.""" + context_id = f"{ADK_CONTEXT_ID_PREFIX}/test-app/test-user/test-session" + + app_name, user_id, session_id = _from_a2a_context_id(context_id) + + assert app_name == "test-app" + assert user_id == "test-user" + assert session_id == "test-session" + + def test_from_a2a_context_id_none_input(self): + """Test context ID parsing with None input.""" + result = _from_a2a_context_id(None) + assert result == (None, None, None) + + def test_from_a2a_context_id_empty_string(self): + """Test context ID parsing with empty string.""" + result = _from_a2a_context_id("") + assert result == (None, None, None) + + def test_from_a2a_context_id_invalid_prefix(self): + """Test context ID parsing with invalid prefix.""" + context_id = "INVALID/test-app/test-user/test-session" + + result = _from_a2a_context_id(context_id) + + assert result == (None, None, None) + + def test_from_a2a_context_id_too_few_parts(self): + """Test context ID parsing with too few parts.""" + context_id = f"{ADK_CONTEXT_ID_PREFIX}/test-app/test-user" + + result = _from_a2a_context_id(context_id) + + assert result == (None, None, None) + + def test_from_a2a_context_id_too_many_parts(self): + """Test context ID parsing with too many parts.""" + context_id = ( + f"{ADK_CONTEXT_ID_PREFIX}/test-app/test-user/test-session/extra" + ) + + result = _from_a2a_context_id(context_id) + + assert result == (None, None, None) + + def test_from_a2a_context_id_empty_components(self): + """Test context ID parsing with empty components.""" + context_id = f"{ADK_CONTEXT_ID_PREFIX}//test-user/test-session" + + result = _from_a2a_context_id(context_id) + + assert result == (None, None, None) + + def test_from_a2a_context_id_no_dollar_separator(self): + """Test context ID parsing without dollar separators.""" + context_id = f"{ADK_CONTEXT_ID_PREFIX}-test-app-test-user-test-session" + + result = _from_a2a_context_id(context_id) + + assert result == (None, None, None) + + def test_roundtrip_context_id(self): + """Test roundtrip conversion: to -> from.""" + app_name = "test-app" + user_id = "test-user" + session_id = "test-session" + + # Convert to context ID + context_id = _to_a2a_context_id(app_name, user_id, session_id) + + # Convert back + parsed_app, parsed_user, parsed_session = _from_a2a_context_id(context_id) + + assert parsed_app == app_name + assert parsed_user == user_id + assert parsed_session == session_id + + def test_from_a2a_context_id_special_characters(self): + """Test context ID parsing with special characters.""" + context_id = f"{ADK_CONTEXT_ID_PREFIX}/test-app@2024/user_123/session-456" + + app_name, user_id, session_id = _from_a2a_context_id(context_id) + + assert app_name == "test-app@2024" + assert user_id == "user_123" + assert session_id == "session-456" diff --git a/tests/unittests/a2a/executor/__init__.py b/tests/unittests/a2a/executor/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/tests/unittests/a2a/executor/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/tests/unittests/a2a/executor/test_a2a_agent_executor.py b/tests/unittests/a2a/executor/test_a2a_agent_executor.py new file mode 100644 index 000000000..44d592fbc --- /dev/null +++ b/tests/unittests/a2a/executor/test_a2a_agent_executor.py @@ -0,0 +1,829 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from unittest.mock import AsyncMock +from unittest.mock import Mock +from unittest.mock import patch + +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A tool requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from a2a.server.agent_execution.context import RequestContext + from a2a.server.events.event_queue import EventQueue + from a2a.types import Message + from a2a.types import TaskState + from a2a.types import TextPart + from google.adk.a2a.executor.a2a_agent_executor import A2aAgentExecutor + from google.adk.a2a.executor.a2a_agent_executor import A2aAgentExecutorConfig + from google.adk.events.event import Event + from google.adk.runners import Runner +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyTypes: + pass + + RequestContext = DummyTypes() + EventQueue = DummyTypes() + Message = DummyTypes() + Role = DummyTypes() + TaskState = DummyTypes() + TaskStatus = DummyTypes() + TaskStatusUpdateEvent = DummyTypes() + TextPart = DummyTypes() + A2aAgentExecutor = DummyTypes() + A2aAgentExecutorConfig = DummyTypes() + Event = DummyTypes() + Runner = DummyTypes() + else: + raise e + + +class TestA2aAgentExecutor: + """Test suite for A2aAgentExecutor class.""" + + def setup_method(self): + """Set up test fixtures.""" + self.mock_runner = Mock(spec=Runner) + self.mock_runner.app_name = "test-app" + self.mock_runner.session_service = Mock() + self.mock_runner._new_invocation_context = Mock() + self.mock_runner.run_async = AsyncMock() + + self.mock_config = Mock(spec=A2aAgentExecutorConfig) + self.executor = A2aAgentExecutor( + runner=self.mock_runner, config=self.mock_config + ) + + self.mock_context = Mock(spec=RequestContext) + self.mock_context.message = Mock(spec=Message) + self.mock_context.message.parts = [Mock(spec=TextPart)] + self.mock_context.current_task = None + self.mock_context.task_id = "test-task-id" + self.mock_context.context_id = "test-context-id" + + self.mock_event_queue = Mock(spec=EventQueue) + + async def _create_async_generator(self, items): + """Helper to create async generator from items.""" + for item in items: + yield item + + @pytest.mark.asyncio + async def test_execute_success_new_task(self): + """Test successful execution of a new task.""" + # Setup + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [] + + # Execute + await self.executor.execute(self.mock_context, self.mock_event_queue) + + # Verify task submitted event was enqueued + assert self.mock_event_queue.enqueue_event.call_count >= 3 + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ + 0 + ][0] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Verify working event was enqueued + working_event = self.mock_event_queue.enqueue_event.call_args_list[1][ + 0 + ][0] + assert working_event.status.state == TaskState.working + assert working_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ + 0 + ] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), so final state should be completed + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.completed + + @pytest.mark.asyncio + async def test_execute_no_message_error(self): + """Test execution fails when no message is provided.""" + self.mock_context.message = None + + with pytest.raises(ValueError, match="A2A request must have a message"): + await self.executor.execute(self.mock_context, self.mock_event_queue) + + @pytest.mark.asyncio + async def test_execute_existing_task(self): + """Test execution with existing task (no submitted event).""" + self.mock_context.current_task = Mock() + self.mock_context.task_id = "existing-task-id" + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [] + + # Execute + await self.executor.execute(self.mock_context, self.mock_event_queue) + + # Verify no submitted event (first call should be working event) + working_event = self.mock_event_queue.enqueue_event.call_args_list[0][ + 0 + ][0] + assert working_event.status.state == TaskState.working + assert working_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ + 0 + ] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), so final state should be completed + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.completed + + @pytest.mark.asyncio + async def test_prepare_session_new_session(self): + """Test session preparation when session doesn't exist.""" + run_args = { + "user_id": "test-user", + "session_id": None, + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + self.mock_runner.session_service.get_session = AsyncMock(return_value=None) + mock_session = Mock() + mock_session.id = "new-session-id" + self.mock_runner.session_service.create_session = AsyncMock( + return_value=mock_session + ) + + # Execute + result = await self.executor._prepare_session( + self.mock_context, run_args, self.mock_runner + ) + + # Verify session was created + assert result == mock_session + assert run_args["session_id"] is not None + self.mock_runner.session_service.create_session.assert_called_once() + + @pytest.mark.asyncio + async def test_prepare_session_existing_session(self): + """Test session preparation when session exists.""" + run_args = { + "user_id": "test-user", + "session_id": "existing-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "existing-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Execute + result = await self.executor._prepare_session( + self.mock_context, run_args, self.mock_runner + ) + + # Verify existing session was returned + assert result == mock_session + self.mock_runner.session_service.create_session.assert_not_called() + + def test_constructor_with_callable_runner(self): + """Test constructor with callable runner.""" + callable_runner = Mock() + executor = A2aAgentExecutor(runner=callable_runner, config=self.mock_config) + + assert executor._runner == callable_runner + assert executor._config == self.mock_config + + @pytest.mark.asyncio + async def test_resolve_runner_direct_instance(self): + """Test _resolve_runner with direct Runner instance.""" + # Setup - already using direct runner instance in setup_method + runner = await self.executor._resolve_runner() + assert runner == self.mock_runner + + @pytest.mark.asyncio + async def test_resolve_runner_sync_callable(self): + """Test _resolve_runner with sync callable that returns Runner.""" + + def create_runner(): + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + runner = await executor._resolve_runner() + assert runner == self.mock_runner + + @pytest.mark.asyncio + async def test_resolve_runner_async_callable(self): + """Test _resolve_runner with async callable that returns Runner.""" + + async def create_runner(): + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + runner = await executor._resolve_runner() + assert runner == self.mock_runner + + @pytest.mark.asyncio + async def test_resolve_runner_invalid_type(self): + """Test _resolve_runner with invalid runner type.""" + executor = A2aAgentExecutor(runner="invalid", config=self.mock_config) + + with pytest.raises( + TypeError, match="Runner must be a Runner instance or a callable" + ): + await executor._resolve_runner() + + @pytest.mark.asyncio + async def test_resolve_runner_callable_with_parameters(self): + """Test _resolve_runner with callable that normally takes parameters.""" + + def create_runner(*args, **kwargs): + # In real usage, this might use the args/kwargs to configure the runner + # For testing, we'll just return the mock runner + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + runner = await executor._resolve_runner() + assert runner == self.mock_runner + + @pytest.mark.asyncio + async def test_resolve_runner_caching(self): + """Test that _resolve_runner caches the result and doesn't call the callable multiple times.""" + call_count = 0 + + def create_runner(): + nonlocal call_count + call_count += 1 + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + + # First call should invoke the callable + runner1 = await executor._resolve_runner() + assert runner1 == self.mock_runner + assert call_count == 1 + + # Second call should return cached result, not invoke callable again + runner2 = await executor._resolve_runner() + assert runner2 == self.mock_runner + assert runner1 is runner2 # Same instance + assert call_count == 1 # Callable was not called again + + # Verify that self._runner is now the resolved Runner instance + assert executor._runner is self.mock_runner + + @pytest.mark.asyncio + async def test_resolve_runner_async_caching(self): + """Test that _resolve_runner caches async callable results correctly.""" + call_count = 0 + + async def create_runner(): + nonlocal call_count + call_count += 1 + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + + # First call should invoke the async callable + runner1 = await executor._resolve_runner() + assert runner1 == self.mock_runner + assert call_count == 1 + + # Second call should return cached result, not invoke callable again + runner2 = await executor._resolve_runner() + assert runner2 == self.mock_runner + assert runner1 is runner2 # Same instance + assert call_count == 1 # Async callable was not called again + + # Verify that self._runner is now the resolved Runner instance + assert executor._runner is self.mock_runner + + @pytest.mark.asyncio + async def test_execute_with_sync_callable_runner(self): + """Test execution with sync callable runner.""" + + def create_runner(): + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) + + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [] + + # Execute + await executor.execute(self.mock_context, self.mock_event_queue) + + # Verify task submitted event was enqueued + assert self.mock_event_queue.enqueue_event.call_count >= 3 + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ + 0 + ][0] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ + 0 + ] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), so final state should be completed + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.completed + + @pytest.mark.asyncio + async def test_execute_with_async_callable_runner(self): + """Test execution with async callable runner.""" + + async def create_runner(): + return self.mock_runner + + executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) + + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [] + + # Execute + await executor.execute(self.mock_context, self.mock_event_queue) + + # Verify task submitted event was enqueued + assert self.mock_event_queue.enqueue_event.call_count >= 3 + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ + 0 + ][0] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ + 0 + ] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), so final state should be completed + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.completed + + @pytest.mark.asyncio + async def test_handle_request_integration(self): + """Test the complete request handling flow.""" + # Setup context with task_id + self.mock_context.task_id = "test-task-id" + + # Setup detailed mocks + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [Mock()] + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + mock_aggregator.task_state = TaskState.working + # Mock the task_status_message property to return None by default + mock_aggregator.task_status_message = None + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue + ) + + # Verify working event was enqueued + working_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "status") + and call[0][0].status.state == TaskState.working + ] + assert len(working_events) >= 1 + + # Verify aggregator processed events + assert mock_aggregator.process_event.call_count == len(mock_events) + + # Verify final event has message field from aggregator and state is completed when aggregator state is working + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert ( + final_event.status.message == mock_aggregator.task_status_message + ) + # When aggregator state is working, final event should be completed + assert final_event.status.state == TaskState.completed + + @pytest.mark.asyncio + async def test_cancel_with_task_id(self): + """Test cancellation with a task ID.""" + self.mock_context.task_id = "test-task-id" + + # The current implementation raises NotImplementedError + with pytest.raises( + NotImplementedError, match="Cancellation is not supported" + ): + await self.executor.cancel(self.mock_context, self.mock_event_queue) + + @pytest.mark.asyncio + async def test_cancel_without_task_id(self): + """Test cancellation without a task ID.""" + self.mock_context.task_id = None + + # The current implementation raises NotImplementedError regardless of task_id + with pytest.raises( + NotImplementedError, match="Cancellation is not supported" + ): + await self.executor.cancel(self.mock_context, self.mock_event_queue) + + @pytest.mark.asyncio + async def test_execute_with_exception_handling(self): + """Test execution with exception handling.""" + self.mock_context.task_id = "test-task-id" + self.mock_context.current_task = ( + None # Make sure it goes through submitted event creation + ) + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.side_effect = Exception("Test error") + + # Execute (should not raise since we catch the exception) + await self.executor.execute(self.mock_context, self.mock_event_queue) + + # Verify both submitted and failure events were enqueued + # First call should be submitted event, last should be failure event + assert self.mock_event_queue.enqueue_event.call_count >= 2 + + # Check submitted event (first) + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ + 0 + ][0] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Check failure event (last) + failure_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ + 0 + ] + assert failure_event.status.state == TaskState.failed + assert failure_event.final == True + + @pytest.mark.asyncio + async def test_handle_request_with_aggregator_message(self): + """Test that the final task status event includes message from aggregator.""" + # Setup context with task_id + self.mock_context.task_id = "test-task-id" + + # Create a test message to be returned by the aggregator + from a2a.types import Message + from a2a.types import Role + from a2a.types import TextPart + + test_message = Mock(spec=Message) + test_message.messageId = "test-message-id" + test_message.role = Role.agent + test_message.parts = [Mock(spec=TextPart)] + + # Setup detailed mocks + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [Mock()] + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + mock_aggregator.task_state = TaskState.completed + # Mock the task_status_message property to return a test message + mock_aggregator.task_status_message = test_message + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue + ) + + # Verify final event has message field from aggregator + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.message == test_message + assert final_event.status.state == TaskState.completed + + @pytest.mark.asyncio + async def test_handle_request_with_non_working_aggregator_state(self): + """Test that when aggregator state is not working, it preserves the original state.""" + # Setup context with task_id + self.mock_context.task_id = "test-task-id" + + # Create a test message to be returned by the aggregator + from a2a.types import Message + from a2a.types import Role + from a2a.types import TextPart + + test_message = Mock(spec=Message) + test_message.messageId = "test-message-id" + test_message.role = Role.agent + test_message.parts = [Mock(spec=TextPart)] + + # Setup detailed mocks + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" + ) as mock_convert: + mock_convert.return_value = { + "user_id": "test-user", + "session_id": "test-session", + "new_message": Mock(), + "run_config": Mock(), + } + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" + ) as mock_convert_events: + mock_convert_events.return_value = [Mock()] + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + # Test with failed state - should preserve failed state + mock_aggregator.task_state = TaskState.failed + mock_aggregator.task_status_message = test_message + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue + ) + + # Verify final event preserves the non-working state + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.message == test_message + # When aggregator state is failed (not working), final event should keep failed state + assert final_event.status.state == TaskState.failed diff --git a/tests/unittests/a2a/executor/test_task_result_aggregator.py b/tests/unittests/a2a/executor/test_task_result_aggregator.py new file mode 100644 index 000000000..b808cf0cf --- /dev/null +++ b/tests/unittests/a2a/executor/test_task_result_aggregator.py @@ -0,0 +1,337 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from unittest.mock import Mock + +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from a2a.types import Message + from a2a.types import Part + from a2a.types import Role + from a2a.types import TaskState + from a2a.types import TaskStatus + from a2a.types import TaskStatusUpdateEvent + from a2a.types import TextPart + from google.adk.a2a.executor.task_result_aggregator import TaskResultAggregator +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyTypes: + pass + + TaskState = DummyTypes() + TaskStatus = DummyTypes() + TaskStatusUpdateEvent = DummyTypes() + TaskResultAggregator = DummyTypes() + else: + raise e + + +def create_test_message(text: str) -> Message: + """Helper function to create a test Message object.""" + return Message( + messageId="test-msg", + role=Role.agent, + parts=[Part(root=TextPart(text=text))], + ) + + +class TestTaskResultAggregator: + """Test suite for TaskResultAggregator class.""" + + def setup_method(self): + """Set up test fixtures.""" + self.aggregator = TaskResultAggregator() + + def test_initial_state(self): + """Test the initial state of the aggregator.""" + assert self.aggregator.task_state == TaskState.working + assert self.aggregator.task_status_message is None + + def test_process_failed_event(self): + """Test processing a failed event.""" + status_message = create_test_message("Failed to process") + event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.failed, message=status_message), + final=True, + ) + + self.aggregator.process_event(event) + assert self.aggregator.task_state == TaskState.failed + assert self.aggregator.task_status_message == status_message + # Verify the event state was modified to working + assert event.status.state == TaskState.working + + def test_process_auth_required_event(self): + """Test processing an auth_required event.""" + status_message = create_test_message("Authentication needed") + event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus( + state=TaskState.auth_required, message=status_message + ), + final=False, + ) + + self.aggregator.process_event(event) + assert self.aggregator.task_state == TaskState.auth_required + assert self.aggregator.task_status_message == status_message + # Verify the event state was modified to working + assert event.status.state == TaskState.working + + def test_process_input_required_event(self): + """Test processing an input_required event.""" + status_message = create_test_message("Input required") + event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus( + state=TaskState.input_required, message=status_message + ), + final=False, + ) + + self.aggregator.process_event(event) + assert self.aggregator.task_state == TaskState.input_required + assert self.aggregator.task_status_message == status_message + # Verify the event state was modified to working + assert event.status.state == TaskState.working + + def test_status_message_with_none_message(self): + """Test that status message handles None message properly.""" + event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.failed, message=None), + final=True, + ) + + self.aggregator.process_event(event) + assert self.aggregator.task_state == TaskState.failed + assert self.aggregator.task_status_message is None + + def test_priority_order_failed_over_auth(self): + """Test that failed state takes priority over auth_required.""" + # First set auth_required + auth_message = create_test_message("Auth required") + auth_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.auth_required, message=auth_message), + final=False, + ) + self.aggregator.process_event(auth_event) + assert self.aggregator.task_state == TaskState.auth_required + assert self.aggregator.task_status_message == auth_message + + # Then process failed - should override + failed_message = create_test_message("Failed") + failed_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.failed, message=failed_message), + final=True, + ) + self.aggregator.process_event(failed_event) + assert self.aggregator.task_state == TaskState.failed + assert self.aggregator.task_status_message == failed_message + + def test_priority_order_auth_over_input(self): + """Test that auth_required state takes priority over input_required.""" + # First set input_required + input_message = create_test_message("Input needed") + input_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus( + state=TaskState.input_required, message=input_message + ), + final=False, + ) + self.aggregator.process_event(input_event) + assert self.aggregator.task_state == TaskState.input_required + assert self.aggregator.task_status_message == input_message + + # Then process auth_required - should override + auth_message = create_test_message("Auth needed") + auth_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.auth_required, message=auth_message), + final=False, + ) + self.aggregator.process_event(auth_event) + assert self.aggregator.task_state == TaskState.auth_required + assert self.aggregator.task_status_message == auth_message + + def test_ignore_non_status_update_events(self): + """Test that non-TaskStatusUpdateEvent events are ignored.""" + mock_event = Mock() + + initial_state = self.aggregator.task_state + initial_message = self.aggregator.task_status_message + self.aggregator.process_event(mock_event) + + # State should remain unchanged + assert self.aggregator.task_state == initial_state + assert self.aggregator.task_status_message == initial_message + + def test_working_state_does_not_override_higher_priority(self): + """Test that working state doesn't override higher priority states.""" + # First set failed state + failed_message = create_test_message("Failure message") + failed_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.failed, message=failed_message), + final=True, + ) + self.aggregator.process_event(failed_event) + assert self.aggregator.task_state == TaskState.failed + assert self.aggregator.task_status_message == failed_message + + # Then process working - should not override state and should not update message + # because the current task state is not working + working_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.working), + final=False, + ) + self.aggregator.process_event(working_event) + assert self.aggregator.task_state == TaskState.failed + # Working events don't update the status message when task state is not working + assert self.aggregator.task_status_message == failed_message + + def test_status_message_priority_ordering(self): + """Test that status messages follow the same priority ordering as states.""" + # Start with input_required + input_message = create_test_message("Input message") + input_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus( + state=TaskState.input_required, message=input_message + ), + final=False, + ) + self.aggregator.process_event(input_event) + assert self.aggregator.task_status_message == input_message + + # Override with auth_required + auth_message = create_test_message("Auth message") + auth_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.auth_required, message=auth_message), + final=False, + ) + self.aggregator.process_event(auth_event) + assert self.aggregator.task_status_message == auth_message + + # Override with failed + failed_message = create_test_message("Failed message") + failed_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.failed, message=failed_message), + final=True, + ) + self.aggregator.process_event(failed_event) + assert self.aggregator.task_status_message == failed_message + + # Working should not override failed message because current task state is failed + working_message = create_test_message("Working message") + working_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.working, message=working_message), + final=False, + ) + self.aggregator.process_event(working_event) + # State should still be failed, and message should remain the failed message + # because working events only update message when task state is working + assert self.aggregator.task_state == TaskState.failed + assert self.aggregator.task_status_message == failed_message + + def test_process_working_event_updates_message(self): + """Test that working state events update the status message.""" + working_message = create_test_message("Working on task") + event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.working, message=working_message), + final=False, + ) + + self.aggregator.process_event(event) + assert self.aggregator.task_state == TaskState.working + assert self.aggregator.task_status_message == working_message + # Verify the event state was modified to working (should remain working) + assert event.status.state == TaskState.working + + def test_working_event_with_none_message(self): + """Test that working state events handle None message properly.""" + event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.working, message=None), + final=False, + ) + + self.aggregator.process_event(event) + assert self.aggregator.task_state == TaskState.working + assert self.aggregator.task_status_message is None + + def test_working_event_updates_message_regardless_of_state(self): + """Test that working events update message only when current task state is working.""" + # First set auth_required state + auth_message = create_test_message("Auth required") + auth_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.auth_required, message=auth_message), + final=False, + ) + self.aggregator.process_event(auth_event) + assert self.aggregator.task_state == TaskState.auth_required + assert self.aggregator.task_status_message == auth_message + + # Then process working - should not update message because task state is not working + working_message = create_test_message("Working on auth") + working_event = TaskStatusUpdateEvent( + taskId="test-task", + contextId="test-context", + status=TaskStatus(state=TaskState.working, message=working_message), + final=False, + ) + self.aggregator.process_event(working_event) + assert ( + self.aggregator.task_state == TaskState.auth_required + ) # State unchanged + assert ( + self.aggregator.task_status_message == auth_message + ) # Message unchanged because task state is not working diff --git a/tests/unittests/a2a/logs/__init__.py b/tests/unittests/a2a/logs/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/tests/unittests/a2a/logs/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/tests/unittests/a2a/logs/test_log_utils.py b/tests/unittests/a2a/logs/test_log_utils.py new file mode 100644 index 000000000..4a02a137f --- /dev/null +++ b/tests/unittests/a2a/logs/test_log_utils.py @@ -0,0 +1,505 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for log_utils module.""" + +import json +from unittest.mock import Mock +from unittest.mock import patch + +import pytest + +# Import the actual A2A types that we need to mock +try: + from a2a.types import DataPart as A2ADataPart + from a2a.types import Message as A2AMessage + from a2a.types import Part as A2APart + from a2a.types import Role + from a2a.types import Task as A2ATask + from a2a.types import TaskState + from a2a.types import TaskStatus + from a2a.types import TextPart as A2ATextPart + + A2A_AVAILABLE = True +except ImportError: + A2A_AVAILABLE = False + + +class TestBuildMessagePartLog: + """Test suite for build_message_part_log function.""" + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_text_part_short_text(self): + """Test TextPart with short text.""" + # Import here to avoid import issues at module level + from google.adk.a2a.logs.log_utils import build_message_part_log + + # Create real A2A objects + text_part = A2ATextPart(text="Hello, world!") + part = A2APart(root=text_part) + + result = build_message_part_log(part) + + assert result == "TextPart: Hello, world!" + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_text_part_long_text(self): + """Test TextPart with long text that gets truncated.""" + from google.adk.a2a.logs.log_utils import build_message_part_log + + long_text = "x" * 150 # Long text that should be truncated + text_part = A2ATextPart(text=long_text) + part = A2APart(root=text_part) + + result = build_message_part_log(part) + + expected = f"TextPart: {'x' * 100}..." + assert result == expected + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_data_part_simple_data(self): + """Test DataPart with simple data.""" + from google.adk.a2a.logs.log_utils import build_message_part_log + + data_part = A2ADataPart(data={"key1": "value1", "key2": 42}) + part = A2APart(root=data_part) + + result = build_message_part_log(part) + + expected_data = {"key1": "value1", "key2": 42} + expected = f"DataPart: {json.dumps(expected_data, indent=2)}" + assert result == expected + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_data_part_large_values(self): + """Test DataPart with large values that get summarized.""" + from google.adk.a2a.logs.log_utils import build_message_part_log + + large_dict = {f"key{i}": f"value{i}" for i in range(50)} + large_list = list(range(100)) + + data_part = A2ADataPart( + data={ + "small_value": "hello", + "large_dict": large_dict, + "large_list": large_list, + "normal_int": 42, + } + ) + part = A2APart(root=data_part) + + result = build_message_part_log(part) + + # Large values should be replaced with type names + assert "small_value" in result + assert "hello" in result + assert "" in result + assert "" in result + assert "normal_int" in result + assert "42" in result + + def test_other_part_type(self): + """Test handling of other part types (not Text or Data).""" + from google.adk.a2a.logs.log_utils import build_message_part_log + + # Create a mock part that will fall through to the else case + mock_root = Mock() + mock_root.__class__.__name__ = "MockOtherPart" + # Ensure metadata attribute doesn't exist or returns None to avoid JSON serialization issues + mock_root.metadata = None + + mock_part = Mock() + mock_part.root = mock_root + mock_part.model_dump_json.return_value = '{"some": "data"}' + + result = build_message_part_log(mock_part) + + expected = 'MockOtherPart: {"some": "data"}' + assert result == expected + + +class TestBuildA2ARequestLog: + """Test suite for build_a2a_request_log function.""" + + def test_request_with_parts_and_config(self): + """Test request logging with message parts and configuration.""" + from google.adk.a2a.logs.log_utils import build_a2a_request_log + + # Create mock request with all components + req = Mock() + req.id = "req-123" + req.method = "sendMessage" + req.jsonrpc = "2.0" + + # Mock message + req.params.message.messageId = "msg-456" + req.params.message.role = "user" + req.params.message.taskId = "task-789" + req.params.message.contextId = "ctx-101" + + # Mock message parts - use simple mocks since the function will call build_message_part_log + part1 = Mock() + part2 = Mock() + req.params.message.parts = [part1, part2] + + # Mock configuration + req.params.configuration.acceptedOutputModes = ["text", "image"] + req.params.configuration.blocking = True + req.params.configuration.historyLength = 10 + req.params.configuration.pushNotificationConfig = Mock() # Non-None + + # Mock metadata + req.params.metadata = {"key1": "value1"} + # Mock message metadata to avoid JSON serialization issues + req.params.message.metadata = {"msg_key": "msg_value"} + + with patch( + "google.adk.a2a.logs.log_utils.build_message_part_log" + ) as mock_build_part: + mock_build_part.side_effect = lambda part: f"Mock part: {id(part)}" + + result = build_a2a_request_log(req) + + # Verify all components are present + assert "req-123" in result + assert "sendMessage" in result + assert "2.0" in result + assert "msg-456" in result + assert "user" in result + assert "task-789" in result + assert "ctx-101" in result + assert "Part 0:" in result + assert "Part 1:" in result + assert '"blocking": true' in result + assert '"historyLength": 10' in result + assert '"key1": "value1"' in result + + def test_request_without_parts(self): + """Test request logging without message parts.""" + from google.adk.a2a.logs.log_utils import build_a2a_request_log + + req = Mock() + req.id = "req-123" + req.method = "sendMessage" + req.jsonrpc = "2.0" + + req.params.message.messageId = "msg-456" + req.params.message.role = "user" + req.params.message.taskId = "task-789" + req.params.message.contextId = "ctx-101" + req.params.message.parts = None # No parts + req.params.message.metadata = None # No message metadata + + req.params.configuration = None # No configuration + req.params.metadata = None # No metadata + + result = build_a2a_request_log(req) + + assert "No parts" in result + assert "Configuration:\nNone" in result + # When metadata is None, it's not included in the output + assert "Metadata:" not in result + + def test_request_with_empty_parts_list(self): + """Test request logging with empty parts list.""" + from google.adk.a2a.logs.log_utils import build_a2a_request_log + + req = Mock() + req.id = "req-123" + req.method = "sendMessage" + req.jsonrpc = "2.0" + + req.params.message.messageId = "msg-456" + req.params.message.role = "user" + req.params.message.taskId = "task-789" + req.params.message.contextId = "ctx-101" + req.params.message.parts = [] # Empty parts list + req.params.message.metadata = None # No message metadata + + req.params.configuration = None + req.params.metadata = None + + result = build_a2a_request_log(req) + + assert "No parts" in result + + +class TestBuildA2AResponseLog: + """Test suite for build_a2a_response_log function.""" + + def test_error_response(self): + """Test error response logging.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + resp = Mock() + resp.root.error.code = 500 + resp.root.error.message = "Internal Server Error" + resp.root.error.data = {"details": "Something went wrong"} + resp.root.id = "resp-error" + resp.root.jsonrpc = "2.0" + + result = build_a2a_response_log(resp) + + assert "Type: ERROR" in result + assert "Error Code: 500" in result + assert "Internal Server Error" in result + assert '"details": "Something went wrong"' in result + assert "resp-error" in result + assert "2.0" in result + + def test_error_response_no_data(self): + """Test error response logging without error data.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + resp = Mock() + resp.root.error.code = 404 + resp.root.error.message = "Not Found" + resp.root.error.data = None + resp.root.id = "resp-404" + resp.root.jsonrpc = "2.0" + + result = build_a2a_response_log(resp) + + assert "Type: ERROR" in result + assert "Error Code: 404" in result + assert "Not Found" in result + assert "Error Data: None" in result + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_success_response_with_task(self): + """Test success response logging with Task result.""" + # Use module-level imported types consistently + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + task_status = TaskStatus(state=TaskState.working) + task = A2ATask(id="task-123", contextId="ctx-456", status=task_status) + + resp = Mock() + resp.root.result = task + resp.root.id = "resp-789" + resp.root.jsonrpc = "2.0" + + # Remove error attribute to ensure success path + delattr(resp.root, "error") + + result = build_a2a_response_log(resp) + + assert "Type: SUCCESS" in result + assert "Result Type: Task" in result + assert "Task ID: task-123" in result + assert "Context ID: ctx-456" in result + # Handle both structured format and JSON fallback due to potential isinstance failures + assert ( + "Status State: TaskState.working" in result + or "Status State: working" in result + or '"state":"working"' in result + or '"state": "working"' in result + ) + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_success_response_with_task_and_status_message(self): + """Test success response with Task that has status message.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + # Create status message using module-level imported types + status_message = A2AMessage( + messageId="status-msg-123", + role=Role.agent, + parts=[ + A2APart(root=A2ATextPart(text="Status part 1")), + A2APart(root=A2ATextPart(text="Status part 2")), + ], + ) + + task_status = TaskStatus(state=TaskState.working, message=status_message) + task = A2ATask( + id="task-123", + contextId="ctx-456", + status=task_status, + history=[], + artifacts=None, + ) + + resp = Mock() + resp.root.result = task + resp.root.id = "resp-789" + resp.root.jsonrpc = "2.0" + + # Remove error attribute to ensure success path + delattr(resp.root, "error") + + result = build_a2a_response_log(resp) + + assert "ID: status-msg-123" in result + # Handle both structured format and JSON fallback + assert ( + "Role: Role.agent" in result + or "Role: agent" in result + or '"role":"agent"' in result + or '"role": "agent"' in result + ) + assert "Message Parts:" in result + + @pytest.mark.skipif(not A2A_AVAILABLE, reason="A2A types not available") + def test_success_response_with_message(self): + """Test success response logging with Message result.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + # Use module-level imported types consistently + message = A2AMessage( + messageId="msg-123", + role=Role.agent, + taskId="task-456", + contextId="ctx-789", + parts=[A2APart(root=A2ATextPart(text="Message part 1"))], + ) + + resp = Mock() + resp.root.result = message + resp.root.id = "resp-101" + resp.root.jsonrpc = "2.0" + + # Remove error attribute to ensure success path + delattr(resp.root, "error") + + result = build_a2a_response_log(resp) + + assert "Type: SUCCESS" in result + assert "Result Type: Message" in result + assert "Message ID: msg-123" in result + # Handle both structured format and JSON fallback + assert ( + "Role: Role.agent" in result + or "Role: agent" in result + or '"role":"agent"' in result + or '"role": "agent"' in result + ) + assert "Task ID: task-456" in result + assert "Context ID: ctx-789" in result + + def test_success_response_with_message_no_parts(self): + """Test success response with Message that has no parts.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + # Use mock for this case since we want to test empty parts handling + message = Mock() + message.__class__.__name__ = "Message" + message.messageId = "msg-empty" + message.role = "agent" + message.taskId = "task-empty" + message.contextId = "ctx-empty" + message.parts = None # No parts + message.model_dump_json.return_value = '{"message": "empty"}' + + resp = Mock() + resp.root.result = message + resp.root.id = "resp-empty" + resp.root.jsonrpc = "2.0" + + # Remove error attribute to ensure success path + delattr(resp.root, "error") + + result = build_a2a_response_log(resp) + + assert "Type: SUCCESS" in result + assert "Result Type: Message" in result + + def test_success_response_with_other_result_type(self): + """Test success response with result type that's not Task or Message.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + other_result = Mock() + other_result.__class__.__name__ = "OtherResult" + other_result.model_dump_json.return_value = '{"other": "data"}' + + resp = Mock() + resp.root.result = other_result + resp.root.id = "resp-other" + resp.root.jsonrpc = "2.0" + + # Remove error attribute to ensure success path + delattr(resp.root, "error") + + result = build_a2a_response_log(resp) + + assert "Type: SUCCESS" in result + assert "Result Type: OtherResult" in result + assert "JSON Data:" in result + assert '"other": "data"' in result + + def test_success_response_without_model_dump_json(self): + """Test success response with result that doesn't have model_dump_json.""" + from google.adk.a2a.logs.log_utils import build_a2a_response_log + + other_result = Mock() + other_result.__class__.__name__ = "SimpleResult" + # Don't add model_dump_json method + del other_result.model_dump_json + + resp = Mock() + resp.root.result = other_result + resp.root.id = "resp-simple" + resp.root.jsonrpc = "2.0" + + # Remove error attribute to ensure success path + delattr(resp.root, "error") + + result = build_a2a_response_log(resp) + + assert "Type: SUCCESS" in result + assert "Result Type: SimpleResult" in result + + def test_build_message_part_log_with_metadata(self): + """Test build_message_part_log with metadata in the part.""" + from google.adk.a2a.logs.log_utils import build_message_part_log + + mock_root = Mock() + mock_root.__class__.__name__ = "MockPartWithMetadata" + mock_root.metadata = {"key": "value", "nested": {"data": "test"}} + + mock_part = Mock() + mock_part.root = mock_root + mock_part.model_dump_json.return_value = '{"content": "test"}' + + result = build_message_part_log(mock_part) + + assert "MockPartWithMetadata:" in result + assert "Part Metadata:" in result + assert '"key": "value"' in result + assert '"nested"' in result + + def test_build_a2a_request_log_with_message_metadata(self): + """Test request logging with message metadata.""" + from google.adk.a2a.logs.log_utils import build_a2a_request_log + + req = Mock() + req.id = "req-with-metadata" + req.method = "sendMessage" + req.jsonrpc = "2.0" + + req.params.message.messageId = "msg-with-metadata" + req.params.message.role = "user" + req.params.message.taskId = "task-metadata" + req.params.message.contextId = "ctx-metadata" + req.params.message.parts = [] + req.params.message.metadata = {"msg_type": "test", "priority": "high"} + + req.params.configuration = None + req.params.metadata = None + + result = build_a2a_request_log(req) + + assert "Metadata:" in result + assert '"msg_type": "test"' in result + assert '"priority": "high"' in result diff --git a/tests/unittests/agents/test_llm_agent_include_contents.py b/tests/unittests/agents/test_llm_agent_include_contents.py new file mode 100644 index 000000000..d4d76cf4e --- /dev/null +++ b/tests/unittests/agents/test_llm_agent_include_contents.py @@ -0,0 +1,242 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Unit tests for LlmAgent include_contents field behavior.""" + +from google.adk.agents.llm_agent import LlmAgent +from google.adk.agents.sequential_agent import SequentialAgent +from google.genai import types +import pytest + +from .. import testing_utils + + +@pytest.mark.asyncio +async def test_include_contents_default_behavior(): + """Test that include_contents='default' preserves conversation history including tool interactions.""" + + def simple_tool(message: str) -> dict: + return {"result": f"Tool processed: {message}"} + + mock_model = testing_utils.MockModel.create( + responses=[ + types.Part.from_function_call( + name="simple_tool", args={"message": "first"} + ), + "First response", + types.Part.from_function_call( + name="simple_tool", args={"message": "second"} + ), + "Second response", + ] + ) + + agent = LlmAgent( + name="test_agent", + model=mock_model, + include_contents="default", + instruction="You are a helpful assistant", + tools=[simple_tool], + ) + + runner = testing_utils.InMemoryRunner(agent) + runner.run("First message") + runner.run("Second message") + + # First turn requests + assert testing_utils.simplify_contents(mock_model.requests[0].contents) == [ + ("user", "First message") + ] + + assert testing_utils.simplify_contents(mock_model.requests[1].contents) == [ + ("user", "First message"), + ( + "model", + types.Part.from_function_call( + name="simple_tool", args={"message": "first"} + ), + ), + ( + "user", + types.Part.from_function_response( + name="simple_tool", response={"result": "Tool processed: first"} + ), + ), + ] + + # Second turn should include full conversation history + assert testing_utils.simplify_contents(mock_model.requests[2].contents) == [ + ("user", "First message"), + ( + "model", + types.Part.from_function_call( + name="simple_tool", args={"message": "first"} + ), + ), + ( + "user", + types.Part.from_function_response( + name="simple_tool", response={"result": "Tool processed: first"} + ), + ), + ("model", "First response"), + ("user", "Second message"), + ] + + # Second turn with tool should include full history + current tool interaction + assert testing_utils.simplify_contents(mock_model.requests[3].contents) == [ + ("user", "First message"), + ( + "model", + types.Part.from_function_call( + name="simple_tool", args={"message": "first"} + ), + ), + ( + "user", + types.Part.from_function_response( + name="simple_tool", response={"result": "Tool processed: first"} + ), + ), + ("model", "First response"), + ("user", "Second message"), + ( + "model", + types.Part.from_function_call( + name="simple_tool", args={"message": "second"} + ), + ), + ( + "user", + types.Part.from_function_response( + name="simple_tool", response={"result": "Tool processed: second"} + ), + ), + ] + + +@pytest.mark.asyncio +async def test_include_contents_none_behavior(): + """Test that include_contents='none' excludes conversation history but includes current input.""" + + def simple_tool(message: str) -> dict: + return {"result": f"Tool processed: {message}"} + + mock_model = testing_utils.MockModel.create( + responses=[ + types.Part.from_function_call( + name="simple_tool", args={"message": "first"} + ), + "First response", + "Second response", + ] + ) + + agent = LlmAgent( + name="test_agent", + model=mock_model, + include_contents="none", + instruction="You are a helpful assistant", + tools=[simple_tool], + ) + + runner = testing_utils.InMemoryRunner(agent) + runner.run("First message") + runner.run("Second message") + + # First turn behavior + assert testing_utils.simplify_contents(mock_model.requests[0].contents) == [ + ("user", "First message") + ] + + assert testing_utils.simplify_contents(mock_model.requests[1].contents) == [ + ("user", "First message"), + ( + "model", + types.Part.from_function_call( + name="simple_tool", args={"message": "first"} + ), + ), + ( + "user", + types.Part.from_function_response( + name="simple_tool", response={"result": "Tool processed: first"} + ), + ), + ] + + # Second turn should only have current input, no history + assert testing_utils.simplify_contents(mock_model.requests[2].contents) == [ + ("user", "Second message") + ] + + # System instruction and tools should be preserved + assert ( + "You are a helpful assistant" + in mock_model.requests[0].config.system_instruction + ) + assert len(mock_model.requests[0].config.tools) > 0 + + +@pytest.mark.asyncio +async def test_include_contents_none_sequential_agents(): + """Test include_contents='none' with sequential agents.""" + + agent1_model = testing_utils.MockModel.create( + responses=["Agent1 response: XYZ"] + ) + agent1 = LlmAgent( + name="agent1", + model=agent1_model, + instruction="You are Agent1", + ) + + agent2_model = testing_utils.MockModel.create( + responses=["Agent2 final response"] + ) + agent2 = LlmAgent( + name="agent2", + model=agent2_model, + include_contents="none", + instruction="You are Agent2", + ) + + sequential_agent = SequentialAgent( + name="sequential_test_agent", sub_agents=[agent1, agent2] + ) + + runner = testing_utils.InMemoryRunner(sequential_agent) + events = runner.run("Original user request") + + assert len(events) == 2 + assert events[0].author == "agent1" + assert events[1].author == "agent2" + + # Agent1 sees original user request + agent1_contents = testing_utils.simplify_contents( + agent1_model.requests[0].contents + ) + assert ("user", "Original user request") in agent1_contents + + # Agent2 with include_contents='none' should not see original request + agent2_contents = testing_utils.simplify_contents( + agent2_model.requests[0].contents + ) + + assert not any( + "Original user request" in str(content) for _, content in agent2_contents + ) + assert any( + "Agent1 response" in str(content) for _, content in agent2_contents + ) diff --git a/tests/unittests/agents/test_llm_agent_output_save.py b/tests/unittests/agents/test_llm_agent_output_save.py new file mode 100644 index 000000000..0f71f9828 --- /dev/null +++ b/tests/unittests/agents/test_llm_agent_output_save.py @@ -0,0 +1,240 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Unit tests for LlmAgent output saving functionality.""" + +from unittest.mock import Mock +from unittest.mock import patch + +from google.adk.agents.llm_agent import LlmAgent +from google.adk.events.event import Event +from google.adk.events.event_actions import EventActions +from google.genai import types +from pydantic import BaseModel +import pytest + + +class MockOutputSchema(BaseModel): + message: str + confidence: float + + +def create_test_event( + author: str = "test_agent", + content_text: str = "Hello world", + is_final: bool = True, + invocation_id: str = "test_invocation", +) -> Event: + """Helper to create test events.""" + # Create mock content + parts = [types.Part.from_text(text=content_text)] if content_text else [] + content = types.Content(role="model", parts=parts) if parts else None + + # Create event + event = Event( + invocation_id=invocation_id, + author=author, + content=content, + actions=EventActions(), + ) + + # Mock is_final_response if needed + if not is_final: + event.partial = True + + return event + + +class TestLlmAgentOutputSave: + """Test suite for LlmAgent output saving functionality.""" + + def test_maybe_save_output_to_state_skips_different_author(self, caplog): + """Test that output is not saved when event author differs from agent name.""" + agent = LlmAgent(name="agent_a", output_key="result") + event = create_test_event(author="agent_b", content_text="Response from B") + + with caplog.at_level("DEBUG"): + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should not add anything to state_delta + assert len(event.actions.state_delta) == 0 + + # Should log the skip + assert ( + "Skipping output save for agent agent_a: event authored by agent_b" + in caplog.text + ) + + def test_maybe_save_output_to_state_saves_same_author(self): + """Test that output is saved when event author matches agent name.""" + agent = LlmAgent(name="test_agent", output_key="result") + event = create_test_event(author="test_agent", content_text="Test response") + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should save to state_delta + assert event.actions.state_delta["result"] == "Test response" + + def test_maybe_save_output_to_state_no_output_key(self): + """Test that nothing is saved when output_key is not set.""" + agent = LlmAgent(name="test_agent") # No output_key + event = create_test_event(author="test_agent", content_text="Test response") + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should not save anything + assert len(event.actions.state_delta) == 0 + + def test_maybe_save_output_to_state_not_final_response(self): + """Test that output is not saved for non-final responses.""" + agent = LlmAgent(name="test_agent", output_key="result") + event = create_test_event( + author="test_agent", content_text="Partial response", is_final=False + ) + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should not save partial responses + assert len(event.actions.state_delta) == 0 + + def test_maybe_save_output_to_state_no_content(self): + """Test that nothing is saved when event has no content.""" + agent = LlmAgent(name="test_agent", output_key="result") + event = create_test_event(author="test_agent", content_text="") + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should not save empty content + assert len(event.actions.state_delta) == 0 + + def test_maybe_save_output_to_state_with_output_schema(self): + """Test that output is processed with schema when output_schema is set.""" + agent = LlmAgent( + name="test_agent", output_key="result", output_schema=MockOutputSchema + ) + + # Create event with JSON content + json_content = '{"message": "Hello", "confidence": 0.95}' + event = create_test_event(author="test_agent", content_text=json_content) + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should save parsed and validated output + expected_output = {"message": "Hello", "confidence": 0.95} + assert event.actions.state_delta["result"] == expected_output + + def test_maybe_save_output_to_state_multiple_parts(self): + """Test that multiple text parts are concatenated.""" + agent = LlmAgent(name="test_agent", output_key="result") + + # Create event with multiple text parts + parts = [ + types.Part.from_text(text="Hello "), + types.Part.from_text(text="world"), + types.Part.from_text(text="!"), + ] + content = types.Content(role="model", parts=parts) + + event = Event( + invocation_id="test_invocation", + author="test_agent", + content=content, + actions=EventActions(), + ) + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should concatenate all text parts + assert event.actions.state_delta["result"] == "Hello world!" + + def test_maybe_save_output_to_state_agent_transfer_scenario(self, caplog): + """Test realistic agent transfer scenario.""" + # Scenario: Agent A transfers to Agent B, Agent B produces output + # Agent A should not save Agent B's output + + agent_a = LlmAgent(name="support_agent", output_key="support_result") + agent_b_event = create_test_event( + author="billing_agent", content_text="Your bill is $100" + ) + + with caplog.at_level("DEBUG"): + agent_a._LlmAgent__maybe_save_output_to_state(agent_b_event) + + # Agent A should not save Agent B's output + assert len(agent_b_event.actions.state_delta) == 0 + assert ( + "Skipping output save for agent support_agent: event authored by" + " billing_agent" + in caplog.text + ) + + def test_maybe_save_output_to_state_case_sensitive_names(self, caplog): + """Test that agent name comparison is case-sensitive.""" + agent = LlmAgent(name="TestAgent", output_key="result") + event = create_test_event(author="testagent", content_text="Test response") + + with caplog.at_level("DEBUG"): + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should not save due to case mismatch + assert len(event.actions.state_delta) == 0 + assert ( + "Skipping output save for agent TestAgent: event authored by testagent" + in caplog.text + ) + + @patch("google.adk.agents.llm_agent.logger") + def test_maybe_save_output_to_state_logging(self, mock_logger): + """Test that debug logging works correctly.""" + agent = LlmAgent(name="agent1", output_key="result") + event = create_test_event(author="agent2", content_text="Test response") + + agent._LlmAgent__maybe_save_output_to_state(event) + + # Should call logger.debug with correct parameters + mock_logger.debug.assert_called_once_with( + "Skipping output save for agent %s: event authored by %s", + "agent1", + "agent2", + ) + + @pytest.mark.parametrize("empty_content", ["", " ", "\n"]) + def test_maybe_save_output_to_state_handles_empty_final_chunk_with_schema( + self, empty_content + ): + """Tests that the agent correctly handles an empty final streaming chunk + + when an output_schema is specified, preventing a crash. + """ + # ARRANGE: Create an agent that expects a JSON output matching a schema. + agent = LlmAgent( + name="test_agent", output_key="result", output_schema=MockOutputSchema + ) + + # ARRANGE: Create a final event with empty or whitespace-only content. + # This simulates the final, empty chunk from a model's streaming response. + event = create_test_event( + author="test_agent", content_text=empty_content, is_final=True + ) + + # ACT: Call the method. The test's primary goal is to ensure this + # does NOT raise a pydantic.ValidationError, which it would have before the fix. + try: + agent._LlmAgent__maybe_save_output_to_state(event) + except Exception as e: + pytest.fail(f"The method unexpectedly raised an exception: {e}") + + # ASSERT: Because the method should return early, the state_delta + # should remain empty. + assert len(event.actions.state_delta) == 0 diff --git a/tests/unittests/agents/test_remote_a2a_agent.py b/tests/unittests/agents/test_remote_a2a_agent.py new file mode 100644 index 000000000..2428b05ff --- /dev/null +++ b/tests/unittests/agents/test_remote_a2a_agent.py @@ -0,0 +1,1018 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from pathlib import Path +import sys +import tempfile +from unittest.mock import AsyncMock +from unittest.mock import Mock +from unittest.mock import patch + +# Try to import a2a library - will fail on Python < 3.10 +try: + from a2a.types import AgentCapabilities + from a2a.types import AgentCard + from a2a.types import AgentSkill + from a2a.types import Message as A2AMessage + from a2a.types import SendMessageSuccessResponse + from a2a.types import Task as A2ATask + from google.adk.agents.invocation_context import InvocationContext + from google.adk.agents.remote_a2a_agent import A2A_METADATA_PREFIX + from google.adk.agents.remote_a2a_agent import AgentCardResolutionError + from google.adk.agents.remote_a2a_agent import RemoteA2aAgent + + A2A_AVAILABLE = True +except ImportError: + A2A_AVAILABLE = False + # Create dummy classes to prevent NameError during test collection + AgentCapabilities = type("AgentCapabilities", (), {}) + AgentCard = type("AgentCard", (), {}) + AgentSkill = type("AgentSkill", (), {}) + A2AMessage = type("A2AMessage", (), {}) + SendMessageSuccessResponse = type("SendMessageSuccessResponse", (), {}) + A2ATask = type("A2ATask", (), {}) + + +from google.adk.events.event import Event +from google.adk.sessions.session import Session +import httpx +import pytest + +# Skip all tests in this module if Python < 3.10 or a2a library is not available +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10) or not A2A_AVAILABLE, + reason=( + "a2a library requires Python 3.10+ and is not available, skipping" + " RemoteA2aAgent tests" + ), +) + + +# Helper function to create a proper AgentCard for testing +def create_test_agent_card( + name: str = "test-agent", + url: str = "https://example.com/rpc", + description: str = "Test agent", +) -> AgentCard: + """Create a test AgentCard with all required fields.""" + return AgentCard( + name=name, + url=url, + description=description, + version="1.0", + capabilities=AgentCapabilities(), + defaultInputModes=["text/plain"], + defaultOutputModes=["application/json"], + skills=[ + AgentSkill( + id="test-skill", + name="Test Skill", + description="A test skill", + tags=["test"], + ) + ], + ) + + +class TestRemoteA2aAgentInit: + """Test RemoteA2aAgent initialization and validation.""" + + def test_init_with_agent_card_object(self): + """Test initialization with AgentCard object.""" + agent_card = create_test_agent_card() + + agent = RemoteA2aAgent( + name="test_agent", agent_card=agent_card, description="Test description" + ) + + assert agent.name == "test_agent" + assert agent.description == "Test description" + assert agent._agent_card == agent_card + assert agent._agent_card_source is None + assert agent._httpx_client_needs_cleanup is True + assert agent._is_resolved is False + + def test_init_with_url_string(self): + """Test initialization with URL string.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card="https://example.com/agent.json" + ) + + assert agent.name == "test_agent" + assert agent._agent_card is None + assert agent._agent_card_source == "https://example.com/agent.json" + + def test_init_with_file_path(self): + """Test initialization with file path.""" + agent = RemoteA2aAgent(name="test_agent", agent_card="/path/to/agent.json") + + assert agent.name == "test_agent" + assert agent._agent_card is None + assert agent._agent_card_source == "/path/to/agent.json" + + def test_init_with_shared_httpx_client(self): + """Test initialization with shared httpx client.""" + httpx_client = httpx.AsyncClient() + agent = RemoteA2aAgent( + name="test_agent", + agent_card="https://example.com/agent.json", + httpx_client=httpx_client, + ) + + assert agent._httpx_client == httpx_client + assert agent._httpx_client_needs_cleanup is False + + def test_init_with_none_agent_card(self): + """Test initialization with None agent card raises ValueError.""" + with pytest.raises(ValueError, match="agent_card cannot be None"): + RemoteA2aAgent(name="test_agent", agent_card=None) + + def test_init_with_empty_string_agent_card(self): + """Test initialization with empty string agent card raises ValueError.""" + with pytest.raises(ValueError, match="agent_card string cannot be empty"): + RemoteA2aAgent(name="test_agent", agent_card=" ") + + def test_init_with_invalid_type_agent_card(self): + """Test initialization with invalid type agent card raises TypeError.""" + with pytest.raises(TypeError, match="agent_card must be AgentCard"): + RemoteA2aAgent(name="test_agent", agent_card=123) + + def test_init_with_custom_timeout(self): + """Test initialization with custom timeout.""" + agent = RemoteA2aAgent( + name="test_agent", + agent_card="https://example.com/agent.json", + timeout=300.0, + ) + + assert agent._timeout == 300.0 + + +class TestRemoteA2aAgentResolution: + """Test agent card resolution functionality.""" + + def setup_method(self): + """Setup test fixtures.""" + self.agent_card_data = { + "name": "test-agent", + "url": "https://example.com/rpc", + "description": "Test agent", + "version": "1.0", + "capabilities": {}, + "defaultInputModes": ["text/plain"], + "defaultOutputModes": ["application/json"], + "skills": [{ + "id": "test-skill", + "name": "Test Skill", + "description": "A test skill", + "tags": ["test"], + }], + } + self.agent_card = create_test_agent_card() + + @pytest.mark.asyncio + async def test_ensure_httpx_client_creates_new_client(self): + """Test that _ensure_httpx_client creates new client when none exists.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card=create_test_agent_card() + ) + + client = await agent._ensure_httpx_client() + + assert client is not None + assert agent._httpx_client == client + assert agent._httpx_client_needs_cleanup is True + + @pytest.mark.asyncio + async def test_ensure_httpx_client_reuses_existing_client(self): + """Test that _ensure_httpx_client reuses existing client.""" + existing_client = httpx.AsyncClient() + agent = RemoteA2aAgent( + name="test_agent", + agent_card=create_test_agent_card(), + httpx_client=existing_client, + ) + + client = await agent._ensure_httpx_client() + + assert client == existing_client + assert agent._httpx_client_needs_cleanup is False + + @pytest.mark.asyncio + async def test_resolve_agent_card_from_url_success(self): + """Test successful agent card resolution from URL.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card="https://example.com/agent.json" + ) + + with patch.object(agent, "_ensure_httpx_client") as mock_ensure_client: + mock_client = AsyncMock() + mock_ensure_client.return_value = mock_client + + with patch( + "google.adk.agents.remote_a2a_agent.A2ACardResolver" + ) as mock_resolver_class: + mock_resolver = AsyncMock() + mock_resolver.get_agent_card.return_value = self.agent_card + mock_resolver_class.return_value = mock_resolver + + result = await agent._resolve_agent_card_from_url( + "https://example.com/agent.json" + ) + + assert result == self.agent_card + mock_resolver_class.assert_called_once_with( + httpx_client=mock_client, base_url="https://example.com" + ) + mock_resolver.get_agent_card.assert_called_once_with( + relative_card_path="/agent.json" + ) + + @pytest.mark.asyncio + async def test_resolve_agent_card_from_url_invalid_url(self): + """Test agent card resolution from invalid URL raises error.""" + agent = RemoteA2aAgent(name="test_agent", agent_card="invalid-url") + + with pytest.raises(AgentCardResolutionError, match="Invalid URL format"): + await agent._resolve_agent_card_from_url("invalid-url") + + @pytest.mark.asyncio + async def test_resolve_agent_card_from_file_success(self): + """Test successful agent card resolution from file.""" + agent = RemoteA2aAgent(name="test_agent", agent_card="/path/to/agent.json") + + with tempfile.NamedTemporaryFile( + mode="w", suffix=".json", delete=False + ) as f: + json.dump(self.agent_card_data, f) + temp_path = f.name + + try: + result = await agent._resolve_agent_card_from_file(temp_path) + assert result.name == self.agent_card.name + assert result.url == self.agent_card.url + finally: + Path(temp_path).unlink() + + @pytest.mark.asyncio + async def test_resolve_agent_card_from_file_not_found(self): + """Test agent card resolution from non-existent file raises error.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card="/path/to/nonexistent.json" + ) + + with pytest.raises( + AgentCardResolutionError, match="Agent card file not found" + ): + await agent._resolve_agent_card_from_file("/path/to/nonexistent.json") + + @pytest.mark.asyncio + async def test_resolve_agent_card_from_file_invalid_json(self): + """Test agent card resolution from file with invalid JSON raises error.""" + agent = RemoteA2aAgent(name="test_agent", agent_card="/path/to/agent.json") + + with tempfile.NamedTemporaryFile( + mode="w", suffix=".json", delete=False + ) as f: + f.write("invalid json") + temp_path = f.name + + try: + with pytest.raises(AgentCardResolutionError, match="Invalid JSON"): + await agent._resolve_agent_card_from_file(temp_path) + finally: + Path(temp_path).unlink() + + @pytest.mark.asyncio + async def test_validate_agent_card_success(self): + """Test successful agent card validation.""" + agent_card = create_test_agent_card() + agent = RemoteA2aAgent(name="test_agent", agent_card=agent_card) + + # Should not raise any exception + await agent._validate_agent_card(agent_card) + + @pytest.mark.asyncio + async def test_validate_agent_card_no_url(self): + """Test agent card validation fails when no URL.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card=create_test_agent_card() + ) + + invalid_card = AgentCard( + name="test", + description="test", + version="1.0", + capabilities=AgentCapabilities(), + defaultInputModes=["text/plain"], + defaultOutputModes=["application/json"], + skills=[ + AgentSkill( + id="test-skill", + name="Test Skill", + description="A test skill", + tags=["test"], + ) + ], + url="", # Empty URL to trigger validation error + ) + + with pytest.raises( + AgentCardResolutionError, match="Agent card must have a valid URL" + ): + await agent._validate_agent_card(invalid_card) + + @pytest.mark.asyncio + async def test_validate_agent_card_invalid_url(self): + """Test agent card validation fails with invalid URL.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card=create_test_agent_card() + ) + + invalid_card = AgentCard( + name="test", + url="invalid-url", + description="test", + version="1.0", + capabilities=AgentCapabilities(), + defaultInputModes=["text/plain"], + defaultOutputModes=["application/json"], + skills=[ + AgentSkill( + id="test-skill", + name="Test Skill", + description="A test skill", + tags=["test"], + ) + ], + ) + + with pytest.raises(AgentCardResolutionError, match="Invalid RPC URL"): + await agent._validate_agent_card(invalid_card) + + @pytest.mark.asyncio + async def test_ensure_resolved_with_direct_agent_card(self): + """Test _ensure_resolved with direct agent card.""" + agent_card = create_test_agent_card() + agent = RemoteA2aAgent(name="test_agent", agent_card=agent_card) + + with patch.object(agent, "_ensure_httpx_client") as mock_ensure_client: + mock_client = AsyncMock() + mock_ensure_client.return_value = mock_client + + with patch( + "google.adk.agents.remote_a2a_agent.A2AClient" + ) as mock_client_class: + mock_a2a_client = AsyncMock() + mock_client_class.return_value = mock_a2a_client + + await agent._ensure_resolved() + + assert agent._is_resolved is True + assert agent._rpc_url == str(agent_card.url) + assert agent._a2a_client == mock_a2a_client + + @pytest.mark.asyncio + async def test_ensure_resolved_with_url_source(self): + """Test _ensure_resolved with URL source.""" + agent = RemoteA2aAgent( + name="test_agent", agent_card="https://example.com/agent.json" + ) + + agent_card = create_test_agent_card() + with patch.object(agent, "_resolve_agent_card") as mock_resolve: + mock_resolve.return_value = agent_card + + with patch.object(agent, "_ensure_httpx_client") as mock_ensure_client: + mock_client = AsyncMock() + mock_ensure_client.return_value = mock_client + + with patch( + "google.adk.agents.remote_a2a_agent.A2AClient" + ) as mock_client_class: + mock_a2a_client = AsyncMock() + mock_client_class.return_value = mock_a2a_client + + await agent._ensure_resolved() + + assert agent._is_resolved is True + assert agent._agent_card == agent_card + assert agent.description == agent_card.description + + @pytest.mark.asyncio + async def test_ensure_resolved_already_resolved(self): + """Test _ensure_resolved when already resolved.""" + agent_card = create_test_agent_card() + agent = RemoteA2aAgent(name="test_agent", agent_card=agent_card) + + # Set up as already resolved + agent._is_resolved = True + agent._a2a_client = AsyncMock() + agent._rpc_url = "https://example.com/rpc" + + with patch.object(agent, "_resolve_agent_card") as mock_resolve: + await agent._ensure_resolved() + + # Should not call resolution again + mock_resolve.assert_not_called() + + +class TestRemoteA2aAgentMessageHandling: + """Test message handling functionality.""" + + def setup_method(self): + """Setup test fixtures.""" + self.agent_card = create_test_agent_card() + self.agent = RemoteA2aAgent(name="test_agent", agent_card=self.agent_card) + + # Mock session and context + self.mock_session = Mock(spec=Session) + self.mock_session.id = "session-123" + self.mock_session.events = [] + + self.mock_context = Mock(spec=InvocationContext) + self.mock_context.session = self.mock_session + self.mock_context.invocation_id = "invocation-123" + self.mock_context.branch = "main" + + def test_create_a2a_request_for_user_function_response_no_function_call(self): + """Test function response request creation when no function call exists.""" + with patch( + "google.adk.agents.remote_a2a_agent.find_matching_function_call" + ) as mock_find: + mock_find.return_value = None + + result = self.agent._create_a2a_request_for_user_function_response( + self.mock_context + ) + + assert result is None + + def test_create_a2a_request_for_user_function_response_success(self): + """Test successful function response request creation.""" + # Mock function call event + mock_function_event = Mock() + mock_function_event.custom_metadata = { + A2A_METADATA_PREFIX + "task_id": "task-123" + } + + # Mock latest event with function response - set proper author + mock_latest_event = Mock() + mock_latest_event.author = "user" + self.mock_session.events = [mock_latest_event] + + with patch( + "google.adk.agents.remote_a2a_agent.find_matching_function_call" + ) as mock_find: + mock_find.return_value = mock_function_event + + with patch( + "google.adk.agents.remote_a2a_agent.convert_event_to_a2a_message" + ) as mock_convert: + # Create a proper mock A2A message + mock_a2a_message = Mock(spec=A2AMessage) + mock_a2a_message.taskId = None # Will be set by the method + mock_convert.return_value = mock_a2a_message + + result = self.agent._create_a2a_request_for_user_function_response( + self.mock_context + ) + + assert result is not None + assert result.params.message == mock_a2a_message + assert mock_a2a_message.taskId == "task-123" + + def test_construct_message_parts_from_session_success(self): + """Test successful message parts construction from session.""" + # Mock event with text content + mock_part = Mock() + mock_part.text = "Hello world" + + mock_content = Mock() + mock_content.parts = [mock_part] + + mock_event = Mock() + mock_event.content = mock_content + + self.mock_session.events = [mock_event] + + with patch( + "google.adk.agents.remote_a2a_agent._convert_foreign_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + with patch( + "google.adk.agents.remote_a2a_agent.convert_genai_part_to_a2a_part" + ) as mock_convert_part: + mock_a2a_part = Mock() + mock_convert_part.return_value = mock_a2a_part + + result = self.agent._construct_message_parts_from_session( + self.mock_context + ) + + assert len(result) == 2 # Returns tuple of (parts, context_id) + assert len(result[0]) == 1 # parts list + assert result[0][0] == mock_a2a_part + assert result[1] is None # context_id + + def test_construct_message_parts_from_session_empty_events(self): + """Test message parts construction with empty events.""" + self.mock_session.events = [] + + result = self.agent._construct_message_parts_from_session(self.mock_context) + + assert len(result) == 2 # Returns tuple of (parts, context_id) + assert result[0] == [] # empty parts list + assert result[1] is None # context_id + + @pytest.mark.asyncio + async def test_handle_a2a_response_success_with_message(self): + """Test successful A2A response handling with message.""" + mock_a2a_message = Mock(spec=A2AMessage) + mock_a2a_message.taskId = "task-123" + mock_a2a_message.contextId = "context-123" + + mock_success_response = Mock(spec=SendMessageSuccessResponse) + mock_success_response.result = mock_a2a_message + + mock_response = Mock() + mock_response.root = mock_success_response + + # Create a proper Event mock that can handle custom_metadata + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + ) + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_message_to_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + result = await self.agent._handle_a2a_response( + mock_response, self.mock_context + ) + + assert result == mock_event + mock_convert.assert_called_once_with( + mock_a2a_message, self.agent.name, self.mock_context + ) + # Check that metadata was added + assert result.custom_metadata is not None + assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata + assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + + @pytest.mark.asyncio + async def test_handle_a2a_response_success_with_task(self): + """Test successful A2A response handling with task.""" + mock_a2a_task = Mock(spec=A2ATask) + mock_a2a_task.id = "task-123" + mock_a2a_task.contextId = "context-123" + + mock_success_response = Mock(spec=SendMessageSuccessResponse) + mock_success_response.result = mock_a2a_task + + mock_response = Mock() + mock_response.root = mock_success_response + + # Create a proper Event mock that can handle custom_metadata + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + ) + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_task_to_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + result = await self.agent._handle_a2a_response( + mock_response, self.mock_context + ) + + assert result == mock_event + mock_convert.assert_called_once_with( + mock_a2a_task, self.agent.name, self.mock_context + ) + # Check that metadata was added + assert result.custom_metadata is not None + assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata + assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + + @pytest.mark.asyncio + async def test_handle_a2a_response_error_response(self): + """Test A2A response handling with error response.""" + mock_error = Mock() + mock_error.message = "Test error" + mock_error.code = "500" # Use string instead of int + mock_error.data = {"details": "error details"} + + mock_error_response = Mock() + mock_error_response.error = mock_error + + mock_response = Mock() + mock_response.root = mock_error_response + + result = await self.agent._handle_a2a_response( + mock_response, self.mock_context + ) + + assert result.error_message == "Test error" + assert result.error_code == "500" + assert result.author == self.agent.name + + +class TestRemoteA2aAgentExecution: + """Test agent execution functionality.""" + + def setup_method(self): + """Setup test fixtures.""" + self.agent_card = create_test_agent_card() + self.agent = RemoteA2aAgent(name="test_agent", agent_card=self.agent_card) + + # Mock session and context + self.mock_session = Mock(spec=Session) + self.mock_session.id = "session-123" + self.mock_session.events = [] + + self.mock_context = Mock(spec=InvocationContext) + self.mock_context.session = self.mock_session + self.mock_context.invocation_id = "invocation-123" + self.mock_context.branch = "main" + + @pytest.mark.asyncio + async def test_run_async_impl_initialization_failure(self): + """Test _run_async_impl when initialization fails.""" + with patch.object(self.agent, "_ensure_resolved") as mock_ensure: + mock_ensure.side_effect = Exception("Initialization failed") + + events = [] + async for event in self.agent._run_async_impl(self.mock_context): + events.append(event) + + assert len(events) == 1 + assert "Failed to initialize remote A2A agent" in events[0].error_message + + @pytest.mark.asyncio + async def test_run_async_impl_no_message_parts(self): + """Test _run_async_impl when no message parts are found.""" + with patch.object(self.agent, "_ensure_resolved"): + with patch.object( + self.agent, "_create_a2a_request_for_user_function_response" + ) as mock_create_func: + mock_create_func.return_value = None + + with patch.object( + self.agent, "_construct_message_parts_from_session" + ) as mock_construct: + mock_construct.return_value = ( + [], + None, + ) # Tuple with empty parts and no context_id + + events = [] + async for event in self.agent._run_async_impl(self.mock_context): + events.append(event) + + assert len(events) == 1 + assert events[0].content is not None + assert events[0].author == self.agent.name + + @pytest.mark.asyncio + async def test_run_async_impl_successful_request(self): + """Test successful _run_async_impl execution.""" + with patch.object(self.agent, "_ensure_resolved"): + with patch.object( + self.agent, "_create_a2a_request_for_user_function_response" + ) as mock_create_func: + mock_create_func.return_value = None + + with patch.object( + self.agent, "_construct_message_parts_from_session" + ) as mock_construct: + # Create proper A2A part mocks + from a2a.types import TextPart + + mock_a2a_part = Mock(spec=TextPart) + mock_construct.return_value = ( + [mock_a2a_part], + "context-123", + ) # Tuple with parts and context_id + + # Mock A2A client + mock_a2a_client = AsyncMock() + mock_response = Mock() + mock_a2a_client.send_message.return_value = mock_response + self.agent._a2a_client = mock_a2a_client + + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + ) + + with patch.object(self.agent, "_handle_a2a_response") as mock_handle: + mock_handle.return_value = mock_event + + # Mock the logging functions to avoid iteration issues + with patch( + "google.adk.agents.remote_a2a_agent.build_a2a_request_log" + ) as mock_req_log: + with patch( + "google.adk.agents.remote_a2a_agent.build_a2a_response_log" + ) as mock_resp_log: + mock_req_log.return_value = "Mock request log" + mock_resp_log.return_value = "Mock response log" + + # Mock the A2AMessage and A2AMessageSendParams constructors + with patch( + "google.adk.agents.remote_a2a_agent.A2AMessage" + ) as mock_message_class: + with patch( + "google.adk.agents.remote_a2a_agent.A2AMessageSendParams" + ) as mock_params_class: + with patch( + "google.adk.agents.remote_a2a_agent.SendMessageRequest" + ) as mock_request_class: + mock_message = Mock(spec=A2AMessage) + mock_message_class.return_value = mock_message + + mock_params = Mock() + mock_params_class.return_value = mock_params + + mock_request = Mock() + mock_request.model_dump.return_value = {"test": "request"} + mock_request_class.return_value = mock_request + + # Add model_dump to mock_response for metadata + mock_response.root.model_dump.return_value = { + "test": "response" + } + + events = [] + async for event in self.agent._run_async_impl( + self.mock_context + ): + events.append(event) + + assert len(events) == 1 + assert events[0] == mock_event + assert ( + A2A_METADATA_PREFIX + "request" + in mock_event.custom_metadata + ) + + @pytest.mark.asyncio + async def test_run_async_impl_a2a_client_error(self): + """Test _run_async_impl when A2A send_message fails.""" + with patch.object(self.agent, "_ensure_resolved"): + with patch.object( + self.agent, "_create_a2a_request_for_user_function_response" + ) as mock_create_func: + mock_create_func.return_value = None + + with patch.object( + self.agent, "_construct_message_parts_from_session" + ) as mock_construct: + # Create proper A2A part mocks + from a2a.types import TextPart + + mock_a2a_part = Mock(spec=TextPart) + mock_construct.return_value = ( + [mock_a2a_part], + "context-123", + ) # Tuple with parts and context_id + + # Mock A2A client that throws an exception + mock_a2a_client = AsyncMock() + mock_a2a_client.send_message.side_effect = Exception("Send failed") + self.agent._a2a_client = mock_a2a_client + + # Mock the logging functions to avoid iteration issues + with patch( + "google.adk.agents.remote_a2a_agent.build_a2a_request_log" + ) as mock_req_log: + mock_req_log.return_value = "Mock request log" + + # Mock the A2AMessage and A2AMessageSendParams constructors + with patch( + "google.adk.agents.remote_a2a_agent.A2AMessage" + ) as mock_message_class: + with patch( + "google.adk.agents.remote_a2a_agent.A2AMessageSendParams" + ) as mock_params_class: + with patch( + "google.adk.agents.remote_a2a_agent.SendMessageRequest" + ) as mock_request_class: + mock_message = Mock(spec=A2AMessage) + mock_message_class.return_value = mock_message + + mock_params = Mock() + mock_params_class.return_value = mock_params + + mock_request = Mock() + mock_request.model_dump.return_value = {"test": "request"} + mock_request_class.return_value = mock_request + + events = [] + async for event in self.agent._run_async_impl( + self.mock_context + ): + events.append(event) + + assert len(events) == 1 + assert "A2A request failed" in events[0].error_message + + @pytest.mark.asyncio + async def test_run_live_impl_not_implemented(self): + """Test that _run_live_impl raises NotImplementedError.""" + with pytest.raises( + NotImplementedError, match="_run_live_impl.*not implemented" + ): + async for _ in self.agent._run_live_impl(self.mock_context): + pass + + +class TestRemoteA2aAgentCleanup: + """Test cleanup functionality.""" + + def setup_method(self): + """Setup test fixtures.""" + self.agent_card = create_test_agent_card() + + @pytest.mark.asyncio + async def test_cleanup_owns_httpx_client(self): + """Test cleanup when agent owns httpx client.""" + agent = RemoteA2aAgent(name="test_agent", agent_card=self.agent_card) + + # Set up owned client + mock_client = AsyncMock() + agent._httpx_client = mock_client + agent._httpx_client_needs_cleanup = True + + await agent.cleanup() + + mock_client.aclose.assert_called_once() + assert agent._httpx_client is None + + @pytest.mark.asyncio + async def test_cleanup_does_not_own_httpx_client(self): + """Test cleanup when agent does not own httpx client.""" + shared_client = AsyncMock() + agent = RemoteA2aAgent( + name="test_agent", + agent_card=self.agent_card, + httpx_client=shared_client, + ) + + await agent.cleanup() + + # Should not close shared client + shared_client.aclose.assert_not_called() + + @pytest.mark.asyncio + async def test_cleanup_client_close_error(self): + """Test cleanup when client close raises error.""" + agent = RemoteA2aAgent(name="test_agent", agent_card=self.agent_card) + + mock_client = AsyncMock() + mock_client.aclose.side_effect = Exception("Close failed") + agent._httpx_client = mock_client + agent._httpx_client_needs_cleanup = True + + # Should not raise exception + await agent.cleanup() + assert agent._httpx_client is None + + +class TestRemoteA2aAgentIntegration: + """Integration tests for RemoteA2aAgent.""" + + @pytest.mark.asyncio + async def test_full_workflow_with_direct_agent_card(self): + """Test full workflow with direct agent card.""" + agent_card = create_test_agent_card() + + agent = RemoteA2aAgent(name="test_agent", agent_card=agent_card) + + # Mock session with text event + mock_part = Mock() + mock_part.text = "Hello world" + + mock_content = Mock() + mock_content.parts = [mock_part] + + mock_event = Mock() + mock_event.content = mock_content + + mock_session = Mock(spec=Session) + mock_session.id = "session-123" + mock_session.events = [mock_event] + + mock_context = Mock(spec=InvocationContext) + mock_context.session = mock_session + mock_context.invocation_id = "invocation-123" + mock_context.branch = "main" + + # Mock dependencies + with patch( + "google.adk.agents.remote_a2a_agent._convert_foreign_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + with patch( + "google.adk.agents.remote_a2a_agent.convert_genai_part_to_a2a_part" + ) as mock_convert_part: + from a2a.types import TextPart + + mock_a2a_part = Mock(spec=TextPart) + mock_convert_part.return_value = mock_a2a_part + + with patch( + "google.adk.agents.remote_a2a_agent.A2AClient" + ) as mock_client_class: + mock_a2a_client = AsyncMock() + mock_response = Mock() + mock_success_response = Mock(spec=SendMessageSuccessResponse) + mock_a2a_message = Mock(spec=A2AMessage) + mock_a2a_message.taskId = "task-123" + mock_a2a_message.contextId = "context-123" + mock_success_response.result = mock_a2a_message + mock_response.root = mock_success_response + mock_a2a_client.send_message.return_value = mock_response + mock_client_class.return_value = mock_a2a_client + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_message_to_event" + ) as mock_convert_event: + mock_result_event = Event( + author=agent.name, + invocation_id=mock_context.invocation_id, + branch=mock_context.branch, + ) + mock_convert_event.return_value = mock_result_event + + # Mock the logging functions to avoid iteration issues + with patch( + "google.adk.agents.remote_a2a_agent.build_a2a_request_log" + ) as mock_req_log: + with patch( + "google.adk.agents.remote_a2a_agent.build_a2a_response_log" + ) as mock_resp_log: + mock_req_log.return_value = "Mock request log" + mock_resp_log.return_value = "Mock response log" + + # Mock the A2AMessage and A2AMessageSendParams constructors + with patch( + "google.adk.agents.remote_a2a_agent.A2AMessage" + ) as mock_message_class: + with patch( + "google.adk.agents.remote_a2a_agent.A2AMessageSendParams" + ) as mock_params_class: + with patch( + "google.adk.agents.remote_a2a_agent.SendMessageRequest" + ) as mock_request_class: + mock_message = Mock(spec=A2AMessage) + mock_message_class.return_value = mock_message + + mock_params = Mock() + mock_params_class.return_value = mock_params + + mock_request = Mock() + mock_request.model_dump.return_value = {"test": "request"} + mock_request_class.return_value = mock_request + + # Add model_dump to mock_response for metadata + mock_response.root.model_dump.return_value = { + "test": "response" + } + + # Execute + events = [] + async for event in agent._run_async_impl(mock_context): + events.append(event) + + assert len(events) == 1 + assert events[0] == mock_result_event + assert ( + A2A_METADATA_PREFIX + "request" + in mock_result_event.custom_metadata + ) + + # Verify A2A client was called + mock_a2a_client.send_message.assert_called_once() diff --git a/tests/unittests/auth/__init__.py b/tests/unittests/auth/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/tests/unittests/auth/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/tests/unittests/auth/credential_service/__init__.py b/tests/unittests/auth/credential_service/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/tests/unittests/auth/credential_service/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/tests/unittests/auth/credential_service/test_session_state_credential_service.py b/tests/unittests/auth/credential_service/test_session_state_credential_service.py new file mode 100644 index 000000000..610a9d3d1 --- /dev/null +++ b/tests/unittests/auth/credential_service/test_session_state_credential_service.py @@ -0,0 +1,355 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest.mock import Mock + +from fastapi.openapi.models import OAuth2 +from fastapi.openapi.models import OAuthFlowAuthorizationCode +from fastapi.openapi.models import OAuthFlows +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import OAuth2Auth +from google.adk.auth.auth_tool import AuthConfig +from google.adk.auth.credential_service.session_state_credential_service import SessionStateCredentialService +from google.adk.tools.tool_context import ToolContext +import pytest + + +class TestSessionStateCredentialService: + """Tests for the SessionStateCredentialService class.""" + + @pytest.fixture + def credential_service(self): + """Create a SessionStateCredentialService instance for testing.""" + return SessionStateCredentialService() + + @pytest.fixture + def oauth2_auth_scheme(self): + """Create an OAuth2 auth scheme for testing.""" + flows = OAuthFlows( + authorizationCode=OAuthFlowAuthorizationCode( + authorizationUrl="https://example.com/oauth2/authorize", + tokenUrl="https://example.com/oauth2/token", + scopes={"read": "Read access", "write": "Write access"}, + ) + ) + return OAuth2(flows=flows) + + @pytest.fixture + def oauth2_credentials(self): + """Create OAuth2 credentials for testing.""" + return AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="mock_client_id", + client_secret="mock_client_secret", + redirect_uri="https://example.com/callback", + ), + ) + + @pytest.fixture + def auth_config(self, oauth2_auth_scheme, oauth2_credentials): + """Create an AuthConfig for testing.""" + exchanged_credential = oauth2_credentials.model_copy(deep=True) + return AuthConfig( + auth_scheme=oauth2_auth_scheme, + raw_auth_credential=oauth2_credentials, + exchanged_auth_credential=exchanged_credential, + ) + + @pytest.fixture + def tool_context(self): + """Create a mock ToolContext for testing.""" + mock_context = Mock(spec=ToolContext) + # Create a state dictionary that behaves like session state + mock_context.state = {} + return mock_context + + @pytest.fixture + def another_tool_context(self): + """Create another mock ToolContext with different state for testing isolation.""" + mock_context = Mock(spec=ToolContext) + # Create a separate state dictionary to simulate different session + mock_context.state = {} + return mock_context + + @pytest.mark.asyncio + async def test_load_credential_not_found( + self, credential_service, auth_config, tool_context + ): + """Test loading a credential that doesn't exist returns None.""" + result = await credential_service.load_credential(auth_config, tool_context) + assert result is None + + @pytest.mark.asyncio + async def test_save_and_load_credential( + self, credential_service, auth_config, tool_context + ): + """Test saving and then loading a credential.""" + # Save the credential + await credential_service.save_credential(auth_config, tool_context) + + # Load the credential + result = await credential_service.load_credential(auth_config, tool_context) + + # Verify the credential was saved and loaded correctly + assert result is not None + assert result == auth_config.exchanged_auth_credential + assert result.auth_type == AuthCredentialTypes.OAUTH2 + assert result.oauth2.client_id == "mock_client_id" + + @pytest.mark.asyncio + async def test_save_credential_updates_existing( + self, credential_service, auth_config, tool_context, oauth2_credentials + ): + """Test that saving a credential updates an existing one.""" + # Save initial credential + await credential_service.save_credential(auth_config, tool_context) + + # Create a new credential and update the auth_config + new_credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="updated_client_id", + client_secret="updated_client_secret", + redirect_uri="https://updated.com/callback", + ), + ) + auth_config.exchanged_auth_credential = new_credential + + # Save the updated credential + await credential_service.save_credential(auth_config, tool_context) + + # Load and verify the credential was updated + result = await credential_service.load_credential(auth_config, tool_context) + assert result is not None + assert result.oauth2.client_id == "updated_client_id" + assert result.oauth2.client_secret == "updated_client_secret" + + @pytest.mark.asyncio + async def test_credentials_isolated_by_context( + self, credential_service, auth_config, tool_context, another_tool_context + ): + """Test that credentials are isolated between different tool contexts.""" + # Save credential in first context + await credential_service.save_credential(auth_config, tool_context) + + # Try to load from another context (should not find it) + result = await credential_service.load_credential( + auth_config, another_tool_context + ) + assert result is None + + # Verify original context still has the credential + result = await credential_service.load_credential(auth_config, tool_context) + assert result is not None + + @pytest.mark.asyncio + async def test_multiple_credentials_same_context( + self, credential_service, tool_context, oauth2_auth_scheme + ): + """Test storing multiple credentials in the same context with different keys.""" + # Create two different auth configs with different credential keys + cred1 = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="client1", + client_secret="secret1", + redirect_uri="https://example1.com/callback", + ), + ) + + cred2 = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="client2", + client_secret="secret2", + redirect_uri="https://example2.com/callback", + ), + ) + + auth_config1 = AuthConfig( + auth_scheme=oauth2_auth_scheme, + raw_auth_credential=cred1, + exchanged_auth_credential=cred1, + credential_key="key1", + ) + + auth_config2 = AuthConfig( + auth_scheme=oauth2_auth_scheme, + raw_auth_credential=cred2, + exchanged_auth_credential=cred2, + credential_key="key2", + ) + + # Save both credentials + await credential_service.save_credential(auth_config1, tool_context) + await credential_service.save_credential(auth_config2, tool_context) + + # Load and verify both credentials + result1 = await credential_service.load_credential( + auth_config1, tool_context + ) + result2 = await credential_service.load_credential( + auth_config2, tool_context + ) + + assert result1 is not None + assert result2 is not None + assert result1.oauth2.client_id == "client1" + assert result2.oauth2.client_id == "client2" + + @pytest.mark.asyncio + async def test_save_credential_with_none_exchanged_credential( + self, credential_service, auth_config, tool_context + ): + """Test saving when exchanged_auth_credential is None.""" + # Set exchanged credential to None + auth_config.exchanged_auth_credential = None + + # Save the credential (should save None) + await credential_service.save_credential(auth_config, tool_context) + + # Load and verify None was saved + result = await credential_service.load_credential(auth_config, tool_context) + assert result is None + + @pytest.mark.asyncio + async def test_load_credential_with_empty_credential_key( + self, credential_service, auth_config, tool_context + ): + """Test loading credential with empty credential key.""" + # Set credential key to empty string + auth_config.credential_key = "" + + # Save first to have something to load + await credential_service.save_credential(auth_config, tool_context) + + # Load should work with empty key + result = await credential_service.load_credential(auth_config, tool_context) + assert result == auth_config.exchanged_auth_credential + + @pytest.mark.asyncio + async def test_state_persistence_across_operations( + self, credential_service, auth_config, tool_context + ): + """Test that state persists correctly across multiple operations.""" + # Initially, no credential should exist + result = await credential_service.load_credential(auth_config, tool_context) + assert result is None + + # Save a credential + await credential_service.save_credential(auth_config, tool_context) + + # Verify it was saved + result = await credential_service.load_credential(auth_config, tool_context) + assert result is not None + assert result == auth_config.exchanged_auth_credential + + # Update and save again + new_credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="new_client_id", + client_secret="new_client_secret", + redirect_uri="https://new.com/callback", + ), + ) + auth_config.exchanged_auth_credential = new_credential + await credential_service.save_credential(auth_config, tool_context) + + # Verify the update persisted + result = await credential_service.load_credential(auth_config, tool_context) + assert result is not None + assert result.oauth2.client_id == "new_client_id" + + @pytest.mark.asyncio + async def test_credential_key_uniqueness( + self, credential_service, oauth2_auth_scheme, tool_context + ): + """Test that different credential keys create separate storage slots.""" + # Create credentials with same content but different keys + credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="same_client", + client_secret="same_secret", + redirect_uri="https://same.com/callback", + ), + ) + + config_key1 = AuthConfig( + auth_scheme=oauth2_auth_scheme, + raw_auth_credential=credential, + exchanged_auth_credential=credential, + credential_key="unique_key_1", + ) + + config_key2 = AuthConfig( + auth_scheme=oauth2_auth_scheme, + raw_auth_credential=credential, + exchanged_auth_credential=credential, + credential_key="unique_key_2", + ) + + # Save credential with first key + await credential_service.save_credential(config_key1, tool_context) + + # Verify it's stored under first key + result1 = await credential_service.load_credential( + config_key1, tool_context + ) + assert result1 is not None + + # Verify it's not accessible under second key + result2 = await credential_service.load_credential( + config_key2, tool_context + ) + assert result2 is None + + # Save under second key + await credential_service.save_credential(config_key2, tool_context) + + # Now both should be accessible + result1 = await credential_service.load_credential( + config_key1, tool_context + ) + result2 = await credential_service.load_credential( + config_key2, tool_context + ) + assert result1 is not None + assert result2 is not None + assert result1 == result2 # Same credential content + + def test_direct_state_access( + self, credential_service, auth_config, tool_context + ): + """Test that the service correctly uses tool_context.state for storage.""" + # Verify that the state starts empty + assert len(tool_context.state) == 0 + + # Save a credential (this is async but we're testing the state directly) + credential_key = auth_config.credential_key + test_credential = auth_config.exchanged_auth_credential + + # Directly set the state to simulate save_credential behavior + tool_context.state[credential_key] = test_credential + + # Verify the credential is in the state + assert credential_key in tool_context.state + assert tool_context.state[credential_key] == test_credential + + # Verify we can retrieve it using the get method (simulating load_credential) + retrieved = tool_context.state.get(credential_key) + assert retrieved == test_credential diff --git a/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py b/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py new file mode 100644 index 000000000..ef1dbbbee --- /dev/null +++ b/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py @@ -0,0 +1,220 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import time +from unittest.mock import Mock +from unittest.mock import patch + +from authlib.oauth2.rfc6749 import OAuth2Token +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import OAuth2Auth +from google.adk.auth.auth_schemes import OpenIdConnectWithConfig +from google.adk.auth.exchanger.base_credential_exchanger import CredentialExchangError +from google.adk.auth.exchanger.oauth2_credential_exchanger import OAuth2CredentialExchanger +import pytest + + +class TestOAuth2CredentialExchanger: + """Test suite for OAuth2CredentialExchanger.""" + + @pytest.mark.asyncio + async def test_exchange_with_existing_token(self): + """Test exchange method when access token already exists.""" + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + access_token="existing_token", + ), + ) + + exchanger = OAuth2CredentialExchanger() + result = await exchanger.exchange(credential, scheme) + + # Should return the same credential since access token already exists + assert result == credential + assert result.oauth2.access_token == "existing_token" + + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @pytest.mark.asyncio + async def test_exchange_success(self, mock_oauth2_session): + """Test successful token exchange.""" + # Setup mock + mock_client = Mock() + mock_oauth2_session.return_value = mock_client + mock_tokens = OAuth2Token({ + "access_token": "new_access_token", + "refresh_token": "new_refresh_token", + "expires_at": int(time.time()) + 3600, + "expires_in": 3600, + }) + mock_client.fetch_token.return_value = mock_tokens + + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + auth_response_uri="https://example.com/callback?code=auth_code", + auth_code="auth_code", + ), + ) + + exchanger = OAuth2CredentialExchanger() + result = await exchanger.exchange(credential, scheme) + + # Verify token exchange was successful + assert result.oauth2.access_token == "new_access_token" + assert result.oauth2.refresh_token == "new_refresh_token" + mock_client.fetch_token.assert_called_once() + + @pytest.mark.asyncio + async def test_exchange_missing_auth_scheme(self): + """Test exchange with missing auth_scheme raises ValueError.""" + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + ), + ) + + exchanger = OAuth2CredentialExchanger() + try: + await exchanger.exchange(credential, None) + assert False, "Should have raised ValueError" + except CredentialExchangError as e: + assert "auth_scheme is required" in str(e) + + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @pytest.mark.asyncio + async def test_exchange_no_session(self, mock_oauth2_session): + """Test exchange when OAuth2Session cannot be created.""" + # Mock to return None for create_oauth2_session + mock_oauth2_session.return_value = None + + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + # Missing client_secret to trigger session creation failure + ), + ) + + exchanger = OAuth2CredentialExchanger() + result = await exchanger.exchange(credential, scheme) + + # Should return original credential when session creation fails + assert result == credential + assert result.oauth2.access_token is None + + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @pytest.mark.asyncio + async def test_exchange_fetch_token_failure(self, mock_oauth2_session): + """Test exchange when fetch_token fails.""" + # Setup mock to raise exception during fetch_token + mock_client = Mock() + mock_oauth2_session.return_value = mock_client + mock_client.fetch_token.side_effect = Exception("Token fetch failed") + + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + auth_response_uri="https://example.com/callback?code=auth_code", + auth_code="auth_code", + ), + ) + + exchanger = OAuth2CredentialExchanger() + result = await exchanger.exchange(credential, scheme) + + # Should return original credential when fetch_token fails + assert result == credential + assert result.oauth2.access_token is None + mock_client.fetch_token.assert_called_once() + + @pytest.mark.asyncio + async def test_exchange_authlib_not_available(self): + """Test exchange when authlib is not available.""" + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + auth_response_uri="https://example.com/callback?code=auth_code", + auth_code="auth_code", + ), + ) + + exchanger = OAuth2CredentialExchanger() + + # Mock AUTHLIB_AVIALABLE to False + with patch( + "google.adk.auth.exchanger.oauth2_credential_exchanger.AUTHLIB_AVIALABLE", + False, + ): + result = await exchanger.exchange(credential, scheme) + + # Should return original credential when authlib is not available + assert result == credential + assert result.oauth2.access_token is None diff --git a/tests/unittests/auth/exchanger/test_service_account_credential_exchanger.py b/tests/unittests/auth/exchanger/test_service_account_credential_exchanger.py deleted file mode 100644 index 195e143d3..000000000 --- a/tests/unittests/auth/exchanger/test_service_account_credential_exchanger.py +++ /dev/null @@ -1,433 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Unit tests for the ServiceAccountCredentialExchanger.""" - -from unittest.mock import MagicMock -from unittest.mock import patch - -from fastapi.openapi.models import HTTPBearer -from google.adk.auth.auth_credential import AuthCredential -from google.adk.auth.auth_credential import AuthCredentialTypes -from google.adk.auth.auth_credential import ServiceAccount -from google.adk.auth.auth_credential import ServiceAccountCredential -from google.adk.auth.exchanger.service_account_credential_exchanger import ServiceAccountCredentialExchanger -import pytest - - -class TestServiceAccountCredentialExchanger: - """Test cases for ServiceAccountCredentialExchanger.""" - - def test_exchange_with_valid_credential(self): - """Test successful exchange with valid service account credential.""" - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - service_account_credential=ServiceAccountCredential( - type_="service_account", - project_id="test-project", - private_key_id="key-id", - private_key=( - "-----BEGIN PRIVATE KEY-----\nMOCK_KEY\n-----END PRIVATE" - " KEY-----" - ), - client_email="test@test-project.iam.gserviceaccount.com", - client_id="12345", - auth_uri="https://accounts.google.com/o/oauth2/auth", - token_uri="https://oauth2.googleapis.com/token", - auth_provider_x509_cert_url=( - "https://www.googleapis.com/oauth2/v1/certs" - ), - client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/test%40test-project.iam.gserviceaccount.com", - universe_domain="googleapis.com", - ), - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - # This should not raise an exception - assert exchanger is not None - - @pytest.mark.asyncio - async def test_exchange_invalid_credential_type(self): - """Test exchange with invalid credential type raises ValueError.""" - credential = AuthCredential( - auth_type=AuthCredentialTypes.API_KEY, - api_key="test-key", - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises( - ValueError, match="Credential is not a service account credential" - ): - await exchanger.exchange(credential, auth_scheme) - - @pytest.mark.asyncio - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.service_account.Credentials.from_service_account_info" - ) - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.Request" - ) - async def test_exchange_with_explicit_credentials_success( - self, mock_request_class, mock_from_service_account_info - ): - """Test successful exchange with explicit service account credentials.""" - # Setup mocks - mock_request = MagicMock() - mock_request_class.return_value = mock_request - - mock_credentials = MagicMock() - mock_credentials.token = "mock_access_token" - mock_credentials.to_json.return_value = ( - '{"token": "mock_access_token", "type": "authorized_user"}' - ) - mock_from_service_account_info.return_value = mock_credentials - - # Create test credential - service_account_cred = ServiceAccountCredential( - type_="service_account", - project_id="test-project", - private_key_id="key-id", - private_key=( - "-----BEGIN PRIVATE KEY-----\nMOCK_KEY\n-----END PRIVATE KEY-----" - ), - client_email="test@test-project.iam.gserviceaccount.com", - client_id="12345", - auth_uri="https://accounts.google.com/o/oauth2/auth", - token_uri="https://oauth2.googleapis.com/token", - auth_provider_x509_cert_url=( - "https://www.googleapis.com/oauth2/v1/certs" - ), - client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/test%40test-project.iam.gserviceaccount.com", - universe_domain="googleapis.com", - ) - - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - service_account_credential=service_account_cred, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - result = await exchanger.exchange(credential, auth_scheme) - - # Verify the result - assert result.auth_type == AuthCredentialTypes.OAUTH2 - assert result.google_oauth2_json is not None - # Verify that google_oauth2_json contains the token - import json - - exchanged_creds = json.loads(result.google_oauth2_json) - assert exchanged_creds.get( - "token" - ) == "mock_access_token" or "mock_access_token" in str(exchanged_creds) - - # Verify mocks were called correctly - mock_from_service_account_info.assert_called_once_with( - service_account_cred.model_dump(), - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ) - mock_credentials.refresh.assert_called_once_with(mock_request) - - @pytest.mark.asyncio - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.google.auth.default" - ) - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.Request" - ) - async def test_exchange_with_default_credentials_success( - self, mock_request_class, mock_google_auth_default - ): - """Test successful exchange with default application credentials.""" - # Setup mocks - mock_request = MagicMock() - mock_request_class.return_value = mock_request - - mock_credentials = MagicMock() - mock_credentials.token = "default_access_token" - mock_credentials.to_json.return_value = ( - '{"token": "default_access_token", "type": "authorized_user"}' - ) - mock_google_auth_default.return_value = (mock_credentials, "test-project") - - # Create test credential with use_default_credential=True - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - use_default_credential=True, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - result = await exchanger.exchange(credential, auth_scheme) - - # Verify the result - assert result.auth_type == AuthCredentialTypes.OAUTH2 - assert result.google_oauth2_json is not None - # Verify that google_oauth2_json contains the token - import json - - exchanged_creds = json.loads(result.google_oauth2_json) - assert exchanged_creds.get( - "token" - ) == "default_access_token" or "default_access_token" in str( - exchanged_creds - ) - - # Verify mocks were called correctly - mock_google_auth_default.assert_called_once() - mock_credentials.refresh.assert_called_once_with(mock_request) - - @pytest.mark.asyncio - async def test_exchange_missing_service_account(self): - """Test exchange fails when service_account is None.""" - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=None, - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises( - ValueError, match="Service account credentials are missing" - ): - await exchanger.exchange(credential, auth_scheme) - - @pytest.mark.asyncio - async def test_exchange_missing_credentials_and_not_default(self): - """Test exchange fails when credentials are missing and use_default_credential is False.""" - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - service_account_credential=None, - use_default_credential=False, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises( - ValueError, match="Service account credentials are invalid" - ): - await exchanger.exchange(credential, auth_scheme) - - @pytest.mark.asyncio - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.service_account.Credentials.from_service_account_info" - ) - async def test_exchange_credential_creation_failure( - self, mock_from_service_account_info - ): - """Test exchange handles credential creation failure gracefully.""" - # Setup mock to raise exception - mock_from_service_account_info.side_effect = Exception( - "Invalid private key" - ) - - # Create test credential - service_account_cred = ServiceAccountCredential( - type_="service_account", - project_id="test-project", - private_key_id="key-id", - private_key="invalid-key", - client_email="test@test-project.iam.gserviceaccount.com", - client_id="12345", - auth_uri="https://accounts.google.com/o/oauth2/auth", - token_uri="https://oauth2.googleapis.com/token", - auth_provider_x509_cert_url=( - "https://www.googleapis.com/oauth2/v1/certs" - ), - client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/test%40test-project.iam.gserviceaccount.com", - universe_domain="googleapis.com", - ) - - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - service_account_credential=service_account_cred, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises( - ValueError, match="Failed to exchange service account token" - ): - await exchanger.exchange(credential, auth_scheme) - - @pytest.mark.asyncio - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.google.auth.default" - ) - async def test_exchange_default_credential_failure( - self, mock_google_auth_default - ): - """Test exchange handles default credential failure gracefully.""" - # Setup mock to raise exception - mock_google_auth_default.side_effect = Exception( - "No default credentials found" - ) - - # Create test credential with use_default_credential=True - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - use_default_credential=True, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises( - ValueError, match="Failed to exchange service account token" - ): - await exchanger.exchange(credential, auth_scheme) - - @pytest.mark.asyncio - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.service_account.Credentials.from_service_account_info" - ) - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.Request" - ) - async def test_exchange_refresh_failure( - self, mock_request_class, mock_from_service_account_info - ): - """Test exchange handles credential refresh failure gracefully.""" - # Setup mocks - mock_request = MagicMock() - mock_request_class.return_value = mock_request - - mock_credentials = MagicMock() - mock_credentials.refresh.side_effect = Exception( - "Network error during refresh" - ) - mock_from_service_account_info.return_value = mock_credentials - - # Create test credential - service_account_cred = ServiceAccountCredential( - type_="service_account", - project_id="test-project", - private_key_id="key-id", - private_key=( - "-----BEGIN PRIVATE KEY-----\nMOCK_KEY\n-----END PRIVATE KEY-----" - ), - client_email="test@test-project.iam.gserviceaccount.com", - client_id="12345", - auth_uri="https://accounts.google.com/o/oauth2/auth", - token_uri="https://oauth2.googleapis.com/token", - auth_provider_x509_cert_url=( - "https://www.googleapis.com/oauth2/v1/certs" - ), - client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/test%40test-project.iam.gserviceaccount.com", - universe_domain="googleapis.com", - ) - - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - service_account_credential=service_account_cred, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises( - ValueError, match="Failed to exchange service account token" - ): - await exchanger.exchange(credential, auth_scheme) - - @pytest.mark.asyncio - async def test_exchange_none_credential_in_constructor(self): - """Test that passing None credential raises appropriate error during exchange.""" - # This test verifies behavior when credential is None - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - - with pytest.raises(ValueError, match="Credential cannot be None"): - await exchanger.exchange(None, auth_scheme) - - @pytest.mark.asyncio - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.google.auth.default" - ) - @patch( - "google.adk.auth.exchanger.service_account_credential_exchanger.Request" - ) - async def test_exchange_with_service_account_no_explicit_credentials( - self, mock_request_class, mock_google_auth_default - ): - """Test exchange with service account that has no explicit credentials uses default.""" - # Setup mocks - mock_request = MagicMock() - mock_request_class.return_value = mock_request - - mock_credentials = MagicMock() - mock_credentials.token = "default_access_token" - mock_credentials.to_json.return_value = ( - '{"token": "default_access_token", "type": "authorized_user"}' - ) - mock_google_auth_default.return_value = (mock_credentials, "test-project") - - # Create test credential with no explicit credentials but use_default_credential=True - credential = AuthCredential( - auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, - service_account=ServiceAccount( - service_account_credential=None, - use_default_credential=True, - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ), - ) - - auth_scheme = HTTPBearer() - exchanger = ServiceAccountCredentialExchanger() - result = await exchanger.exchange(credential, auth_scheme) - - # Verify the result - assert result.auth_type == AuthCredentialTypes.OAUTH2 - assert result.google_oauth2_json is not None - # Verify that google_oauth2_json contains the token - import json - - exchanged_creds = json.loads(result.google_oauth2_json) - assert exchanged_creds.get( - "token" - ) == "default_access_token" or "default_access_token" in str( - exchanged_creds - ) - - # Verify mocks were called correctly - mock_google_auth_default.assert_called_once() - mock_credentials.refresh.assert_called_once_with(mock_request) diff --git a/tests/unittests/auth/refresher/__init__.py b/tests/unittests/auth/refresher/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/tests/unittests/auth/refresher/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/tests/unittests/auth/refresher/test_oauth2_credential_refresher.py b/tests/unittests/auth/refresher/test_oauth2_credential_refresher.py new file mode 100644 index 000000000..3342fcb05 --- /dev/null +++ b/tests/unittests/auth/refresher/test_oauth2_credential_refresher.py @@ -0,0 +1,179 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import time +from unittest.mock import Mock +from unittest.mock import patch + +from authlib.oauth2.rfc6749 import OAuth2Token +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import OAuth2Auth +from google.adk.auth.auth_schemes import OpenIdConnectWithConfig +from google.adk.auth.refresher.oauth2_credential_refresher import OAuth2CredentialRefresher +import pytest + + +class TestOAuth2CredentialRefresher: + """Test suite for OAuth2CredentialRefresher.""" + + @patch("google.adk.auth.refresher.oauth2_credential_refresher.OAuth2Token") + @pytest.mark.asyncio + async def test_needs_refresh_token_not_expired(self, mock_oauth2_token): + """Test needs_refresh when token is not expired.""" + mock_token_instance = Mock() + mock_token_instance.is_expired.return_value = False + mock_oauth2_token.return_value = mock_token_instance + + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + access_token="existing_token", + expires_at=int(time.time()) + 3600, + ), + ) + + refresher = OAuth2CredentialRefresher() + needs_refresh = await refresher.is_refresh_needed(credential, scheme) + + assert not needs_refresh + + @patch("google.adk.auth.refresher.oauth2_credential_refresher.OAuth2Token") + @pytest.mark.asyncio + async def test_needs_refresh_token_expired(self, mock_oauth2_token): + """Test needs_refresh when token is expired.""" + mock_token_instance = Mock() + mock_token_instance.is_expired.return_value = True + mock_oauth2_token.return_value = mock_token_instance + + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + access_token="existing_token", + expires_at=int(time.time()) - 3600, # Expired + ), + ) + + refresher = OAuth2CredentialRefresher() + needs_refresh = await refresher.is_refresh_needed(credential, scheme) + + assert needs_refresh + + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @patch("google.adk.auth.oauth2_credential_util.OAuth2Token") + @pytest.mark.asyncio + async def test_refresh_token_expired_success( + self, mock_oauth2_token, mock_oauth2_session + ): + """Test successful token refresh when token is expired.""" + # Setup mock token + mock_token_instance = Mock() + mock_token_instance.is_expired.return_value = True + mock_oauth2_token.return_value = mock_token_instance + + # Setup mock session + mock_client = Mock() + mock_oauth2_session.return_value = mock_client + mock_tokens = OAuth2Token({ + "access_token": "refreshed_access_token", + "refresh_token": "refreshed_refresh_token", + "expires_at": int(time.time()) + 3600, + "expires_in": 3600, + }) + mock_client.refresh_token.return_value = mock_tokens + + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + access_token="old_token", + refresh_token="old_refresh_token", + expires_at=int(time.time()) - 3600, # Expired + ), + ) + + refresher = OAuth2CredentialRefresher() + result = await refresher.refresh(credential, scheme) + + # Verify token refresh was successful + assert result.oauth2.access_token == "refreshed_access_token" + assert result.oauth2.refresh_token == "refreshed_refresh_token" + mock_client.refresh_token.assert_called_once() + + @pytest.mark.asyncio + async def test_refresh_no_oauth2_credential(self): + """Test refresh with no OAuth2 credential returns original.""" + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, + # No oauth2 field + ) + + refresher = OAuth2CredentialRefresher() + result = await refresher.refresh(credential, scheme) + + assert result == credential + + @pytest.mark.asyncio + async def test_needs_refresh_no_oauth2_credential(self): + """Test needs_refresh with no OAuth2 credential returns False.""" + credential = AuthCredential( + auth_type=AuthCredentialTypes.HTTP, + # No oauth2 field + ) + + refresher = OAuth2CredentialRefresher() + needs_refresh = await refresher.is_refresh_needed(credential, None) + + assert not needs_refresh diff --git a/tests/unittests/auth/test_auth_handler.py b/tests/unittests/auth/test_auth_handler.py index 2bfc7d4c9..f0d730d02 100644 --- a/tests/unittests/auth/test_auth_handler.py +++ b/tests/unittests/auth/test_auth_handler.py @@ -13,8 +13,11 @@ # limitations under the License. import copy +import time +from unittest.mock import Mock from unittest.mock import patch +from authlib.oauth2.rfc6749 import OAuth2Token from fastapi.openapi.models import APIKey from fastapi.openapi.models import APIKeyIn from fastapi.openapi.models import OAuth2 @@ -405,7 +408,8 @@ def test_get_auth_response_not_exists(self, auth_config): class TestParseAndStoreAuthResponse: """Tests for the parse_and_store_auth_response method.""" - def test_non_oauth_scheme(self, auth_config_with_exchanged): + @pytest.mark.asyncio + async def test_non_oauth_scheme(self, auth_config_with_exchanged): """Test with a non-OAuth auth scheme.""" # Modify the auth scheme type to be non-OAuth auth_config = copy.deepcopy(auth_config_with_exchanged) @@ -416,7 +420,7 @@ def test_non_oauth_scheme(self, auth_config_with_exchanged): handler = AuthHandler(auth_config) state = MockState() - handler.parse_and_store_auth_response(state) + await handler.parse_and_store_auth_response(state) credential_key = auth_config.credential_key assert ( @@ -424,7 +428,10 @@ def test_non_oauth_scheme(self, auth_config_with_exchanged): ) @patch("google.adk.auth.auth_handler.AuthHandler.exchange_auth_token") - def test_oauth_scheme(self, mock_exchange_token, auth_config_with_exchanged): + @pytest.mark.asyncio + async def test_oauth_scheme( + self, mock_exchange_token, auth_config_with_exchanged + ): """Test with an OAuth auth scheme.""" mock_exchange_token.return_value = AuthCredential( auth_type=AuthCredentialTypes.OAUTH2, @@ -434,7 +441,7 @@ def test_oauth_scheme(self, mock_exchange_token, auth_config_with_exchanged): handler = AuthHandler(auth_config_with_exchanged) state = MockState() - handler.parse_and_store_auth_response(state) + await handler.parse_and_store_auth_response(state) credential_key = auth_config_with_exchanged.credential_key assert state["temp:" + credential_key] == mock_exchange_token.return_value @@ -444,20 +451,20 @@ def test_oauth_scheme(self, mock_exchange_token, auth_config_with_exchanged): class TestExchangeAuthToken: """Tests for the exchange_auth_token method.""" - def test_token_exchange_not_supported( + @pytest.mark.asyncio + async def test_token_exchange_not_supported( self, auth_config_with_auth_code, monkeypatch ): """Test when token exchange is not supported.""" - monkeypatch.setattr( - "google.adk.auth.oauth2_credential_fetcher.AUTHLIB_AVIALABLE", False - ) + monkeypatch.setattr("google.adk.auth.auth_handler.AUTHLIB_AVIALABLE", False) handler = AuthHandler(auth_config_with_auth_code) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result == auth_config_with_auth_code.exchanged_auth_credential - def test_openid_missing_token_endpoint( + @pytest.mark.asyncio + async def test_openid_missing_token_endpoint( self, openid_auth_scheme, oauth2_credentials_with_auth_code ): """Test OpenID Connect without a token endpoint.""" @@ -472,11 +479,12 @@ def test_openid_missing_token_endpoint( ) handler = AuthHandler(config) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result == oauth2_credentials_with_auth_code - def test_oauth2_missing_token_url( + @pytest.mark.asyncio + async def test_oauth2_missing_token_url( self, oauth2_auth_scheme, oauth2_credentials_with_auth_code ): """Test OAuth2 without a token URL.""" @@ -491,11 +499,12 @@ def test_oauth2_missing_token_url( ) handler = AuthHandler(config) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result == oauth2_credentials_with_auth_code - def test_non_oauth_scheme(self, auth_config_with_auth_code): + @pytest.mark.asyncio + async def test_non_oauth_scheme(self, auth_config_with_auth_code): """Test with a non-OAuth auth scheme.""" # Modify the auth scheme type to be non-OAuth auth_config = copy.deepcopy(auth_config_with_auth_code) @@ -504,11 +513,12 @@ def test_non_oauth_scheme(self, auth_config_with_auth_code): ) handler = AuthHandler(auth_config) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result == auth_config.exchanged_auth_credential - def test_missing_credentials(self, oauth2_auth_scheme): + @pytest.mark.asyncio + async def test_missing_credentials(self, oauth2_auth_scheme): """Test with missing credentials.""" empty_credential = AuthCredential(auth_type=AuthCredentialTypes.OAUTH2) @@ -518,11 +528,12 @@ def test_missing_credentials(self, oauth2_auth_scheme): ) handler = AuthHandler(config) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result == empty_credential - def test_credentials_with_token( + @pytest.mark.asyncio + async def test_credentials_with_token( self, auth_config, oauth2_credentials_with_token ): """Test when credentials already have a token.""" @@ -533,18 +544,29 @@ def test_credentials_with_token( ) handler = AuthHandler(config) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result == oauth2_credentials_with_token - @patch( - "google.adk.auth.oauth2_credential_util.OAuth2Session", - MockOAuth2Session, - ) - def test_successful_token_exchange(self, auth_config_with_auth_code): + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @pytest.mark.asyncio + async def test_successful_token_exchange( + self, mock_oauth2_session, auth_config_with_auth_code + ): """Test a successful token exchange.""" + # Setup mock OAuth2Session + mock_client = Mock() + mock_oauth2_session.return_value = mock_client + mock_tokens = OAuth2Token({ + "access_token": "mock_access_token", + "refresh_token": "mock_refresh_token", + "expires_at": int(time.time()) + 3600, + "expires_in": 3600, + }) + mock_client.fetch_token.return_value = mock_tokens + handler = AuthHandler(auth_config_with_auth_code) - result = handler.exchange_auth_token() + result = await handler.exchange_auth_token() assert result.oauth2.access_token == "mock_access_token" assert result.oauth2.refresh_token == "mock_refresh_token" diff --git a/tests/unittests/auth/test_credential_manager.py b/tests/unittests/auth/test_credential_manager.py new file mode 100644 index 000000000..8e3638dd6 --- /dev/null +++ b/tests/unittests/auth/test_credential_manager.py @@ -0,0 +1,545 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest.mock import AsyncMock +from unittest.mock import Mock +from unittest.mock import patch + +from fastapi.openapi.models import HTTPBearer +from fastapi.openapi.models import OAuth2 +from fastapi.openapi.models import OAuthFlowAuthorizationCode +from fastapi.openapi.models import OAuthFlows +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import HttpAuth +from google.adk.auth.auth_credential import HttpCredentials +from google.adk.auth.auth_credential import OAuth2Auth +from google.adk.auth.auth_credential import ServiceAccount +from google.adk.auth.auth_credential import ServiceAccountCredential +from google.adk.auth.auth_schemes import AuthSchemeType +from google.adk.auth.auth_schemes import OpenIdConnectWithConfig +from google.adk.auth.auth_tool import AuthConfig +from google.adk.auth.credential_manager import CredentialManager +import pytest + + +class TestCredentialManager: + """Test suite for CredentialManager.""" + + def test_init(self): + """Test CredentialManager initialization.""" + auth_config = Mock(spec=AuthConfig) + manager = CredentialManager(auth_config) + assert manager._auth_config == auth_config + + @pytest.mark.asyncio + async def test_request_credential(self): + """Test request_credential method.""" + auth_config = Mock(spec=AuthConfig) + tool_context = Mock() + tool_context.request_credential = Mock() + + manager = CredentialManager(auth_config) + await manager.request_credential(tool_context) + + tool_context.request_credential.assert_called_once_with(auth_config) + + @pytest.mark.asyncio + async def test_load_auth_credentials_success(self): + """Test load_auth_credential with successful flow.""" + # Create mocks + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + # Mock the credential that will be returned + mock_credential = Mock(spec=AuthCredential) + mock_credential.auth_type = AuthCredentialTypes.API_KEY + + tool_context = Mock() + + manager = CredentialManager(auth_config) + + # Mock the private methods + manager._validate_credential = AsyncMock() + manager._is_credential_ready = Mock(return_value=False) + manager._load_existing_credential = AsyncMock(return_value=None) + manager._load_from_auth_response = AsyncMock(return_value=mock_credential) + manager._exchange_credential = AsyncMock( + return_value=(mock_credential, False) + ) + manager._refresh_credential = AsyncMock( + return_value=(mock_credential, False) + ) + manager._save_credential = AsyncMock() + + result = await manager.get_auth_credential(tool_context) + + # Verify all methods were called + manager._validate_credential.assert_called_once() + manager._is_credential_ready.assert_called_once() + manager._load_existing_credential.assert_called_once_with(tool_context) + manager._load_from_auth_response.assert_called_once_with(tool_context) + manager._exchange_credential.assert_called_once_with(mock_credential) + manager._refresh_credential.assert_called_once_with(mock_credential) + manager._save_credential.assert_called_once_with( + tool_context, mock_credential + ) + + assert result == mock_credential + + @pytest.mark.asyncio + async def test_load_auth_credentials_no_credential(self): + """Test load_auth_credential when no credential is available.""" + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + tool_context = Mock() + + manager = CredentialManager(auth_config) + + # Mock the private methods + manager._validate_credential = AsyncMock() + manager._is_credential_ready = Mock(return_value=False) + manager._load_existing_credential = AsyncMock(return_value=None) + manager._load_from_auth_response = AsyncMock(return_value=None) + manager._exchange_credential = AsyncMock() + manager._refresh_credential = AsyncMock() + manager._save_credential = AsyncMock() + + result = await manager.get_auth_credential(tool_context) + + # Verify methods were called but no credential returned + manager._validate_credential.assert_called_once() + manager._is_credential_ready.assert_called_once() + manager._load_existing_credential.assert_called_once_with(tool_context) + manager._load_from_auth_response.assert_called_once_with(tool_context) + manager._exchange_credential.assert_not_called() + manager._refresh_credential.assert_not_called() + manager._save_credential.assert_not_called() + + assert result is None + + @pytest.mark.asyncio + async def test_load_existing_credential_already_exchanged(self): + """Test _load_existing_credential when credential is already exchanged.""" + auth_config = Mock(spec=AuthConfig) + mock_credential = Mock(spec=AuthCredential) + auth_config.exchanged_auth_credential = mock_credential + + tool_context = Mock() + + manager = CredentialManager(auth_config) + manager._load_from_credential_service = AsyncMock(return_value=None) + + result = await manager._load_existing_credential(tool_context) + + assert result == mock_credential + + @pytest.mark.asyncio + async def test_load_existing_credential_with_credential_service(self): + """Test _load_existing_credential with credential service.""" + auth_config = Mock(spec=AuthConfig) + auth_config.exchanged_auth_credential = None + + mock_credential = Mock(spec=AuthCredential) + + tool_context = Mock() + + manager = CredentialManager(auth_config) + manager._load_from_credential_service = AsyncMock( + return_value=mock_credential + ) + + result = await manager._load_existing_credential(tool_context) + + manager._load_from_credential_service.assert_called_once_with(tool_context) + assert result == mock_credential + + @pytest.mark.asyncio + async def test_load_from_credential_service_with_service(self): + """Test _load_from_credential_service from tool context when credential service is available.""" + auth_config = Mock(spec=AuthConfig) + + mock_credential = Mock(spec=AuthCredential) + + # Mock credential service + credential_service = Mock() + credential_service.load_credential = AsyncMock(return_value=mock_credential) + + # Mock invocation context + invocation_context = Mock() + invocation_context.credential_service = credential_service + + tool_context = Mock() + tool_context._invocation_context = invocation_context + + manager = CredentialManager(auth_config) + result = await manager._load_from_credential_service(tool_context) + + credential_service.load_credential.assert_called_once_with( + auth_config, tool_context + ) + assert result == mock_credential + + @pytest.mark.asyncio + async def test_load_from_credential_service_no_service(self): + """Test _load_from_credential_service when no credential service is available.""" + auth_config = Mock(spec=AuthConfig) + + # Mock invocation context with no credential service + invocation_context = Mock() + invocation_context.credential_service = None + + tool_context = Mock() + tool_context._invocation_context = invocation_context + + manager = CredentialManager(auth_config) + result = await manager._load_from_credential_service(tool_context) + + assert result is None + + @pytest.mark.asyncio + async def test_save_credential_with_service(self): + """Test _save_credential with credential service.""" + auth_config = Mock(spec=AuthConfig) + mock_credential = Mock(spec=AuthCredential) + + # Mock credential service + credential_service = AsyncMock() + + # Mock invocation context + invocation_context = Mock() + invocation_context.credential_service = credential_service + + tool_context = Mock() + tool_context._invocation_context = invocation_context + + manager = CredentialManager(auth_config) + await manager._save_credential(tool_context, mock_credential) + + credential_service.save_credential.assert_called_once_with( + auth_config, tool_context + ) + assert auth_config.exchanged_auth_credential == mock_credential + + @pytest.mark.asyncio + async def test_save_credential_no_service(self): + """Test _save_credential when no credential service is available.""" + auth_config = Mock(spec=AuthConfig) + auth_config.exchanged_auth_credential = None + mock_credential = Mock(spec=AuthCredential) + + # Mock invocation context with no credential service + invocation_context = Mock() + invocation_context.credential_service = None + + tool_context = Mock() + tool_context._invocation_context = invocation_context + + manager = CredentialManager(auth_config) + await manager._save_credential(tool_context, mock_credential) + + # Should not raise an error, and credential should not be set in auth_config + # when there's no credential service (according to implementation) + assert auth_config.exchanged_auth_credential is None + + @pytest.mark.asyncio + async def test_refresh_credential_oauth2(self): + """Test _refresh_credential with OAuth2 credential.""" + mock_oauth2_auth = Mock(spec=OAuth2Auth) + + mock_credential = Mock(spec=AuthCredential) + mock_credential.auth_type = AuthCredentialTypes.OAUTH2 + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = Mock() + + # Mock refresher + mock_refresher = Mock() + mock_refresher.is_refresh_needed = AsyncMock(return_value=True) + mock_refresher.refresh = AsyncMock(return_value=mock_credential) + + auth_config.raw_auth_credential = mock_credential + + manager = CredentialManager(auth_config) + + # Mock the refresher registry to return our mock refresher + with patch.object( + manager._refresher_registry, + "get_refresher", + return_value=mock_refresher, + ): + result, was_refreshed = await manager._refresh_credential(mock_credential) + + mock_refresher.is_refresh_needed.assert_called_once_with( + mock_credential, auth_config.auth_scheme + ) + mock_refresher.refresh.assert_called_once_with( + mock_credential, auth_config.auth_scheme + ) + assert result == mock_credential + assert was_refreshed is True + + @pytest.mark.asyncio + async def test_refresh_credential_no_refresher(self): + """Test _refresh_credential with credential that has no refresher.""" + mock_credential = Mock(spec=AuthCredential) + mock_credential.auth_type = AuthCredentialTypes.API_KEY + + auth_config = Mock(spec=AuthConfig) + + manager = CredentialManager(auth_config) + + # Mock the refresher registry to return None (no refresher available) + with patch.object( + manager._refresher_registry, + "get_refresher", + return_value=None, + ): + result, was_refreshed = await manager._refresh_credential(mock_credential) + + assert result == mock_credential + assert was_refreshed is False + + @pytest.mark.asyncio + async def test_is_credential_ready_api_key(self): + """Test _is_credential_ready with API key credential.""" + mock_raw_credential = Mock(spec=AuthCredential) + mock_raw_credential.auth_type = AuthCredentialTypes.API_KEY + + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = mock_raw_credential + + manager = CredentialManager(auth_config) + result = manager._is_credential_ready() + + assert result is True + + @pytest.mark.asyncio + async def test_is_credential_ready_oauth2(self): + """Test _is_credential_ready with OAuth2 credential (needs processing).""" + mock_raw_credential = Mock(spec=AuthCredential) + mock_raw_credential.auth_type = AuthCredentialTypes.OAUTH2 + + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = mock_raw_credential + + manager = CredentialManager(auth_config) + result = manager._is_credential_ready() + + assert result is False + + @pytest.mark.asyncio + async def test_validate_credential_no_raw_credential_oauth2(self): + """Test _validate_credential with no raw credential for OAuth2.""" + auth_scheme = Mock() + auth_scheme.type_ = AuthSchemeType.oauth2 + + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = None + auth_config.auth_scheme = auth_scheme + + manager = CredentialManager(auth_config) + + with pytest.raises(ValueError, match="raw_auth_credential is required"): + await manager._validate_credential() + + @pytest.mark.asyncio + async def test_validate_credential_no_raw_credential_openid(self): + """Test _validate_credential with no raw credential for OpenID Connect.""" + auth_scheme = Mock() + auth_scheme.type_ = AuthSchemeType.openIdConnect + + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = None + auth_config.auth_scheme = auth_scheme + + manager = CredentialManager(auth_config) + + with pytest.raises(ValueError, match="raw_auth_credential is required"): + await manager._validate_credential() + + @pytest.mark.asyncio + async def test_validate_credential_no_raw_credential_other_scheme(self): + """Test _validate_credential with no raw credential for other schemes.""" + auth_scheme = Mock() + auth_scheme.type_ = AuthSchemeType.apiKey + + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = None + auth_config.auth_scheme = auth_scheme + + manager = CredentialManager(auth_config) + await manager._validate_credential() + + # Should return without error for non-OAuth2/OpenID schemes + + @pytest.mark.asyncio + async def test_validate_credential_oauth2_missing_oauth2_field(self): + """Test _validate_credential with OAuth2 credential missing oauth2 field.""" + auth_scheme = Mock() + auth_scheme.type_ = AuthSchemeType.oauth2 + + mock_raw_credential = Mock(spec=AuthCredential) + mock_raw_credential.auth_type = AuthCredentialTypes.OAUTH2 + mock_raw_credential.oauth2 = None + + auth_config = Mock(spec=AuthConfig) + auth_config.raw_auth_credential = mock_raw_credential + auth_config.auth_scheme = auth_scheme + + manager = CredentialManager(auth_config) + + with pytest.raises( + ValueError, match="auth_config.raw_credential.oauth2 required" + ): + await manager._validate_credential() + + @pytest.mark.asyncio + async def test_exchange_credentials_service_account(self): + """Test _exchange_credential with service account credential (no exchanger available).""" + mock_raw_credential = Mock(spec=AuthCredential) + mock_raw_credential.auth_type = AuthCredentialTypes.SERVICE_ACCOUNT + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = Mock() + + manager = CredentialManager(auth_config) + + # Mock the exchanger registry to return None (no exchanger available) + with patch.object( + manager._exchanger_registry, "get_exchanger", return_value=None + ): + result, was_exchanged = await manager._exchange_credential( + mock_raw_credential + ) + + assert result == mock_raw_credential + assert was_exchanged is False + + @pytest.mark.asyncio + async def test_exchange_credential_no_exchanger(self): + """Test _exchange_credential with credential that has no exchanger.""" + mock_raw_credential = Mock(spec=AuthCredential) + mock_raw_credential.auth_type = AuthCredentialTypes.API_KEY + + auth_config = Mock(spec=AuthConfig) + + manager = CredentialManager(auth_config) + + # Mock the exchanger registry to return None (no exchanger available) + with patch.object( + manager._exchanger_registry, "get_exchanger", return_value=None + ): + result, was_exchanged = await manager._exchange_credential( + mock_raw_credential + ) + + assert result == mock_raw_credential + assert was_exchanged is False + + +# Test fixtures +@pytest.fixture +def oauth2_auth_scheme(): + """Create an OAuth2 auth scheme for testing.""" + flows = OAuthFlows( + authorizationCode=OAuthFlowAuthorizationCode( + authorizationUrl="https://example.com/oauth2/authorize", + tokenUrl="https://example.com/oauth2/token", + scopes={"read": "Read access", "write": "Write access"}, + ) + ) + return OAuth2(flows=flows) + + +@pytest.fixture +def openid_auth_scheme(): + """Create an OpenID Connect auth scheme for testing.""" + return OpenIdConnectWithConfig( + type_="openIdConnect", + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid", "profile"], + ) + + +@pytest.fixture +def bearer_auth_scheme(): + """Create a Bearer auth scheme for testing.""" + return HTTPBearer(bearerFormat="JWT") + + +@pytest.fixture +def oauth2_credential(): + """Create OAuth2 credentials for testing.""" + return AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="mock_client_id", + client_secret="mock_client_secret", + redirect_uri="https://example.com/callback", + ), + ) + + +@pytest.fixture +def service_account_credential(): + """Create service account credentials for testing.""" + return AuthCredential( + auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, + service_account=ServiceAccount( + service_account_credential=ServiceAccountCredential( + type="service_account", + project_id="test-project", + private_key_id="key-id", + private_key=( + "-----BEGIN PRIVATE KEY-----\ntest\n-----END PRIVATE" + " KEY-----\n" + ), + client_email="test@test-project.iam.gserviceaccount.com", + client_id="123456789", + auth_uri="https://accounts.google.com/o/oauth2/auth", + token_uri="https://oauth2.googleapis.com/token", + auth_provider_x509_cert_url=( + "https://www.googleapis.com/oauth2/v1/certs" + ), + client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/test%40test-project.iam.gserviceaccount.com", + ), + scopes=["https://www.googleapis.com/auth/cloud-platform"], + ), + ) + + +@pytest.fixture +def api_key_credential(): + """Create API key credentials for testing.""" + return AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, + api_key="test-api-key", + ) + + +@pytest.fixture +def http_bearer_credential(): + """Create HTTP Bearer credentials for testing.""" + return AuthCredential( + auth_type=AuthCredentialTypes.HTTP, + http=HttpAuth( + scheme="bearer", + credentials=HttpCredentials(token="bearer-token"), + ), + ) diff --git a/tests/unittests/auth/test_oauth2_credential_fetcher.py b/tests/unittests/auth/test_oauth2_credential_fetcher.py deleted file mode 100644 index aba6a9923..000000000 --- a/tests/unittests/auth/test_oauth2_credential_fetcher.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import time -from unittest.mock import Mock - -from authlib.oauth2.rfc6749 import OAuth2Token -from fastapi.openapi.models import OAuth2 -from fastapi.openapi.models import OAuthFlowAuthorizationCode -from fastapi.openapi.models import OAuthFlows -from google.adk.auth.auth_credential import AuthCredential -from google.adk.auth.auth_credential import AuthCredentialTypes -from google.adk.auth.auth_credential import OAuth2Auth -from google.adk.auth.auth_schemes import OpenIdConnectWithConfig -from google.adk.auth.oauth2_credential_util import create_oauth2_session -from google.adk.auth.oauth2_credential_util import update_credential_with_tokens - - -class TestOAuth2CredentialUtil: - """Test suite for OAuth2 credential utility functions.""" - - def test_create_oauth2_session_openid_connect(self): - """Test create_oauth2_session with OpenID Connect scheme.""" - scheme = OpenIdConnectWithConfig( - type_="openIdConnect", - openId_connect_url=( - "https://example.com/.well-known/openid_configuration" - ), - authorization_endpoint="https://example.com/auth", - token_endpoint="https://example.com/token", - scopes=["openid", "profile"], - ) - credential = AuthCredential( - auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, - oauth2=OAuth2Auth( - client_id="test_client_id", - client_secret="test_client_secret", - redirect_uri="https://example.com/callback", - state="test_state", - ), - ) - - client, token_endpoint = create_oauth2_session(scheme, credential) - - assert client is not None - assert token_endpoint == "https://example.com/token" - assert client.client_id == "test_client_id" - assert client.client_secret == "test_client_secret" - - def test_create_oauth2_session_oauth2_scheme(self): - """Test create_oauth2_session with OAuth2 scheme.""" - flows = OAuthFlows( - authorizationCode=OAuthFlowAuthorizationCode( - authorizationUrl="https://example.com/auth", - tokenUrl="https://example.com/token", - scopes={"read": "Read access", "write": "Write access"}, - ) - ) - scheme = OAuth2(type_="oauth2", flows=flows) - credential = AuthCredential( - auth_type=AuthCredentialTypes.OAUTH2, - oauth2=OAuth2Auth( - client_id="test_client_id", - client_secret="test_client_secret", - redirect_uri="https://example.com/callback", - ), - ) - - client, token_endpoint = create_oauth2_session(scheme, credential) - - assert client is not None - assert token_endpoint == "https://example.com/token" - - def test_create_oauth2_session_invalid_scheme(self): - """Test create_oauth2_session with invalid scheme.""" - scheme = Mock() # Invalid scheme type - credential = AuthCredential( - auth_type=AuthCredentialTypes.OAUTH2, - oauth2=OAuth2Auth( - client_id="test_client_id", - client_secret="test_client_secret", - ), - ) - - client, token_endpoint = create_oauth2_session(scheme, credential) - - assert client is None - assert token_endpoint is None - - def test_create_oauth2_session_missing_credentials(self): - """Test create_oauth2_session with missing credentials.""" - scheme = OpenIdConnectWithConfig( - type_="openIdConnect", - openId_connect_url=( - "https://example.com/.well-known/openid_configuration" - ), - authorization_endpoint="https://example.com/auth", - token_endpoint="https://example.com/token", - scopes=["openid"], - ) - credential = AuthCredential( - auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, - oauth2=OAuth2Auth( - client_id="test_client_id", - # Missing client_secret - ), - ) - - client, token_endpoint = create_oauth2_session(scheme, credential) - - assert client is None - assert token_endpoint is None - - def test_update_credential_with_tokens(self): - """Test update_credential_with_tokens function.""" - credential = AuthCredential( - auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, - oauth2=OAuth2Auth( - client_id="test_client_id", - client_secret="test_client_secret", - ), - ) - - tokens = OAuth2Token({ - "access_token": "new_access_token", - "refresh_token": "new_refresh_token", - "expires_at": int(time.time()) + 3600, - "expires_in": 3600, - }) - - update_credential_with_tokens(credential, tokens) - - assert credential.oauth2.access_token == "new_access_token" - assert credential.oauth2.refresh_token == "new_refresh_token" - assert credential.oauth2.expires_at == int(time.time()) + 3600 - assert credential.oauth2.expires_in == 3600 diff --git a/tests/unittests/cli/test_fast_api.py b/tests/unittests/cli/test_fast_api.py index 65c1eee3b..d4f9382e3 100755 --- a/tests/unittests/cli/test_fast_api.py +++ b/tests/unittests/cli/test_fast_api.py @@ -13,10 +13,14 @@ # limitations under the License. import asyncio +import json import logging +import os +from pathlib import Path +import sys +import tempfile import time from typing import Any -from typing import Optional from unittest.mock import MagicMock from unittest.mock import patch @@ -40,7 +44,7 @@ level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) -logger = logging.getLogger(__name__) +logger = logging.getLogger("google_adk." + __name__) # Here we create a dummy agent module that get_fast_api_app expects @@ -138,6 +142,7 @@ async def mock_run_evals_for_fast_api(*args, **kwargs): final_eval_status=1, # Matches expected (assuming 1 is PASSED) user_id="test_user", # Placeholder, adapt if needed session_id="test_session_for_eval_case", # Placeholder + eval_set_file="test_eval_set_file", # Placeholder overall_eval_metric_results=[{ # Matches expected "metricName": "tool_trajectory_avg_score", "threshold": 0.5, @@ -372,7 +377,7 @@ def add_eval_case(self, app_name, eval_set_id, eval_case): @pytest.fixture def mock_eval_set_results_manager(): - """Create a mock eval set results manager.""" + """Create a mock local eval set results manager.""" # Storage for eval set results. eval_set_results = {} @@ -464,6 +469,9 @@ def test_app( artifact_service_uri="", memory_service_uri="", allow_origins=["*"], + a2a=False, # Disable A2A for most tests + host="127.0.0.1", + port=8000, ) # Create a TestClient that doesn't start a real server @@ -519,6 +527,134 @@ async def create_test_eval_set( return test_session_info +@pytest.fixture +@pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) +def temp_agents_dir_with_a2a(): + """Create a temporary agents directory with A2A agent configurations for testing.""" + with tempfile.TemporaryDirectory() as temp_dir: + # Create test agent directory + agent_dir = Path(temp_dir) / "test_a2a_agent" + agent_dir.mkdir() + + # Create agent.json file + agent_card = { + "name": "test_a2a_agent", + "description": "Test A2A agent", + "version": "1.0.0", + "author": "test", + "capabilities": ["text"], + } + + with open(agent_dir / "agent.json", "w") as f: + json.dump(agent_card, f) + + # Create a simple agent.py file + agent_py_content = """ +from google.adk.agents.base_agent import BaseAgent + +class TestA2AAgent(BaseAgent): + def __init__(self): + super().__init__(name="test_a2a_agent") +""" + + with open(agent_dir / "agent.py", "w") as f: + f.write(agent_py_content) + + yield temp_dir + + +@pytest.fixture +@pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) +def test_app_with_a2a( + mock_session_service, + mock_artifact_service, + mock_memory_service, + mock_agent_loader, + mock_eval_sets_manager, + mock_eval_set_results_manager, + temp_agents_dir_with_a2a, +): + """Create a TestClient for the FastAPI app with A2A enabled.""" + + # Mock A2A related classes + with ( + patch("signal.signal", return_value=None), + patch( + "google.adk.cli.fast_api.InMemorySessionService", + return_value=mock_session_service, + ), + patch( + "google.adk.cli.fast_api.InMemoryArtifactService", + return_value=mock_artifact_service, + ), + patch( + "google.adk.cli.fast_api.InMemoryMemoryService", + return_value=mock_memory_service, + ), + patch( + "google.adk.cli.fast_api.AgentLoader", + return_value=mock_agent_loader, + ), + patch( + "google.adk.cli.fast_api.LocalEvalSetsManager", + return_value=mock_eval_sets_manager, + ), + patch( + "google.adk.cli.fast_api.LocalEvalSetResultsManager", + return_value=mock_eval_set_results_manager, + ), + patch( + "google.adk.cli.cli_eval.run_evals", + new=mock_run_evals_for_fast_api, + ), + patch("a2a.server.tasks.InMemoryTaskStore") as mock_task_store, + patch( + "google.adk.a2a.executor.a2a_agent_executor.A2aAgentExecutor" + ) as mock_executor, + patch( + "a2a.server.request_handlers.DefaultRequestHandler" + ) as mock_handler, + patch("a2a.server.apps.A2AStarletteApplication") as mock_a2a_app, + ): + # Configure mocks + mock_task_store.return_value = MagicMock() + mock_executor.return_value = MagicMock() + mock_handler.return_value = MagicMock() + + # Mock A2AStarletteApplication + mock_app_instance = MagicMock() + mock_app_instance.routes.return_value = ( + [] + ) # Return empty routes for testing + mock_a2a_app.return_value = mock_app_instance + + # Change to temp directory + original_cwd = os.getcwd() + os.chdir(temp_agents_dir_with_a2a) + + try: + app = get_fast_api_app( + agents_dir=".", + web=True, + session_service_uri="", + artifact_service_uri="", + memory_service_uri="", + allow_origins=["*"], + a2a=True, + host="127.0.0.1", + port=8000, + ) + + client = TestClient(app) + yield client + finally: + os.chdir(original_cwd) + + ################################################# # Test Cases ################################################# @@ -759,5 +895,28 @@ def test_debug_trace(test_app): logger.info("Debug trace test completed successfully") +@pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) +def test_a2a_agent_discovery(test_app_with_a2a): + """Test that A2A agents are properly discovered and configured.""" + # This test mainly verifies that the A2A setup doesn't break the app + response = test_app_with_a2a.get("/list-apps") + assert response.status_code == 200 + logger.info("A2A agent discovery test passed") + + +@pytest.mark.skipif( + sys.version_info < (3, 10), reason="A2A requires Python 3.10+" +) +def test_a2a_disabled_by_default(test_app): + """Test that A2A functionality is disabled by default.""" + # The regular test_app fixture has a2a=False + # This test ensures no A2A routes are added + response = test_app.get("/list-apps") + assert response.status_code == 200 + logger.info("A2A disabled by default test passed") + + if __name__ == "__main__": pytest.main(["-xvs", __file__]) diff --git a/tests/unittests/cli/utils/test_cli_deploy.py b/tests/unittests/cli/utils/test_cli_deploy.py index 312844db8..d3b2a538c 100644 --- a/tests/unittests/cli/utils/test_cli_deploy.py +++ b/tests/unittests/cli/utils/test_cli_deploy.py @@ -162,6 +162,7 @@ def _recording_copytree(*args: Any, **kwargs: Any): trace_to_cloud=True, with_ui=True, verbosity="info", + log_level="info", session_service_uri="sqlite://", artifact_service_uri="gs://bucket", memory_service_uri="rag://", @@ -206,6 +207,7 @@ def _fake_rmtree(path: str | Path, *a: Any, **k: Any) -> None: trace_to_cloud=False, with_ui=False, verbosity="info", + log_level="info", adk_version="1.0.0", session_service_uri=None, artifact_service_uri=None, diff --git a/tests/unittests/evaluation/test_final_response_match_v1.py b/tests/unittests/evaluation/test_final_response_match_v1.py new file mode 100644 index 000000000..d5544a5a1 --- /dev/null +++ b/tests/unittests/evaluation/test_final_response_match_v1.py @@ -0,0 +1,140 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from google.adk.evaluation.eval_case import Invocation +from google.adk.evaluation.eval_metrics import EvalMetric +from google.adk.evaluation.evaluator import EvalStatus +from google.adk.evaluation.final_response_match_v1 import _calculate_rouge_1_scores +from google.adk.evaluation.final_response_match_v1 import RougeEvaluator +from google.genai import types as genai_types +import pytest + + +def _create_test_rouge_evaluator(threshold: float) -> RougeEvaluator: + return RougeEvaluator( + EvalMetric(metric_name="response_match_score", threshold=threshold) + ) + + +def _create_test_invocations( + candidate: str, reference: str +) -> tuple[Invocation, Invocation]: + """Returns tuple of (actual_invocation, expected_invocation).""" + return Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="This is a test query.")] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text=candidate)] + ), + ), Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="This is a test query.")] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text=reference)] + ), + ) + + +def test_calculate_rouge_1_scores_empty_candidate_and_reference(): + candidate = "" + reference = "" + rouge_1_score = _calculate_rouge_1_scores(candidate, reference) + assert rouge_1_score.precision == 0 + assert rouge_1_score.recall == 0 + assert rouge_1_score.fmeasure == 0 + + +def test_calculate_rouge_1_scores_empty_candidate(): + candidate = "" + reference = "This is a test reference." + rouge_1_score = _calculate_rouge_1_scores(candidate, reference) + assert rouge_1_score.precision == 0 + assert rouge_1_score.recall == 0 + assert rouge_1_score.fmeasure == 0 + + +def test_calculate_rouge_1_scores_empty_reference(): + candidate = "This is a test candidate response." + reference = "" + rouge_1_score = _calculate_rouge_1_scores(candidate, reference) + assert rouge_1_score.precision == 0 + assert rouge_1_score.recall == 0 + assert rouge_1_score.fmeasure == 0 + + +def test_calculate_rouge_1_scores(): + candidate = "This is a test candidate response." + reference = "This is a test reference." + rouge_1_score = _calculate_rouge_1_scores(candidate, reference) + assert rouge_1_score.precision == pytest.approx(2 / 3) + assert rouge_1_score.recall == pytest.approx(4 / 5) + assert rouge_1_score.fmeasure == pytest.approx(8 / 11) + + +@pytest.mark.parametrize( + "candidates, references, expected_score, expected_status", + [ + ( + ["The quick brown fox jumps.", "hello world"], + ["The quick brown fox jumps over the lazy dog.", "hello"], + 0.69048, # (5/7 + 2/3) / 2 + EvalStatus.FAILED, + ), + ( + ["This is a test.", "Another test case."], + ["This is a test.", "This is a different test."], + 0.625, # (1 + 1/4) / 2 + EvalStatus.FAILED, + ), + ( + ["No matching words here.", "Second candidate."], + ["Completely different text.", "Another reference."], + 0.0, # (0 + 1/2) / 2 + EvalStatus.FAILED, + ), + ( + ["Same words", "Same words"], + ["Same words", "Same words"], + 1.0, + EvalStatus.PASSED, + ), + ], +) +def test_rouge_evaluator_multiple_invocations( + candidates: list[str], + references: list[str], + expected_score: float, + expected_status: EvalStatus, +): + rouge_evaluator = _create_test_rouge_evaluator(threshold=0.8) + actual_invocations = [] + expected_invocations = [] + for candidate, reference in zip(candidates, references): + actual_invocation, expected_invocation = _create_test_invocations( + candidate, reference + ) + actual_invocations.append(actual_invocation) + expected_invocations.append(expected_invocation) + + evaluation_result = rouge_evaluator.evaluate_invocations( + actual_invocations, expected_invocations + ) + assert evaluation_result.overall_score == pytest.approx( + expected_score, rel=1e-3 + ) + assert evaluation_result.overall_eval_status == expected_status diff --git a/tests/unittests/evaluation/test_response_evaluator.py b/tests/unittests/evaluation/test_response_evaluator.py index bbaa694f2..839b7188a 100644 --- a/tests/unittests/evaluation/test_response_evaluator.py +++ b/tests/unittests/evaluation/test_response_evaluator.py @@ -16,7 +16,10 @@ from unittest.mock import MagicMock from unittest.mock import patch +from google.adk.evaluation.eval_case import Invocation +from google.adk.evaluation.evaluator import EvalStatus from google.adk.evaluation.response_evaluator import ResponseEvaluator +from google.genai import types as genai_types import pandas as pd import pytest from vertexai.preview.evaluation import MetricPromptTemplateExamples @@ -63,7 +66,7 @@ "google.adk.evaluation.response_evaluator.ResponseEvaluator._perform_eval" ) class TestResponseEvaluator: - """A class to help organize "patch" that are applicabple to all tests.""" + """A class to help organize "patch" that are applicable to all tests.""" def test_evaluate_none_dataset_raises_value_error(self, mock_perform_eval): """Test evaluate function raises ValueError for an empty list.""" @@ -77,6 +80,40 @@ def test_evaluate_empty_dataset_raises_value_error(self, mock_perform_eval): ResponseEvaluator.evaluate([], ["response_evaluation_score"]) mock_perform_eval.assert_not_called() # Ensure _perform_eval was not called + def test_evaluate_invocations_rouge_metric(self, mock_perform_eval): + """Test evaluate_invocations function for Rouge metric.""" + actual_invocations = [ + Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="This is a test query.")] + ), + final_response=genai_types.Content( + parts=[ + genai_types.Part(text="This is a test candidate response.") + ] + ), + ) + ] + expected_invocations = [ + Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="This is a test query.")] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text="This is a test reference.")] + ), + ) + ] + evaluator = ResponseEvaluator( + threshold=0.8, metric_name="response_match_score" + ) + evaluation_result = evaluator.evaluate_invocations( + actual_invocations, expected_invocations + ) + assert evaluation_result.overall_score == pytest.approx(8 / 11) + # ROUGE-1 F1 is approx. 0.73 < 0.8 threshold, so eval status is FAILED. + assert evaluation_result.overall_eval_status == EvalStatus.FAILED + def test_evaluate_determines_metrics_correctly_for_perform_eval( self, mock_perform_eval ): diff --git a/tests/unittests/flows/llm_flows/test_contents.py b/tests/unittests/flows/llm_flows/test_contents.py new file mode 100644 index 000000000..a330852a1 --- /dev/null +++ b/tests/unittests/flows/llm_flows/test_contents.py @@ -0,0 +1,361 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk.agents import Agent +from google.adk.events.event import Event +from google.adk.flows.llm_flows import contents +from google.adk.flows.llm_flows.contents import _convert_foreign_event +from google.adk.flows.llm_flows.contents import _get_contents +from google.adk.flows.llm_flows.contents import _merge_function_response_events +from google.adk.flows.llm_flows.contents import _rearrange_events_for_async_function_responses_in_history +from google.adk.flows.llm_flows.contents import _rearrange_events_for_latest_function_response +from google.adk.models import LlmRequest +from google.genai import types +import pytest + +from ... import testing_utils + + +@pytest.mark.asyncio +async def test_content_processor_no_contents(): + """Test ContentLlmRequestProcessor when include_contents is 'none'.""" + agent = Agent(model="gemini-1.5-flash", name="agent", include_contents="none") + llm_request = LlmRequest(model="gemini-1.5-flash") + invocation_context = await testing_utils.create_invocation_context( + agent=agent + ) + + # Collect events from async generator + events = [] + async for event in contents.request_processor.run_async( + invocation_context, llm_request + ): + events.append(event) + + # Should not yield any events + assert len(events) == 0 + # Contents should not be set when include_contents is 'none' + assert llm_request.contents == [] + + +@pytest.mark.asyncio +async def test_content_processor_with_contents(): + """Test ContentLlmRequestProcessor when include_contents is not 'none'.""" + agent = Agent(model="gemini-1.5-flash", name="agent") + llm_request = LlmRequest(model="gemini-1.5-flash") + invocation_context = await testing_utils.create_invocation_context( + agent=agent + ) + + # Add some test events to the session + test_event = Event( + invocation_id="test_inv", + author="user", + content=types.Content( + role="user", parts=[types.Part.from_text(text="Hello")] + ), + ) + invocation_context.session.events = [test_event] + + # Collect events from async generator + events = [] + async for event in contents.request_processor.run_async( + invocation_context, llm_request + ): + events.append(event) + + # Should not yield any events (processor doesn't emit events, just modifies request) + assert len(events) == 0 + # Contents should be set + assert llm_request.contents is not None + assert len(llm_request.contents) == 1 + assert llm_request.contents[0].role == "user" + assert llm_request.contents[0].parts[0].text == "Hello" + + +@pytest.mark.asyncio +async def test_content_processor_non_llm_agent(): + """Test ContentLlmRequestProcessor with non-LLM agent.""" + from google.adk.agents.base_agent import BaseAgent + + # Create a base agent (not LLM agent) + agent = BaseAgent(name="base_agent") + llm_request = LlmRequest(model="gemini-1.5-flash") + invocation_context = await testing_utils.create_invocation_context( + agent=agent + ) + + # Collect events from async generator + events = [] + async for event in contents.request_processor.run_async( + invocation_context, llm_request + ): + events.append(event) + + # Should not yield any events and not modify request + assert len(events) == 0 + assert llm_request.contents == [] + + +def test_get_contents_empty_events(): + """Test _get_contents with empty events list.""" + contents_result = _get_contents(None, [], "test_agent") + assert contents_result == [] + + +def test_get_contents_with_events(): + """Test _get_contents with valid events.""" + test_event = Event( + invocation_id="test_inv", + author="user", + content=types.Content( + role="user", parts=[types.Part.from_text(text="Hello")] + ), + ) + + contents_result = _get_contents(None, [test_event], "test_agent") + assert len(contents_result) == 1 + assert contents_result[0].role == "user" + assert contents_result[0].parts[0].text == "Hello" + + +def test_get_contents_filters_empty_events(): + """Test _get_contents filters out events with empty content.""" + # Event with empty text + empty_event = Event( + invocation_id="test_inv", + author="user", + content=types.Content(role="user", parts=[types.Part.from_text(text="")]), + ) + + # Event without content + no_content_event = Event( + invocation_id="test_inv", + author="user", + ) + + # Valid event + valid_event = Event( + invocation_id="test_inv", + author="user", + content=types.Content( + role="user", parts=[types.Part.from_text(text="Hello")] + ), + ) + + contents_result = _get_contents( + None, [empty_event, no_content_event, valid_event], "test_agent" + ) + assert len(contents_result) == 1 + assert contents_result[0].role == "user" + assert contents_result[0].parts[0].text == "Hello" + + +def test_convert_foreign_event(): + """Test _convert_foreign_event function.""" + agent_event = Event( + invocation_id="test_inv", + author="agent1", + content=types.Content( + role="model", parts=[types.Part.from_text(text="Agent response")] + ), + ) + + converted_event = _convert_foreign_event(agent_event) + + assert converted_event.author == "user" + assert converted_event.content.role == "user" + assert len(converted_event.content.parts) == 2 + assert converted_event.content.parts[0].text == "For context:" + assert ( + "[agent1] said: Agent response" in converted_event.content.parts[1].text + ) + + +def test_convert_event_with_function_call(): + """Test _convert_foreign_event with function call.""" + function_call = types.FunctionCall( + id="func_123", name="test_function", args={"param": "value"} + ) + + agent_event = Event( + invocation_id="test_inv", + author="agent1", + content=types.Content( + role="model", parts=[types.Part(function_call=function_call)] + ), + ) + + converted_event = _convert_foreign_event(agent_event) + + assert converted_event.author == "user" + assert converted_event.content.role == "user" + assert len(converted_event.content.parts) == 2 + assert converted_event.content.parts[0].text == "For context:" + assert ( + "[agent1] called tool `test_function`" + in converted_event.content.parts[1].text + ) + assert "{'param': 'value'}" in converted_event.content.parts[1].text + + +def test_convert_event_with_function_response(): + """Test _convert_foreign_event with function response.""" + function_response = types.FunctionResponse( + id="func_123", name="test_function", response={"result": "success"} + ) + + agent_event = Event( + invocation_id="test_inv", + author="agent1", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response)] + ), + ) + + converted_event = _convert_foreign_event(agent_event) + + assert converted_event.author == "user" + assert converted_event.content.role == "user" + assert len(converted_event.content.parts) == 2 + assert converted_event.content.parts[0].text == "For context:" + assert ( + "[agent1] `test_function` tool returned result:" + in converted_event.content.parts[1].text + ) + assert "{'result': 'success'}" in converted_event.content.parts[1].text + + +def test_merge_function_response_events(): + """Test _merge_function_response_events function.""" + # Create initial function response event + function_response1 = types.FunctionResponse( + id="func_123", name="test_function", response={"status": "pending"} + ) + + initial_event = Event( + invocation_id="test_inv", + author="user", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response1)] + ), + ) + + # Create final function response event + function_response2 = types.FunctionResponse( + id="func_123", name="test_function", response={"result": "success"} + ) + + final_event = Event( + invocation_id="test_inv2", + author="user", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response2)] + ), + ) + + merged_event = _merge_function_response_events([initial_event, final_event]) + + assert ( + merged_event.invocation_id == "test_inv" + ) # Should keep initial event ID + assert len(merged_event.content.parts) == 1 + # The first part should be replaced with the final response + assert merged_event.content.parts[0].function_response.response == { + "result": "success" + } + + +def test_rearrange_events_for_async_function_responses(): + """Test _rearrange_events_for_async_function_responses_in_history function.""" + # Create function call event + function_call = types.FunctionCall( + id="func_123", name="test_function", args={"param": "value"} + ) + + call_event = Event( + invocation_id="test_inv1", + author="agent", + content=types.Content( + role="model", parts=[types.Part(function_call=function_call)] + ), + ) + + # Create function response event + function_response = types.FunctionResponse( + id="func_123", name="test_function", response={"result": "success"} + ) + + response_event = Event( + invocation_id="test_inv2", + author="user", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response)] + ), + ) + + # Test rearrangement + events = [call_event, response_event] + rearranged = _rearrange_events_for_async_function_responses_in_history(events) + + # Should have both events in correct order + assert len(rearranged) == 2 + assert rearranged[0] == call_event + assert rearranged[1] == response_event + + +def test_rearrange_events_for_latest_function_response(): + """Test _rearrange_events_for_latest_function_response function.""" + # Create function call event + function_call = types.FunctionCall( + id="func_123", name="test_function", args={"param": "value"} + ) + + call_event = Event( + invocation_id="test_inv1", + author="agent", + content=types.Content( + role="model", parts=[types.Part(function_call=function_call)] + ), + ) + + # Create intermediate event + intermediate_event = Event( + invocation_id="test_inv2", + author="agent", + content=types.Content( + role="model", parts=[types.Part.from_text(text="Processing...")] + ), + ) + + # Create function response event + function_response = types.FunctionResponse( + id="func_123", name="test_function", response={"result": "success"} + ) + + response_event = Event( + invocation_id="test_inv3", + author="user", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response)] + ), + ) + + # Test with matching function call and response + events = [call_event, intermediate_event, response_event] + rearranged = _rearrange_events_for_latest_function_response(events) + + # Should remove intermediate events and merge responses + assert len(rearranged) == 2 + assert rearranged[0] == call_event diff --git a/tests/unittests/flows/llm_flows/test_functions_simple.py b/tests/unittests/flows/llm_flows/test_functions_simple.py index 2c5ef9bce..720af516d 100644 --- a/tests/unittests/flows/llm_flows/test_functions_simple.py +++ b/tests/unittests/flows/llm_flows/test_functions_simple.py @@ -17,6 +17,9 @@ from typing import Callable from google.adk.agents import Agent +from google.adk.events.event import Event +from google.adk.flows.llm_flows.functions import find_matching_function_call +from google.adk.sessions.session import Session from google.adk.tools import ToolContext from google.adk.tools.function_tool import FunctionTool from google.genai import types @@ -256,3 +259,136 @@ def increase_by_one(x: int) -> int: assert part.function_response.id is None assert events[0].content.parts[0].function_call.id.startswith('adk-') assert events[1].content.parts[0].function_response.id.startswith('adk-') + + +def test_find_function_call_event_no_function_response_in_last_event(): + """Test when last event has no function response.""" + events = [ + Event( + invocation_id='inv1', + author='user', + content=types.Content(role='user', parts=[types.Part(text='Hello')]), + ) + ] + + result = find_matching_function_call(events) + assert result is None + + +def test_find_function_call_event_empty_session_events(): + """Test when session has no events.""" + events = [] + + result = find_matching_function_call(events) + assert result is None + + +def test_find_function_call_event_function_response_but_no_matching_call(): + """Test when last event has function response but no matching call found.""" + # Create a function response + function_response = types.FunctionResponse( + id='func_123', name='test_func', response={} + ) + + events = [ + Event( + invocation_id='inv1', + author='agent1', + content=types.Content( + role='model', + parts=[types.Part(text='Some other response')], + ), + ), + Event( + invocation_id='inv2', + author='user', + content=types.Content( + role='user', + parts=[types.Part(function_response=function_response)], + ), + ), + ] + + result = find_matching_function_call(events) + assert result is None + + +def test_find_function_call_event_function_response_with_matching_call(): + """Test when last event has function response with matching function call.""" + # Create a function call + function_call = types.FunctionCall(id='func_123', name='test_func', args={}) + + # Create a function response with matching ID + function_response = types.FunctionResponse( + id='func_123', name='test_func', response={} + ) + + call_event = Event( + invocation_id='inv1', + author='agent1', + content=types.Content( + role='model', parts=[types.Part(function_call=function_call)] + ), + ) + + response_event = Event( + invocation_id='inv2', + author='user', + content=types.Content( + role='user', parts=[types.Part(function_response=function_response)] + ), + ) + + events = [call_event, response_event] + + result = find_matching_function_call(events) + assert result == call_event + + +def test_find_function_call_event_multiple_function_responses(): + """Test when last event has multiple function responses.""" + # Create function calls + function_call1 = types.FunctionCall(id='func_123', name='test_func1', args={}) + function_call2 = types.FunctionCall(id='func_456', name='test_func2', args={}) + + # Create function responses + function_response1 = types.FunctionResponse( + id='func_123', name='test_func1', response={} + ) + function_response2 = types.FunctionResponse( + id='func_456', name='test_func2', response={} + ) + + call_event1 = Event( + invocation_id='inv1', + author='agent1', + content=types.Content( + role='model', parts=[types.Part(function_call=function_call1)] + ), + ) + + call_event2 = Event( + invocation_id='inv2', + author='agent2', + content=types.Content( + role='model', parts=[types.Part(function_call=function_call2)] + ), + ) + + response_event = Event( + invocation_id='inv3', + author='user', + content=types.Content( + role='user', + parts=[ + types.Part(function_response=function_response1), + types.Part(function_response=function_response2), + ], + ), + ) + + events = [call_event1, call_event2, response_event] + + # Should return the first matching function call event found + result = find_matching_function_call(events) + assert result == call_event1 # First match (func_123) diff --git a/tests/unittests/memory/test_vertex_ai_memory_bank_service.py b/tests/unittests/memory/test_vertex_ai_memory_bank_service.py new file mode 100644 index 000000000..2fbf3291c --- /dev/null +++ b/tests/unittests/memory/test_vertex_ai_memory_bank_service.py @@ -0,0 +1,174 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import re +from typing import Any +from unittest import mock + +from google.adk.events import Event +from google.adk.memory.vertex_ai_memory_bank_service import VertexAiMemoryBankService +from google.adk.sessions import Session +from google.genai import types +import pytest + +MOCK_APP_NAME = 'test-app' +MOCK_USER_ID = 'test-user' + +MOCK_SESSION = Session( + app_name=MOCK_APP_NAME, + user_id=MOCK_USER_ID, + id='333', + last_update_time=22333, + events=[ + Event( + id='444', + invocation_id='123', + author='user', + timestamp=12345, + content=types.Content(parts=[types.Part(text='test_content')]), + ), + # Empty event, should be ignored + Event( + id='555', + invocation_id='456', + author='user', + timestamp=12345, + ), + ], +) + +MOCK_SESSION_WITH_EMPTY_EVENTS = Session( + app_name=MOCK_APP_NAME, + user_id=MOCK_USER_ID, + id='444', + last_update_time=22333, +) + + +RETRIEVE_MEMORIES_REGEX = r'^reasoningEngines/([^/]+)/memories:retrieve$' +GENERATE_MEMORIES_REGEX = r'^reasoningEngines/([^/]+)/memories:generate$' + + +class MockApiClient: + """Mocks the API Client.""" + + def __init__(self) -> None: + """Initializes MockClient.""" + self.async_request = mock.AsyncMock() + self.async_request.side_effect = self._mock_async_request + + async def _mock_async_request( + self, http_method: str, path: str, request_dict: dict[str, Any] + ): + """Mocks the API Client request method.""" + if http_method == 'POST': + if re.match(GENERATE_MEMORIES_REGEX, path): + return {} + elif re.match(RETRIEVE_MEMORIES_REGEX, path): + if ( + request_dict.get('scope', None) + and request_dict['scope'].get('app_name', None) == MOCK_APP_NAME + ): + return { + 'retrievedMemories': [ + { + 'memory': { + 'fact': 'test_content', + }, + 'updateTime': '2024-12-12T12:12:12.123456Z', + }, + ], + } + else: + return {'retrievedMemories': []} + else: + raise ValueError(f'Unsupported path: {path}') + else: + raise ValueError(f'Unsupported http method: {http_method}') + + +def mock_vertex_ai_memory_bank_service(): + """Creates a mock Vertex AI Memory Bank service for testing.""" + return VertexAiMemoryBankService( + project='test-project', + location='test-location', + agent_engine_id='123', + ) + + +@pytest.fixture +def mock_get_api_client(): + api_client = MockApiClient() + with mock.patch( + 'google.adk.memory.vertex_ai_memory_bank_service.VertexAiMemoryBankService._get_api_client', + return_value=api_client, + ): + yield api_client + + +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_add_session_to_memory(mock_get_api_client): + memory_service = mock_vertex_ai_memory_bank_service() + await memory_service.add_session_to_memory(MOCK_SESSION) + + mock_get_api_client.async_request.assert_awaited_once_with( + http_method='POST', + path='reasoningEngines/123/memories:generate', + request_dict={ + 'direct_contents_source': { + 'events': [ + { + 'content': { + 'parts': [ + {'text': 'test_content'}, + ], + }, + }, + ], + }, + 'scope': {'app_name': MOCK_APP_NAME, 'user_id': MOCK_USER_ID}, + }, + ) + + +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_add_empty_session_to_memory(mock_get_api_client): + memory_service = mock_vertex_ai_memory_bank_service() + await memory_service.add_session_to_memory(MOCK_SESSION_WITH_EMPTY_EVENTS) + + mock_get_api_client.async_request.assert_not_called() + + +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_search_memory(mock_get_api_client): + memory_service = mock_vertex_ai_memory_bank_service() + + result = await memory_service.search_memory( + app_name=MOCK_APP_NAME, user_id=MOCK_USER_ID, query='query' + ) + + mock_get_api_client.async_request.assert_awaited_once_with( + http_method='POST', + path='reasoningEngines/123/memories:retrieve', + request_dict={ + 'scope': {'app_name': MOCK_APP_NAME, 'user_id': MOCK_USER_ID}, + 'similarity_search_params': {'search_query': 'query'}, + }, + ) + + assert len(result.memories) == 1 + assert result.memories[0].content.parts[0].text == 'test_content' diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 8b43cc48b..b9b1fb409 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -416,9 +416,26 @@ def __init__(self, acompletion_mock, completion_mock): self.completion_mock = completion_mock async def acompletion(self, model, messages, tools, **kwargs): - return await self.acompletion_mock( - model=model, messages=messages, tools=tools, **kwargs - ) + if kwargs.get("stream", False): + kwargs_copy = dict(kwargs) + kwargs_copy.pop("stream", None) + + async def stream_generator(): + stream_data = self.completion_mock( + model=model, + messages=messages, + tools=tools, + stream=True, + **kwargs_copy, + ) + for item in stream_data: + yield item + + return stream_generator() + else: + return await self.acompletion_mock( + model=model, messages=messages, tools=tools, **kwargs + ) def completion(self, model, messages, tools, stream, **kwargs): return self.completion_mock( @@ -1430,3 +1447,35 @@ async def test_generate_content_async_non_compliant_multiple_function_calls( assert final_response.content.parts[1].function_call.name == "function_2" assert final_response.content.parts[1].function_call.id == "1" assert final_response.content.parts[1].function_call.args == {"arg": "value2"} + + +@pytest.mark.asyncio +def test_get_completion_inputs_generation_params(): + # Test that generation_params are extracted and mapped correctly + req = LlmRequest( + contents=[ + types.Content(role="user", parts=[types.Part.from_text(text="hi")]), + ], + config=types.GenerateContentConfig( + temperature=0.33, + max_output_tokens=123, + top_p=0.88, + top_k=7, + stop_sequences=["foo", "bar"], + presence_penalty=0.1, + frequency_penalty=0.2, + ), + ) + from google.adk.models.lite_llm import _get_completion_inputs + + _, _, _, generation_params = _get_completion_inputs(req) + assert generation_params["temperature"] == 0.33 + assert generation_params["max_completion_tokens"] == 123 + assert generation_params["top_p"] == 0.88 + assert generation_params["top_k"] == 7 + assert generation_params["stop"] == ["foo", "bar"] + assert generation_params["presence_penalty"] == 0.1 + assert generation_params["frequency_penalty"] == 0.2 + # Should not include max_output_tokens + assert "max_output_tokens" not in generation_params + assert "stop_sequences" not in generation_params diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index ec93caafb..d8344194f 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from datetime import datetime +from datetime import timezone import enum from google.adk.events import Event @@ -66,10 +68,17 @@ async def test_create_get_session(service_type): assert session.id assert session.state == state assert ( - await session_service.get_session( - app_name=app_name, user_id=user_id, session_id=session.id - ) - == session + session.last_update_time + <= datetime.now().astimezone(timezone.utc).timestamp() + ) + + got_session = await session_service.get_session( + app_name=app_name, user_id=user_id, session_id=session.id + ) + assert got_session == session + assert ( + got_session.last_update_time + <= datetime.now().astimezone(timezone.utc).timestamp() ) session_id = session.id diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 6a9e0b46a..52fa42c91 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -292,6 +292,21 @@ async def test_get_empty_session(agent_engine_id): assert str(excinfo.value) == 'Session not found: 0' +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +@pytest.mark.parametrize('agent_engine_id', [None, '123']) +async def test_get_another_user_session(agent_engine_id): + if agent_engine_id: + session_service = mock_vertex_ai_session_service(agent_engine_id) + else: + session_service = mock_vertex_ai_session_service() + with pytest.raises(ValueError) as excinfo: + await session_service.get_session( + app_name='123', user_id='user2', session_id='1' + ) + assert str(excinfo.value) == 'Session not found: 1' + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_get_and_delete_session(): diff --git a/tests/unittests/test_runners.py b/tests/unittests/test_runners.py new file mode 100644 index 000000000..8d5bd2418 --- /dev/null +++ b/tests/unittests/test_runners.py @@ -0,0 +1,310 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Optional + +from google.adk.agents.base_agent import BaseAgent +from google.adk.agents.llm_agent import LlmAgent +from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService +from google.adk.events.event import Event +from google.adk.runners import Runner +from google.adk.sessions.in_memory_session_service import InMemorySessionService +from google.adk.sessions.session import Session +from google.genai import types + + +class MockAgent(BaseAgent): + """Mock agent for unit testing.""" + + def __init__( + self, + name: str, + parent_agent: Optional[BaseAgent] = None, + ): + super().__init__(name=name, sub_agents=[]) + # BaseAgent doesn't have disallow_transfer_to_parent field + # This is intentional as we want to test non-LLM agents + if parent_agent: + self.parent_agent = parent_agent + + async def _run_async_impl(self, invocation_context): + yield Event( + invocation_id=invocation_context.invocation_id, + author=self.name, + content=types.Content( + role="model", parts=[types.Part(text="Test response")] + ), + ) + + +class MockLlmAgent(LlmAgent): + """Mock LLM agent for unit testing.""" + + def __init__( + self, + name: str, + disallow_transfer_to_parent: bool = False, + parent_agent: Optional[BaseAgent] = None, + ): + # Use a string model instead of mock + super().__init__(name=name, model="gemini-1.5-pro", sub_agents=[]) + self.disallow_transfer_to_parent = disallow_transfer_to_parent + self.parent_agent = parent_agent + + async def _run_async_impl(self, invocation_context): + yield Event( + invocation_id=invocation_context.invocation_id, + author=self.name, + content=types.Content( + role="model", parts=[types.Part(text="Test LLM response")] + ), + ) + + +class TestRunnerFindAgentToRun: + """Tests for Runner._find_agent_to_run method.""" + + def setup_method(self): + """Set up test fixtures.""" + self.session_service = InMemorySessionService() + self.artifact_service = InMemoryArtifactService() + + # Create test agents + self.root_agent = MockLlmAgent("root_agent") + self.sub_agent1 = MockLlmAgent("sub_agent1", parent_agent=self.root_agent) + self.sub_agent2 = MockLlmAgent("sub_agent2", parent_agent=self.root_agent) + self.non_transferable_agent = MockLlmAgent( + "non_transferable", + disallow_transfer_to_parent=True, + parent_agent=self.root_agent, + ) + + self.root_agent.sub_agents = [ + self.sub_agent1, + self.sub_agent2, + self.non_transferable_agent, + ] + + self.runner = Runner( + app_name="test_app", + agent=self.root_agent, + session_service=self.session_service, + artifact_service=self.artifact_service, + ) + + def test_find_agent_to_run_with_function_response_scenario(self): + """Test finding agent when last event is function response.""" + # Create a function call from sub_agent1 + function_call = types.FunctionCall(id="func_123", name="test_func", args={}) + function_response = types.FunctionResponse( + id="func_123", name="test_func", response={} + ) + + call_event = Event( + invocation_id="inv1", + author="sub_agent1", + content=types.Content( + role="model", parts=[types.Part(function_call=function_call)] + ), + ) + + response_event = Event( + invocation_id="inv2", + author="user", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response)] + ), + ) + + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[call_event, response_event], + ) + + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.sub_agent1 + + def test_find_agent_to_run_returns_root_agent_when_no_events(self): + """Test that root agent is returned when session has no non-user events.""" + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[ + Event( + invocation_id="inv1", + author="user", + content=types.Content( + role="user", parts=[types.Part(text="Hello")] + ), + ) + ], + ) + + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.root_agent + + def test_find_agent_to_run_returns_root_agent_when_found_in_events(self): + """Test that root agent is returned when it's found in session events.""" + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[ + Event( + invocation_id="inv1", + author="root_agent", + content=types.Content( + role="model", parts=[types.Part(text="Root response")] + ), + ) + ], + ) + + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.root_agent + + def test_find_agent_to_run_returns_transferable_sub_agent(self): + """Test that transferable sub agent is returned when found.""" + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[ + Event( + invocation_id="inv1", + author="sub_agent1", + content=types.Content( + role="model", parts=[types.Part(text="Sub agent response")] + ), + ) + ], + ) + + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.sub_agent1 + + def test_find_agent_to_run_skips_non_transferable_agent(self): + """Test that non-transferable agent is skipped and root agent is returned.""" + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[ + Event( + invocation_id="inv1", + author="non_transferable", + content=types.Content( + role="model", + parts=[types.Part(text="Non-transferable response")], + ), + ) + ], + ) + + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.root_agent + + def test_find_agent_to_run_skips_unknown_agent(self): + """Test that unknown agent is skipped and root agent is returned.""" + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[ + Event( + invocation_id="inv1", + author="unknown_agent", + content=types.Content( + role="model", + parts=[types.Part(text="Unknown agent response")], + ), + ), + Event( + invocation_id="inv2", + author="root_agent", + content=types.Content( + role="model", parts=[types.Part(text="Root response")] + ), + ), + ], + ) + + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.root_agent + + def test_find_agent_to_run_function_response_takes_precedence(self): + """Test that function response scenario takes precedence over other logic.""" + # Create a function call from sub_agent2 + function_call = types.FunctionCall(id="func_456", name="test_func", args={}) + function_response = types.FunctionResponse( + id="func_456", name="test_func", response={} + ) + + call_event = Event( + invocation_id="inv1", + author="sub_agent2", + content=types.Content( + role="model", parts=[types.Part(function_call=function_call)] + ), + ) + + # Add another event from root_agent + root_event = Event( + invocation_id="inv2", + author="root_agent", + content=types.Content( + role="model", parts=[types.Part(text="Root response")] + ), + ) + + response_event = Event( + invocation_id="inv3", + author="user", + content=types.Content( + role="user", parts=[types.Part(function_response=function_response)] + ), + ) + + session = Session( + id="test_session", + user_id="test_user", + app_name="test_app", + events=[call_event, root_event, response_event], + ) + + # Should return sub_agent2 due to function response, not root_agent + result = self.runner._find_agent_to_run(session, self.root_agent) + assert result == self.sub_agent2 + + def test_is_transferable_across_agent_tree_with_llm_agent(self): + """Test _is_transferable_across_agent_tree with LLM agent.""" + result = self.runner._is_transferable_across_agent_tree(self.sub_agent1) + assert result is True + + def test_is_transferable_across_agent_tree_with_non_transferable_agent(self): + """Test _is_transferable_across_agent_tree with non-transferable agent.""" + result = self.runner._is_transferable_across_agent_tree( + self.non_transferable_agent + ) + assert result is False + + def test_is_transferable_across_agent_tree_with_non_llm_agent(self): + """Test _is_transferable_across_agent_tree with non-LLM agent.""" + non_llm_agent = MockAgent("non_llm_agent") + # MockAgent inherits from BaseAgent, not LlmAgent, so it should return False + result = self.runner._is_transferable_across_agent_tree(non_llm_agent) + assert result is False diff --git a/tests/unittests/test_telemetry.py b/tests/unittests/test_telemetry.py index 1b8ee1b16..debdc802e 100644 --- a/tests/unittests/test_telemetry.py +++ b/tests/unittests/test_telemetry.py @@ -141,6 +141,36 @@ async def test_trace_call_llm_function_response_includes_part_from_bytes( assert llm_request_json_str.count('') == 2 +@pytest.mark.asyncio +async def test_trace_call_llm_usage_metadata(monkeypatch, mock_span_fixture): + monkeypatch.setattr( + 'opentelemetry.trace.get_current_span', lambda: mock_span_fixture + ) + + agent = LlmAgent(name='test_agent') + invocation_context = await _create_invocation_context(agent) + llm_request = LlmRequest( + config=types.GenerateContentConfig(system_instruction=''), + ) + llm_response = LlmResponse( + turn_complete=True, + usage_metadata=types.GenerateContentResponseUsageMetadata( + total_token_count=100, prompt_token_count=50 + ), + ) + trace_call_llm(invocation_context, 'test_event_id', llm_request, llm_response) + + expected_calls = [ + mock.call('gen_ai.system', 'gcp.vertex.agent'), + mock.call('gen_ai.usage.input_tokens', 50), + mock.call('gen_ai.usage.output_tokens', 100), + ] + assert mock_span_fixture.set_attribute.call_count == 9 + mock_span_fixture.set_attribute.assert_has_calls( + expected_calls, any_order=True + ) + + def test_trace_tool_call_with_scalar_response( monkeypatch, mock_span_fixture, mock_tool_fixture, mock_event_fixture ): diff --git a/tests/unittests/tools/application_integration_tool/test_integration_connector_tool.py b/tests/unittests/tools/application_integration_tool/test_integration_connector_tool.py index cd37a105e..c9b542e51 100644 --- a/tests/unittests/tools/application_integration_tool/test_integration_connector_tool.py +++ b/tests/unittests/tools/application_integration_tool/test_integration_connector_tool.py @@ -20,6 +20,7 @@ from google.adk.auth.auth_credential import HttpCredentials from google.adk.tools.application_integration_tool.integration_connector_tool import IntegrationConnectorTool from google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool import RestApiTool +from google.adk.tools.openapi_tool.openapi_spec_parser.tool_auth_handler import AuthPreparationResult from google.genai.types import FunctionDeclaration from google.genai.types import Schema from google.genai.types import Type @@ -50,7 +51,9 @@ def mock_rest_api_tool(): "required": ["user_id", "page_size", "filter", "connection_name"], } mock_tool._operation_parser = mock_parser - mock_tool.call.return_value = {"status": "success", "data": "mock_data"} + mock_tool.call = mock.AsyncMock( + return_value={"status": "success", "data": "mock_data"} + ) return mock_tool @@ -179,9 +182,6 @@ async def test_run_with_auth_async_none_token( "google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool.ToolAuthHandler.from_tool_context" ) as mock_from_tool_context: mock_tool_auth_handler_instance = mock.MagicMock() - mock_tool_auth_handler_instance.prepare_auth_credentials.return_value.state = ( - "done" - ) # Simulate an AuthCredential that would cause _prepare_dynamic_euc to return None mock_auth_credential_without_token = AuthCredential( auth_type=AuthCredentialTypes.HTTP, @@ -190,8 +190,12 @@ async def test_run_with_auth_async_none_token( credentials=HttpCredentials(token=None), # Token is None ), ) - mock_tool_auth_handler_instance.prepare_auth_credentials.return_value.auth_credential = ( - mock_auth_credential_without_token + mock_tool_auth_handler_instance.prepare_auth_credentials = mock.AsyncMock( + return_value=( + AuthPreparationResult( + state="done", auth_credential=mock_auth_credential_without_token + ) + ) ) mock_from_tool_context.return_value = mock_tool_auth_handler_instance @@ -229,18 +233,18 @@ async def test_run_with_auth_async( "google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool.ToolAuthHandler.from_tool_context" ) as mock_from_tool_context: mock_tool_auth_handler_instance = mock.MagicMock() - mock_tool_auth_handler_instance.prepare_auth_credentials.return_value.state = ( - "done" - ) - mock_tool_auth_handler_instance.prepare_auth_credentials.return_value.state = ( - "done" - ) - mock_tool_auth_handler_instance.prepare_auth_credentials.return_value.auth_credential = AuthCredential( - auth_type=AuthCredentialTypes.HTTP, - http=HttpAuth( - scheme="bearer", - credentials=HttpCredentials(token="mocked_token"), - ), + + mock_tool_auth_handler_instance.prepare_auth_credentials = mock.AsyncMock( + return_value=AuthPreparationResult( + state="done", + auth_credential=AuthCredential( + auth_type=AuthCredentialTypes.HTTP, + http=HttpAuth( + scheme="bearer", + credentials=HttpCredentials(token="mocked_token"), + ), + ), + ) ) mock_from_tool_context.return_value = mock_tool_auth_handler_instance result = await integration_tool_with_auth.run_async( diff --git a/tests/unittests/tools/bigquery/test_bigquery_credentials.py b/tests/unittests/tools/bigquery/test_bigquery_credentials.py index 9fa152fc2..05af3aaf3 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_credentials.py +++ b/tests/unittests/tools/bigquery/test_bigquery_credentials.py @@ -12,11 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -from unittest.mock import Mock +from unittest import mock from google.adk.tools.bigquery.bigquery_credentials import BigQueryCredentialsConfig # Mock the Google OAuth and API dependencies -from google.oauth2.credentials import Credentials +import google.auth.credentials +import google.oauth2.credentials import pytest @@ -27,22 +28,46 @@ class TestBigQueryCredentials: either existing credentials or client ID/secret pairs are provided. """ - def test_valid_credentials_object(self): - """Test that providing valid Credentials object works correctly. + def test_valid_credentials_object_auth_credentials(self): + """Test that providing valid Credentials object works correctly with + google.auth.credentials.Credentials. When a user already has valid OAuth credentials, they should be able to pass them directly without needing to provide client ID/secret. """ - # Create a mock credentials object with the expected attributes - mock_creds = Mock(spec=Credentials) - mock_creds.client_id = "test_client_id" - mock_creds.client_secret = "test_client_secret" - mock_creds.scopes = ["https://www.googleapis.com/auth/calendar"] + # Create a mock auth credentials object + # auth_creds = google.auth.credentials.Credentials() + auth_creds = mock.create_autospec( + google.auth.credentials.Credentials, instance=True + ) + + config = BigQueryCredentialsConfig(credentials=auth_creds) + + # Verify that the credentials are properly stored and attributes are extracted + assert config.credentials == auth_creds + assert config.client_id is None + assert config.client_secret is None + assert config.scopes == ["https://www.googleapis.com/auth/bigquery"] + + def test_valid_credentials_object_oauth2_credentials(self): + """Test that providing valid Credentials object works correctly with + google.oauth2.credentials.Credentials. + + When a user already has valid OAuth credentials, they should be able + to pass them directly without needing to provide client ID/secret. + """ + # Create a mock oauth2 credentials object + oauth2_creds = google.oauth2.credentials.Credentials( + "test_token", + client_id="test_client_id", + client_secret="test_client_secret", + scopes=["https://www.googleapis.com/auth/calendar"], + ) - config = BigQueryCredentialsConfig(credentials=mock_creds) + config = BigQueryCredentialsConfig(credentials=oauth2_creds) # Verify that the credentials are properly stored and attributes are extracted - assert config.credentials == mock_creds + assert config.credentials == oauth2_creds assert config.client_id == "test_client_id" assert config.client_secret == "test_client_secret" assert config.scopes == ["https://www.googleapis.com/auth/calendar"] diff --git a/tests/unittests/tools/bigquery/test_bigquery_credentials_manager.py b/tests/unittests/tools/bigquery/test_bigquery_credentials_manager.py index 95d8b00d6..47d955906 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_credentials_manager.py +++ b/tests/unittests/tools/bigquery/test_bigquery_credentials_manager.py @@ -22,9 +22,10 @@ from google.adk.tools.bigquery.bigquery_credentials import BIGQUERY_TOKEN_CACHE_KEY from google.adk.tools.bigquery.bigquery_credentials import BigQueryCredentialsConfig from google.adk.tools.bigquery.bigquery_credentials import BigQueryCredentialsManager +from google.auth.credentials import Credentials as AuthCredentials from google.auth.exceptions import RefreshError # Mock the Google OAuth and API dependencies -from google.oauth2.credentials import Credentials +from google.oauth2.credentials import Credentials as OAuthCredentials import pytest @@ -64,9 +65,16 @@ def manager(self, credentials_config): """Create a credentials manager instance for testing.""" return BigQueryCredentialsManager(credentials_config) + @pytest.mark.parametrize( + ("credentials_class",), + [ + pytest.param(OAuthCredentials, id="oauth"), + pytest.param(AuthCredentials, id="auth"), + ], + ) @pytest.mark.asyncio async def test_get_valid_credentials_with_valid_existing_creds( - self, manager, mock_tool_context + self, manager, mock_tool_context, credentials_class ): """Test that valid existing credentials are returned immediately. @@ -74,7 +82,7 @@ async def test_get_valid_credentials_with_valid_existing_creds( should be needed. This is the optimal happy path scenario. """ # Create mock credentials that are already valid - mock_creds = Mock(spec=Credentials) + mock_creds = Mock(spec=credentials_class) mock_creds.valid = True manager.credentials_config.credentials = mock_creds @@ -85,6 +93,34 @@ async def test_get_valid_credentials_with_valid_existing_creds( mock_tool_context.get_auth_response.assert_not_called() mock_tool_context.request_credential.assert_not_called() + @pytest.mark.parametrize( + ("valid",), + [ + pytest.param(False, id="invalid"), + pytest.param(True, id="valid"), + ], + ) + @pytest.mark.asyncio + async def test_get_valid_credentials_with_existing_non_oauth_creds( + self, manager, mock_tool_context, valid + ): + """Test that existing non-oauth credentials are returned immediately. + + When credentials are of non-oauth type, no refresh or OAuth flow + is triggered irrespective of whether it is valid or not. + """ + # Create mock credentials that are already valid + mock_creds = Mock(spec=AuthCredentials) + mock_creds.valid = valid + manager.credentials_config.credentials = mock_creds + + result = await manager.get_valid_credentials(mock_tool_context) + + assert result == mock_creds + # Verify no OAuth flow was triggered + mock_tool_context.get_auth_response.assert_not_called() + mock_tool_context.request_credential.assert_not_called() + @pytest.mark.asyncio async def test_get_credentials_from_cache_when_none_in_manager( self, manager, mock_tool_context @@ -113,7 +149,7 @@ async def test_get_credentials_from_cache_when_none_in_manager( with patch( "google.oauth2.credentials.Credentials.from_authorized_user_info" ) as mock_from_json: - mock_creds = Mock(spec=Credentials) + mock_creds = Mock(spec=OAuthCredentials) mock_creds.valid = True mock_from_json.return_value = mock_creds @@ -179,7 +215,7 @@ async def test_refresh_cached_credentials_success( mock_tool_context.state[BIGQUERY_TOKEN_CACHE_KEY] = mock_cached_creds_json # Create expired cached credentials with refresh token - mock_cached_creds = Mock(spec=Credentials) + mock_cached_creds = Mock(spec=OAuthCredentials) mock_cached_creds.valid = False mock_cached_creds.expired = True mock_cached_creds.refresh_token = "valid_refresh_token" @@ -227,7 +263,7 @@ async def test_get_valid_credentials_with_refresh_success( users from having to re-authenticate for every expired token. """ # Create expired credentials with refresh token - mock_creds = Mock(spec=Credentials) + mock_creds = Mock(spec=OAuthCredentials) mock_creds.valid = False mock_creds.expired = True mock_creds.refresh_token = "refresh_token" @@ -257,7 +293,7 @@ async def test_get_valid_credentials_with_refresh_failure( gracefully fall back to requesting a new OAuth flow. """ # Create expired credentials that fail to refresh - mock_creds = Mock(spec=Credentials) + mock_creds = Mock(spec=OAuthCredentials) mock_creds.valid = False mock_creds.expired = True mock_creds.refresh_token = "expired_refresh_token" @@ -287,7 +323,7 @@ async def test_oauth_flow_completion_with_caching( mock_tool_context.get_auth_response.return_value = mock_auth_response # Create a mock credentials instance that will represent our created credentials - mock_creds = Mock(spec=Credentials) + mock_creds = Mock(spec=OAuthCredentials) # Make the JSON match what a real Credentials object would produce mock_creds_json = ( '{"token": "new_access_token", "refresh_token": "new_refresh_token",' @@ -300,7 +336,7 @@ async def test_oauth_flow_completion_with_caching( # Use the full module path as it appears in the project structure with patch( - "google.adk.tools.bigquery.bigquery_credentials.Credentials", + "google.adk.tools.bigquery.bigquery_credentials.google.oauth2.credentials.Credentials", return_value=mock_creds, ) as mock_credentials_class: result = await manager.get_valid_credentials(mock_tool_context) @@ -361,7 +397,7 @@ async def test_cache_persistence_across_manager_instances( mock_tool_context.get_auth_response.return_value = mock_auth_response # Create the mock credentials instance that will be returned by the constructor - mock_creds = Mock(spec=Credentials) + mock_creds = Mock(spec=OAuthCredentials) # Make sure our mock JSON matches the structure that real Credentials objects produce mock_creds_json = ( '{"token": "cached_access_token", "refresh_token":' @@ -376,7 +412,7 @@ async def test_cache_persistence_across_manager_instances( # Use the correct module path - without the 'src.' prefix with patch( - "google.adk.tools.bigquery.bigquery_credentials.Credentials", + "google.adk.tools.bigquery.bigquery_credentials.google.oauth2.credentials.Credentials", return_value=mock_creds, ) as mock_credentials_class: # Complete OAuth flow with first manager @@ -396,9 +432,9 @@ async def test_cache_persistence_across_manager_instances( # Mock the from_authorized_user_info method for the second manager with patch( - "google.adk.tools.bigquery.bigquery_credentials.Credentials.from_authorized_user_info" + "google.adk.tools.bigquery.bigquery_credentials.google.oauth2.credentials.Credentials.from_authorized_user_info" ) as mock_from_json: - mock_cached_creds = Mock(spec=Credentials) + mock_cached_creds = Mock(spec=OAuthCredentials) mock_cached_creds.valid = True mock_from_json.return_value = mock_cached_creds diff --git a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py index 3cb8c3c4a..c42e3881f 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py @@ -25,6 +25,7 @@ from google.adk.tools.bigquery.config import BigQueryToolConfig from google.adk.tools.bigquery.config import WriteMode from google.adk.tools.bigquery.query_tool import execute_sql +from google.adk.tools.tool_context import ToolContext from google.auth.exceptions import DefaultCredentialsError from google.cloud import bigquery from google.oauth2.credentials import Credentials @@ -80,13 +81,15 @@ async def test_execute_sql_declaration_read_only(tool_config): tool = await get_tool(tool_name, tool_config) assert tool.name == tool_name assert tool.description == textwrap.dedent("""\ - Run a BigQuery SQL query in the project and return the result. + Run a BigQuery or BigQuery ML SQL query in the project and return the result. Args: project_id (str): The GCP project id in which the query should be executed. query (str): The BigQuery SQL query to be executed. credentials (Credentials): The credentials to use for the request. + config (BigQueryToolConfig): The configuration for the tool. + tool_context (ToolContext): The context for the tool. Returns: dict: Dictionary representing the result of the query. @@ -97,11 +100,11 @@ async def test_execute_sql_declaration_read_only(tool_config): Examples: Fetch data or insights from a table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "SELECT island, COUNT(*) AS population " ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") { - "status": "ERROR", + "status": "SUCCESS", "rows": [ { "island": "Dream", @@ -139,13 +142,15 @@ async def test_execute_sql_declaration_write(tool_config): tool = await get_tool(tool_name, tool_config) assert tool.name == tool_name assert tool.description == textwrap.dedent("""\ - Run a BigQuery SQL query in the project and return the result. + Run a BigQuery or BigQuery ML SQL query in the project and return the result. Args: project_id (str): The GCP project id in which the query should be executed. query (str): The BigQuery SQL query to be executed. credentials (Credentials): The credentials to use for the request. + config (BigQueryToolConfig): The configuration for the tool. + tool_context (ToolContext): The context for the tool. Returns: dict: Dictionary representing the result of the query. @@ -156,11 +161,11 @@ async def test_execute_sql_declaration_write(tool_config): Examples: Fetch data or insights from a table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "SELECT island, COUNT(*) AS population " ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") { - "status": "ERROR", + "status": "SUCCESS", "rows": [ { "island": "Dream", @@ -177,9 +182,29 @@ async def test_execute_sql_declaration_write(tool_config): ] } + Create a table with schema prescribed: + + >>> execute_sql("my_project", + ... "CREATE TABLE my_project.my_dataset.my_table " + ... "(island STRING, population INT64)") + { + "status": "SUCCESS", + "rows": [] + } + + Insert data into an existing table: + + >>> execute_sql("my_project", + ... "INSERT INTO my_project.my_dataset.my_table (island, population) " + ... "VALUES ('Dream', 124), ('Biscoe', 168)") + { + "status": "SUCCESS", + "rows": [] + } + Create a table from the result of a query: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "CREATE TABLE my_project.my_dataset.my_table AS " ... "SELECT island, COUNT(*) AS population " ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") @@ -190,7 +215,7 @@ async def test_execute_sql_declaration_write(tool_config): Delete a table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "DROP TABLE my_project.my_dataset.my_table") { "status": "SUCCESS", @@ -199,7 +224,7 @@ async def test_execute_sql_declaration_write(tool_config): Copy a table to another table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "CREATE TABLE my_project.my_dataset.my_table_clone " ... "CLONE my_project.my_dataset.my_table") { @@ -210,7 +235,7 @@ async def test_execute_sql_declaration_write(tool_config): Create a snapshot (a lightweight, read-optimized copy) of en existing table: - >>> execute_sql("bigframes-dev", + >>> execute_sql("my_project", ... "CREATE SNAPSHOT TABLE my_project.my_dataset.my_table_snapshot " ... "CLONE my_project.my_dataset.my_table") { @@ -218,18 +243,279 @@ async def test_execute_sql_declaration_write(tool_config): "rows": [] } + Create a BigQuery ML linear regression model: + + >>> execute_sql("my_project", + ... "CREATE MODEL `my_dataset.my_model` " + ... "OPTIONS (model_type='linear_reg', input_label_cols=['body_mass_g']) AS " + ... "SELECT * FROM `bigquery-public-data.ml_datasets.penguins` " + ... "WHERE body_mass_g IS NOT NULL") + { + "status": "SUCCESS", + "rows": [] + } + + Evaluate BigQuery ML model: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`)") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Evaluate BigQuery ML model on custom data: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.EVALUATE(MODEL `my_dataset.my_model`, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Predict using BigQuery ML model: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.PREDICT(MODEL `my_dataset.my_model`, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [ + { + "predicted_body_mass_g": "3380.9271650847013", + ... + }, { + "predicted_body_mass_g": "3873.6072435386004", + ... + }, + ... + ] + } + + Delete a BigQuery ML model: + + >>> execute_sql("my_project", "DROP MODEL `my_dataset.my_model`") + { + "status": "SUCCESS", + "rows": [] + } + Notes: - If a destination table already exists, there are a few ways to overwrite it: - Use "CREATE OR REPLACE TABLE" instead of "CREATE TABLE". - First run "DROP TABLE", followed by "CREATE TABLE". - - To insert data into a table, use "INSERT INTO" statement.""") + - If a model already exists, there are a few ways to overwrite it: + - Use "CREATE OR REPLACE MODEL" instead of "CREATE MODEL". + - First run "DROP MODEL", followed by "CREATE MODEL".""") + + +@pytest.mark.parametrize( + ("tool_config",), + [ + pytest.param( + BigQueryToolConfig(write_mode=WriteMode.PROTECTED), + id="explicit-protected-write", + ), + ], +) +@pytest.mark.asyncio +async def test_execute_sql_declaration_protected_write(tool_config): + """Test BigQuery execute_sql tool declaration with protected writes enabled. + + This test verifies that the execute_sql tool declaration reflects the + protected write capability. + """ + tool_name = "execute_sql" + tool = await get_tool(tool_name, tool_config) + assert tool.name == tool_name + assert tool.description == textwrap.dedent("""\ + Run a BigQuery or BigQuery ML SQL query in the project and return the result. + + Args: + project_id (str): The GCP project id in which the query should be + executed. + query (str): The BigQuery SQL query to be executed. + credentials (Credentials): The credentials to use for the request. + config (BigQueryToolConfig): The configuration for the tool. + tool_context (ToolContext): The context for the tool. + + Returns: + dict: Dictionary representing the result of the query. + If the result contains the key "result_is_likely_truncated" with + value True, it means that there may be additional rows matching the + query not returned in the result. + + Examples: + Fetch data or insights from a table: + + >>> execute_sql("my_project", + ... "SELECT island, COUNT(*) AS population " + ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") + { + "status": "SUCCESS", + "rows": [ + { + "island": "Dream", + "population": 124 + }, + { + "island": "Biscoe", + "population": 168 + }, + { + "island": "Torgersen", + "population": 52 + } + ] + } + + Create a temporary table with schema prescribed: + + >>> execute_sql("my_project", + ... "CREATE TEMP TABLE my_table (island STRING, population INT64)") + { + "status": "SUCCESS", + "rows": [] + } + + Insert data into an existing temporary table: + + >>> execute_sql("my_project", + ... "INSERT INTO my_table (island, population) " + ... "VALUES ('Dream', 124), ('Biscoe', 168)") + { + "status": "SUCCESS", + "rows": [] + } + + Create a temporary table from the result of a query: + + >>> execute_sql("my_project", + ... "CREATE TEMP TABLE my_table AS " + ... "SELECT island, COUNT(*) AS population " + ... "FROM bigquery-public-data.ml_datasets.penguins GROUP BY island") + { + "status": "SUCCESS", + "rows": [] + } + + Delete a temporary table: + + >>> execute_sql("my_project", "DROP TABLE my_table") + { + "status": "SUCCESS", + "rows": [] + } + + Copy a temporary table to another temporary table: + + >>> execute_sql("my_project", + ... "CREATE TEMP TABLE my_table_clone CLONE my_table") + { + "status": "SUCCESS", + "rows": [] + } + + Create a temporary BigQuery ML linear regression model: + + >>> execute_sql("my_project", + ... "CREATE TEMP MODEL my_model " + ... "OPTIONS (model_type='linear_reg', input_label_cols=['body_mass_g']) AS" + ... "SELECT * FROM `bigquery-public-data.ml_datasets.penguins` " + ... "WHERE body_mass_g IS NOT NULL") + { + "status": "SUCCESS", + "rows": [] + } + + Evaluate BigQuery ML model: + + >>> execute_sql("my_project", "SELECT * FROM ML.EVALUATE(MODEL my_model)") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Evaluate BigQuery ML model on custom data: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.EVALUATE(MODEL my_model, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [{'mean_absolute_error': 227.01223667447218, + 'mean_squared_error': 81838.15989216768, + 'mean_squared_log_error': 0.0050704473735013, + 'median_absolute_error': 173.08081641661738, + 'r2_score': 0.8723772534253441, + 'explained_variance': 0.8723772534253442}] + } + + Predict using BigQuery ML model: + + >>> execute_sql("my_project", + ... "SELECT * FROM ML.PREDICT(MODEL my_model, " + ... "(SELECT * FROM `my_dataset.my_table`))") + { + "status": "SUCCESS", + "rows": [ + { + "predicted_body_mass_g": "3380.9271650847013", + ... + }, { + "predicted_body_mass_g": "3873.6072435386004", + ... + }, + ... + ] + } + + Delete a BigQuery ML model: + + >>> execute_sql("my_project", "DROP MODEL my_model") + { + "status": "SUCCESS", + "rows": [] + } + + Notes: + - If a destination table already exists, there are a few ways to overwrite + it: + - Use "CREATE OR REPLACE TEMP TABLE" instead of "CREATE TEMP TABLE". + - First run "DROP TABLE", followed by "CREATE TEMP TABLE". + - Only temporary tables can be created, inserted into or deleted. Please + do not try creating a permanent table (non-TEMP table), inserting into or + deleting one. + - If a destination model already exists, there are a few ways to overwrite + it: + - Use "CREATE OR REPLACE TEMP MODEL" instead of "CREATE TEMP MODEL". + - First run "DROP MODEL", followed by "CREATE TEMP MODEL". + - Only temporary models can be created or deleted. Please do not try + creating a permanent model (non-TEMP model) or deleting one.""") @pytest.mark.parametrize( ("write_mode",), [ pytest.param(WriteMode.BLOCKED, id="blocked"), + pytest.param(WriteMode.PROTECTED, id="protected"), pytest.param(WriteMode.ALLOWED, id="allowed"), ], ) @@ -241,6 +527,11 @@ def test_execute_sql_select_stmt(write_mode): query_result = [{"num": 123}] credentials = mock.create_autospec(Credentials, instance=True) tool_config = BigQueryToolConfig(write_mode=write_mode) + tool_context = mock.create_autospec(ToolContext, instance=True) + tool_context.state.get.return_value = ( + "test-bq-session-id", + "_anonymous_dataset", + ) with mock.patch("google.cloud.bigquery.Client", autospec=False) as Client: # The mock instance @@ -255,7 +546,7 @@ def test_execute_sql_select_stmt(write_mode): bq_client.query_and_wait.return_value = query_result # Test the tool - result = execute_sql(project, query, credentials, tool_config) + result = execute_sql(project, query, credentials, tool_config, tool_context) assert result == {"status": "SUCCESS", "rows": query_result} @@ -272,6 +563,18 @@ def test_execute_sql_select_stmt(write_mode): "DROP_TABLE", id="drop-table", ), + pytest.param( + "CREATE MODEL my_dataset.my_model (model_type='linear_reg'," + " input_label_cols=['label_col']) AS SELECT * FROM" + " my_dataset.my_table", + "CREATE_MODEL", + id="create-model", + ), + pytest.param( + "DROP MODEL my_dataset.my_model", + "DROP_MODEL", + id="drop-model", + ), ], ) def test_execute_sql_non_select_stmt_write_allowed(query, statement_type): @@ -280,6 +583,7 @@ def test_execute_sql_non_select_stmt_write_allowed(query, statement_type): query_result = [] credentials = mock.create_autospec(Credentials, instance=True) tool_config = BigQueryToolConfig(write_mode=WriteMode.ALLOWED) + tool_context = mock.create_autospec(ToolContext, instance=True) with mock.patch("google.cloud.bigquery.Client", autospec=False) as Client: # The mock instance @@ -294,7 +598,7 @@ def test_execute_sql_non_select_stmt_write_allowed(query, statement_type): bq_client.query_and_wait.return_value = query_result # Test the tool - result = execute_sql(project, query, credentials, tool_config) + result = execute_sql(project, query, credentials, tool_config, tool_context) assert result == {"status": "SUCCESS", "rows": query_result} @@ -311,6 +615,18 @@ def test_execute_sql_non_select_stmt_write_allowed(query, statement_type): "DROP_TABLE", id="drop-table", ), + pytest.param( + "CREATE MODEL my_dataset.my_model (model_type='linear_reg'," + " input_label_cols=['label_col']) AS SELECT * FROM" + " my_dataset.my_table", + "CREATE_MODEL", + id="create-model", + ), + pytest.param( + "DROP MODEL my_dataset.my_model", + "DROP_MODEL", + id="drop-model", + ), ], ) def test_execute_sql_non_select_stmt_write_blocked(query, statement_type): @@ -319,6 +635,7 @@ def test_execute_sql_non_select_stmt_write_blocked(query, statement_type): query_result = [] credentials = mock.create_autospec(Credentials, instance=True) tool_config = BigQueryToolConfig(write_mode=WriteMode.BLOCKED) + tool_context = mock.create_autospec(ToolContext, instance=True) with mock.patch("google.cloud.bigquery.Client", autospec=False) as Client: # The mock instance @@ -333,17 +650,144 @@ def test_execute_sql_non_select_stmt_write_blocked(query, statement_type): bq_client.query_and_wait.return_value = query_result # Test the tool - result = execute_sql(project, query, credentials, tool_config) + result = execute_sql(project, query, credentials, tool_config, tool_context) assert result == { "status": "ERROR", "error_details": "Read-only mode only supports SELECT statements.", } +@pytest.mark.parametrize( + ("query", "statement_type"), + [ + pytest.param( + "CREATE TEMP TABLE my_table AS SELECT 123 AS num", + "CREATE_AS_SELECT", + id="create-as-select", + ), + pytest.param( + "DROP TABLE my_table", + "DROP_TABLE", + id="drop-table", + ), + pytest.param( + "CREATE TEMP MODEL my_model (model_type='linear_reg'," + " input_label_cols=['label_col']) AS SELECT * FROM" + " my_dataset.my_table", + "CREATE_MODEL", + id="create-model", + ), + pytest.param( + "DROP MODEL my_model", + "DROP_MODEL", + id="drop-model", + ), + ], +) +def test_execute_sql_non_select_stmt_write_protected(query, statement_type): + """Test execute_sql tool for non-SELECT query when writes are protected.""" + project = "my_project" + query_result = [] + credentials = mock.create_autospec(Credentials, instance=True) + tool_config = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + tool_context = mock.create_autospec(ToolContext, instance=True) + tool_context.state.get.return_value = ( + "test-bq-session-id", + "_anonymous_dataset", + ) + + with mock.patch("google.cloud.bigquery.Client", autospec=False) as Client: + # The mock instance + bq_client = Client.return_value + + # Simulate the result of query API + query_job = mock.create_autospec(bigquery.QueryJob) + query_job.statement_type = statement_type + query_job.destination.dataset_id = "_anonymous_dataset" + bq_client.query.return_value = query_job + + # Simulate the result of query_and_wait API + bq_client.query_and_wait.return_value = query_result + + # Test the tool + result = execute_sql(project, query, credentials, tool_config, tool_context) + assert result == {"status": "SUCCESS", "rows": query_result} + + +@pytest.mark.parametrize( + ("query", "statement_type"), + [ + pytest.param( + "CREATE TABLE my_dataset.my_table AS SELECT 123 AS num", + "CREATE_AS_SELECT", + id="create-as-select", + ), + pytest.param( + "DROP TABLE my_dataset.my_table", + "DROP_TABLE", + id="drop-table", + ), + pytest.param( + "CREATE MODEL my_dataset.my_model (model_type='linear_reg'," + " input_label_cols=['label_col']) AS SELECT * FROM" + " my_dataset.my_table", + "CREATE_MODEL", + id="create-model", + ), + pytest.param( + "DROP MODEL my_dataset.my_model", + "DROP_MODEL", + id="drop-model", + ), + ], +) +def test_execute_sql_non_select_stmt_write_protected_persistent_target( + query, statement_type +): + """Test execute_sql tool for non-SELECT query when writes are protected. + + This is a special case when the destination table is a persistent/permananent + one and the protected write is enabled. In this case the operation should fail. + """ + project = "my_project" + query_result = [] + credentials = mock.create_autospec(Credentials, instance=True) + tool_config = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + tool_context = mock.create_autospec(ToolContext, instance=True) + tool_context.state.get.return_value = ( + "test-bq-session-id", + "_anonymous_dataset", + ) + + with mock.patch("google.cloud.bigquery.Client", autospec=False) as Client: + # The mock instance + bq_client = Client.return_value + + # Simulate the result of query API + query_job = mock.create_autospec(bigquery.QueryJob) + query_job.statement_type = statement_type + query_job.destination.dataset_id = "my_dataset" + bq_client.query.return_value = query_job + + # Simulate the result of query_and_wait API + bq_client.query_and_wait.return_value = query_result + + # Test the tool + result = execute_sql(project, query, credentials, tool_config, tool_context) + assert result == { + "status": "ERROR", + "error_details": ( + "Protected write mode only supports SELECT statements, or write" + " operations in the anonymous dataset of a BigQuery session." + ), + } + + @pytest.mark.parametrize( ("write_mode",), [ pytest.param(WriteMode.BLOCKED, id="blocked"), + pytest.param(WriteMode.PROTECTED, id="protected"), pytest.param(WriteMode.ALLOWED, id="allowed"), ], ) @@ -361,6 +805,11 @@ def test_execute_sql_no_default_auth( query_result = [{"num": 123}] credentials = mock.create_autospec(Credentials, instance=True) tool_config = BigQueryToolConfig(write_mode=write_mode) + tool_context = mock.create_autospec(ToolContext, instance=True) + tool_context.state.get.return_value = ( + "test-bq-session-id", + "_anonymous_dataset", + ) # Simulate the behavior of default auth - on purpose throw exception when # the default auth is called @@ -377,6 +826,6 @@ def test_execute_sql_no_default_auth( mock_query_and_wait.return_value = query_result # Test the tool worked without invoking default auth - result = execute_sql(project, query, credentials, tool_config) + result = execute_sql(project, query, credentials, tool_config, tool_context) assert result == {"status": "SUCCESS", "rows": query_result} mock_default_auth.assert_not_called() diff --git a/tests/unittests/tools/mcp_tool/__init__.py b/tests/unittests/tools/mcp_tool/__init__.py new file mode 100644 index 000000000..0a2669d7a --- /dev/null +++ b/tests/unittests/tools/mcp_tool/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/tests/unittests/tools/mcp_tool/test_mcp_session_manager.py b/tests/unittests/tools/mcp_tool/test_mcp_session_manager.py new file mode 100644 index 000000000..559e51719 --- /dev/null +++ b/tests/unittests/tools/mcp_tool/test_mcp_session_manager.py @@ -0,0 +1,364 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import hashlib +from io import StringIO +import json +import sys +from unittest.mock import AsyncMock +from unittest.mock import Mock +from unittest.mock import patch + +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="MCP tool requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from google.adk.tools.mcp_tool.mcp_session_manager import MCPSessionManager + from google.adk.tools.mcp_tool.mcp_session_manager import retry_on_closed_resource + from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams + from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams + from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyClass: + pass + + MCPSessionManager = DummyClass + retry_on_closed_resource = lambda x: x + SseConnectionParams = DummyClass + StdioConnectionParams = DummyClass + StreamableHTTPConnectionParams = DummyClass + else: + raise e + +# Import real MCP classes +try: + from mcp import StdioServerParameters +except ImportError: + # Create a mock if MCP is not available + class StdioServerParameters: + + def __init__(self, command="test_command", args=None): + self.command = command + self.args = args or [] + + +class MockClientSession: + """Mock ClientSession for testing.""" + + def __init__(self): + self._read_stream = Mock() + self._write_stream = Mock() + self._read_stream._closed = False + self._write_stream._closed = False + self.initialize = AsyncMock() + + +class MockAsyncExitStack: + """Mock AsyncExitStack for testing.""" + + def __init__(self): + self.aclose = AsyncMock() + self.enter_async_context = AsyncMock() + + async def __aenter__(self): + return self + + async def __aexit__(self, exc_type, exc_val, exc_tb): + pass + + +class TestMCPSessionManager: + """Test suite for MCPSessionManager class.""" + + def setup_method(self): + """Set up test fixtures.""" + self.mock_stdio_params = StdioServerParameters( + command="test_command", args=[] + ) + self.mock_stdio_connection_params = StdioConnectionParams( + server_params=self.mock_stdio_params, timeout=5.0 + ) + + def test_init_with_stdio_server_parameters(self): + """Test initialization with StdioServerParameters (deprecated).""" + with patch( + "google.adk.tools.mcp_tool.mcp_session_manager.logger" + ) as mock_logger: + manager = MCPSessionManager(self.mock_stdio_params) + + # Should log deprecation warning + mock_logger.warning.assert_called_once() + assert "StdioServerParameters is not recommended" in str( + mock_logger.warning.call_args + ) + + # Should convert to StdioConnectionParams + assert isinstance(manager._connection_params, StdioConnectionParams) + assert manager._connection_params.server_params == self.mock_stdio_params + assert manager._connection_params.timeout == 5 + + def test_init_with_stdio_connection_params(self): + """Test initialization with StdioConnectionParams.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + assert manager._connection_params == self.mock_stdio_connection_params + assert manager._errlog == sys.stderr + assert manager._sessions == {} + + def test_init_with_sse_connection_params(self): + """Test initialization with SseConnectionParams.""" + sse_params = SseConnectionParams( + url="https://example.com/mcp", + headers={"Authorization": "Bearer token"}, + timeout=10.0, + ) + manager = MCPSessionManager(sse_params) + + assert manager._connection_params == sse_params + + def test_init_with_streamable_http_params(self): + """Test initialization with StreamableHTTPConnectionParams.""" + http_params = StreamableHTTPConnectionParams( + url="https://example.com/mcp", timeout=15.0 + ) + manager = MCPSessionManager(http_params) + + assert manager._connection_params == http_params + + def test_generate_session_key_stdio(self): + """Test session key generation for stdio connections.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + # For stdio, headers should be ignored and return constant key + key1 = manager._generate_session_key({"Authorization": "Bearer token"}) + key2 = manager._generate_session_key(None) + + assert key1 == "stdio_session" + assert key2 == "stdio_session" + assert key1 == key2 + + def test_generate_session_key_sse(self): + """Test session key generation for SSE connections.""" + sse_params = SseConnectionParams(url="https://example.com/mcp") + manager = MCPSessionManager(sse_params) + + headers1 = {"Authorization": "Bearer token1"} + headers2 = {"Authorization": "Bearer token2"} + + key1 = manager._generate_session_key(headers1) + key2 = manager._generate_session_key(headers2) + key3 = manager._generate_session_key(headers1) + + # Different headers should generate different keys + assert key1 != key2 + # Same headers should generate same key + assert key1 == key3 + + # Should be deterministic hash + headers_json = json.dumps(headers1, sort_keys=True) + expected_hash = hashlib.md5(headers_json.encode()).hexdigest() + assert key1 == f"session_{expected_hash}" + + def test_merge_headers_stdio(self): + """Test header merging for stdio connections.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + # Stdio connections don't support headers + headers = manager._merge_headers({"Authorization": "Bearer token"}) + assert headers is None + + def test_merge_headers_sse(self): + """Test header merging for SSE connections.""" + base_headers = {"Content-Type": "application/json"} + sse_params = SseConnectionParams( + url="https://example.com/mcp", headers=base_headers + ) + manager = MCPSessionManager(sse_params) + + # With additional headers + additional = {"Authorization": "Bearer token"} + merged = manager._merge_headers(additional) + + expected = { + "Content-Type": "application/json", + "Authorization": "Bearer token", + } + assert merged == expected + + def test_is_session_disconnected(self): + """Test session disconnection detection.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + # Create mock session + session = MockClientSession() + + # Not disconnected + assert not manager._is_session_disconnected(session) + + # Disconnected - read stream closed + session._read_stream._closed = True + assert manager._is_session_disconnected(session) + + @pytest.mark.asyncio + async def test_create_session_stdio_new(self): + """Test creating a new stdio session.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + mock_session = MockClientSession() + mock_exit_stack = MockAsyncExitStack() + + with patch( + "google.adk.tools.mcp_tool.mcp_session_manager.stdio_client" + ) as mock_stdio: + with patch( + "google.adk.tools.mcp_tool.mcp_session_manager.AsyncExitStack" + ) as mock_exit_stack_class: + with patch( + "google.adk.tools.mcp_tool.mcp_session_manager.ClientSession" + ) as mock_session_class: + + # Setup mocks + mock_exit_stack_class.return_value = mock_exit_stack + mock_stdio.return_value = AsyncMock() + mock_exit_stack.enter_async_context.side_effect = [ + ("read", "write"), # First call returns transports + mock_session, # Second call returns session + ] + mock_session_class.return_value = mock_session + + # Create session + session = await manager.create_session() + + # Verify session creation + assert session == mock_session + assert len(manager._sessions) == 1 + assert "stdio_session" in manager._sessions + + # Verify session was initialized + mock_session.initialize.assert_called_once() + + @pytest.mark.asyncio + async def test_create_session_reuse_existing(self): + """Test reusing an existing connected session.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + # Create mock existing session + existing_session = MockClientSession() + existing_exit_stack = MockAsyncExitStack() + manager._sessions["stdio_session"] = (existing_session, existing_exit_stack) + + # Session is connected + existing_session._read_stream._closed = False + existing_session._write_stream._closed = False + + session = await manager.create_session() + + # Should reuse existing session + assert session == existing_session + assert len(manager._sessions) == 1 + + # Should not create new session + existing_session.initialize.assert_not_called() + + @pytest.mark.asyncio + async def test_close_success(self): + """Test successful cleanup of all sessions.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + # Add mock sessions + session1 = MockClientSession() + exit_stack1 = MockAsyncExitStack() + session2 = MockClientSession() + exit_stack2 = MockAsyncExitStack() + + manager._sessions["session1"] = (session1, exit_stack1) + manager._sessions["session2"] = (session2, exit_stack2) + + await manager.close() + + # All sessions should be closed + exit_stack1.aclose.assert_called_once() + exit_stack2.aclose.assert_called_once() + assert len(manager._sessions) == 0 + + @pytest.mark.asyncio + async def test_close_with_errors(self): + """Test cleanup when some sessions fail to close.""" + manager = MCPSessionManager(self.mock_stdio_connection_params) + + # Add mock sessions + session1 = MockClientSession() + exit_stack1 = MockAsyncExitStack() + exit_stack1.aclose.side_effect = Exception("Close error 1") + + session2 = MockClientSession() + exit_stack2 = MockAsyncExitStack() + + manager._sessions["session1"] = (session1, exit_stack1) + manager._sessions["session2"] = (session2, exit_stack2) + + custom_errlog = StringIO() + manager._errlog = custom_errlog + + # Should not raise exception + await manager.close() + + # Good session should still be closed + exit_stack2.aclose.assert_called_once() + assert len(manager._sessions) == 0 + + # Error should be logged + error_output = custom_errlog.getvalue() + assert "Warning: Error during MCP session cleanup" in error_output + assert "Close error 1" in error_output + + +def test_retry_on_closed_resource_decorator(): + """Test the retry_on_closed_resource decorator.""" + + call_count = 0 + + @retry_on_closed_resource + async def mock_function(self): + nonlocal call_count + call_count += 1 + if call_count == 1: + import anyio + + raise anyio.ClosedResourceError("Resource closed") + return "success" + + @pytest.mark.asyncio + async def test_retry(): + nonlocal call_count + call_count = 0 + + mock_self = Mock() + result = await mock_function(mock_self) + + assert result == "success" + assert call_count == 2 # First call fails, second succeeds + + # Run the test + import asyncio + + asyncio.run(test_retry()) diff --git a/tests/unittests/tools/mcp_tool/test_mcp_tool.py b/tests/unittests/tools/mcp_tool/test_mcp_tool.py new file mode 100644 index 000000000..d32593749 --- /dev/null +++ b/tests/unittests/tools/mcp_tool/test_mcp_tool.py @@ -0,0 +1,559 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from unittest.mock import AsyncMock +from unittest.mock import Mock +from unittest.mock import patch + +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import HttpAuth +from google.adk.auth.auth_credential import HttpCredentials +from google.adk.auth.auth_credential import OAuth2Auth +from google.adk.auth.auth_credential import ServiceAccount +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="MCP tool requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from google.adk.tools.mcp_tool.mcp_session_manager import MCPSessionManager + from google.adk.tools.mcp_tool.mcp_tool import MCPTool + from google.adk.tools.tool_context import ToolContext + from google.genai.types import FunctionDeclaration +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyClass: + pass + + MCPSessionManager = DummyClass + MCPTool = DummyClass + ToolContext = DummyClass + FunctionDeclaration = DummyClass + else: + raise e + + +# Mock MCP Tool from mcp.types +class MockMCPTool: + """Mock MCP Tool for testing.""" + + def __init__(self, name="test_tool", description="Test tool description"): + self.name = name + self.description = description + self.inputSchema = { + "type": "object", + "properties": { + "param1": {"type": "string", "description": "First parameter"}, + "param2": {"type": "integer", "description": "Second parameter"}, + }, + "required": ["param1"], + } + + +class TestMCPTool: + """Test suite for MCPTool class.""" + + def setup_method(self): + """Set up test fixtures.""" + self.mock_mcp_tool = MockMCPTool() + self.mock_session_manager = Mock(spec=MCPSessionManager) + self.mock_session = AsyncMock() + self.mock_session_manager.create_session = AsyncMock( + return_value=self.mock_session + ) + + def test_init_basic(self): + """Test basic initialization without auth.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + assert tool.name == "test_tool" + assert tool.description == "Test tool description" + assert tool._mcp_tool == self.mock_mcp_tool + assert tool._mcp_session_manager == self.mock_session_manager + + def test_init_with_auth(self): + """Test initialization with authentication.""" + # Create real auth scheme instances instead of mocks + from fastapi.openapi.models import OAuth2 + + auth_scheme = OAuth2(flows={}) + auth_credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth(client_id="test_id", client_secret="test_secret"), + ) + + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + # The auth config is stored in the parent class _credentials_manager + assert tool._credentials_manager is not None + assert tool._credentials_manager._auth_config.auth_scheme == auth_scheme + assert ( + tool._credentials_manager._auth_config.raw_auth_credential + == auth_credential + ) + + def test_init_with_empty_description(self): + """Test initialization with empty description.""" + mock_tool = MockMCPTool(description=None) + tool = MCPTool( + mcp_tool=mock_tool, + mcp_session_manager=self.mock_session_manager, + ) + + assert tool.description == "" + + def test_get_declaration(self): + """Test function declaration generation.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + declaration = tool._get_declaration() + + assert isinstance(declaration, FunctionDeclaration) + assert declaration.name == "test_tool" + assert declaration.description == "Test tool description" + assert declaration.parameters is not None + + @pytest.mark.asyncio + async def test_run_async_impl_no_auth(self): + """Test running tool without authentication.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + # Mock the session response + expected_response = {"result": "success"} + self.mock_session.call_tool = AsyncMock(return_value=expected_response) + + tool_context = Mock(spec=ToolContext) + args = {"param1": "test_value"} + + result = await tool._run_async_impl( + args=args, tool_context=tool_context, credential=None + ) + + assert result == expected_response + self.mock_session_manager.create_session.assert_called_once_with( + headers=None + ) + # Fix: call_tool uses 'arguments' parameter, not positional args + self.mock_session.call_tool.assert_called_once_with( + "test_tool", arguments=args + ) + + @pytest.mark.asyncio + async def test_run_async_impl_with_oauth2(self): + """Test running tool with OAuth2 authentication.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + # Create OAuth2 credential + oauth2_auth = OAuth2Auth(access_token="test_access_token") + credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, oauth2=oauth2_auth + ) + + # Mock the session response + expected_response = {"result": "success"} + self.mock_session.call_tool = AsyncMock(return_value=expected_response) + + tool_context = Mock(spec=ToolContext) + args = {"param1": "test_value"} + + result = await tool._run_async_impl( + args=args, tool_context=tool_context, credential=credential + ) + + assert result == expected_response + # Check that headers were passed correctly + self.mock_session_manager.create_session.assert_called_once() + call_args = self.mock_session_manager.create_session.call_args + headers = call_args[1]["headers"] + assert headers == {"Authorization": "Bearer test_access_token"} + + @pytest.mark.asyncio + async def test_get_headers_oauth2(self): + """Test header generation for OAuth2 credentials.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + oauth2_auth = OAuth2Auth(access_token="test_token") + credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, oauth2=oauth2_auth + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, credential) + + assert headers == {"Authorization": "Bearer test_token"} + + @pytest.mark.asyncio + async def test_get_headers_http_bearer(self): + """Test header generation for HTTP Bearer credentials.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + http_auth = HttpAuth( + scheme="bearer", credentials=HttpCredentials(token="bearer_token") + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.HTTP, http=http_auth + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, credential) + + assert headers == {"Authorization": "Bearer bearer_token"} + + @pytest.mark.asyncio + async def test_get_headers_http_basic(self): + """Test header generation for HTTP Basic credentials.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + http_auth = HttpAuth( + scheme="basic", + credentials=HttpCredentials(username="user", password="pass"), + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.HTTP, http=http_auth + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, credential) + + # Should create Basic auth header with base64 encoded credentials + import base64 + + expected_encoded = base64.b64encode(b"user:pass").decode() + assert headers == {"Authorization": f"Basic {expected_encoded}"} + + @pytest.mark.asyncio + async def test_get_headers_api_key_with_valid_header_scheme(self): + """Test header generation for API Key credentials with header-based auth scheme.""" + from fastapi.openapi.models import APIKey + from fastapi.openapi.models import APIKeyIn + from google.adk.auth.auth_schemes import AuthSchemeType + + # Create auth scheme for header-based API key + auth_scheme = APIKey(**{ + "type": AuthSchemeType.apiKey, + "in": APIKeyIn.header, + "name": "X-Custom-API-Key", + }) + auth_credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="my_api_key" + ) + + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, auth_credential) + + assert headers == {"X-Custom-API-Key": "my_api_key"} + + @pytest.mark.asyncio + async def test_get_headers_api_key_with_query_scheme_raises_error(self): + """Test that API Key with query-based auth scheme raises ValueError.""" + from fastapi.openapi.models import APIKey + from fastapi.openapi.models import APIKeyIn + from google.adk.auth.auth_schemes import AuthSchemeType + + # Create auth scheme for query-based API key (not supported) + auth_scheme = APIKey(**{ + "type": AuthSchemeType.apiKey, + "in": APIKeyIn.query, + "name": "api_key", + }) + auth_credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="my_api_key" + ) + + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + tool_context = Mock(spec=ToolContext) + + with pytest.raises( + ValueError, + match="MCPTool only supports header-based API key authentication", + ): + await tool._get_headers(tool_context, auth_credential) + + @pytest.mark.asyncio + async def test_get_headers_api_key_with_cookie_scheme_raises_error(self): + """Test that API Key with cookie-based auth scheme raises ValueError.""" + from fastapi.openapi.models import APIKey + from fastapi.openapi.models import APIKeyIn + from google.adk.auth.auth_schemes import AuthSchemeType + + # Create auth scheme for cookie-based API key (not supported) + auth_scheme = APIKey(**{ + "type": AuthSchemeType.apiKey, + "in": APIKeyIn.cookie, + "name": "session_id", + }) + auth_credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="my_api_key" + ) + + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + tool_context = Mock(spec=ToolContext) + + with pytest.raises( + ValueError, + match="MCPTool only supports header-based API key authentication", + ): + await tool._get_headers(tool_context, auth_credential) + + @pytest.mark.asyncio + async def test_get_headers_api_key_without_auth_config_raises_error(self): + """Test that API Key without auth config raises ValueError.""" + # Create tool without auth scheme/config + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="my_api_key" + ) + tool_context = Mock(spec=ToolContext) + + with pytest.raises( + ValueError, + match="Cannot find corresponding auth scheme for API key credential", + ): + await tool._get_headers(tool_context, credential) + + @pytest.mark.asyncio + async def test_get_headers_api_key_without_credentials_manager_raises_error( + self, + ): + """Test that API Key without credentials manager raises ValueError.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + # Manually set credentials manager to None to simulate error condition + tool._credentials_manager = None + + credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="my_api_key" + ) + tool_context = Mock(spec=ToolContext) + + with pytest.raises( + ValueError, + match="Cannot find corresponding auth scheme for API key credential", + ): + await tool._get_headers(tool_context, credential) + + @pytest.mark.asyncio + async def test_get_headers_no_credential(self): + """Test header generation with no credentials.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, None) + + assert headers is None + + @pytest.mark.asyncio + async def test_get_headers_service_account(self): + """Test header generation for service account credentials.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + # Create service account credential + service_account = ServiceAccount(scopes=["test"]) + credential = AuthCredential( + auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, + service_account=service_account, + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, credential) + + # Should return None as service account credentials are not supported for direct header generation + assert headers is None + + @pytest.mark.asyncio + async def test_run_async_impl_with_api_key_header_auth(self): + """Test running tool with API key header authentication end-to-end.""" + from fastapi.openapi.models import APIKey + from fastapi.openapi.models import APIKeyIn + from google.adk.auth.auth_schemes import AuthSchemeType + + # Create auth scheme for header-based API key + auth_scheme = APIKey(**{ + "type": AuthSchemeType.apiKey, + "in": APIKeyIn.header, + "name": "X-Service-API-Key", + }) + auth_credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="test_service_key" + ) + + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + # Mock the session response + expected_response = {"result": "authenticated_success"} + self.mock_session.call_tool = AsyncMock(return_value=expected_response) + + tool_context = Mock(spec=ToolContext) + args = {"param1": "test_value"} + + result = await tool._run_async_impl( + args=args, tool_context=tool_context, credential=auth_credential + ) + + assert result == expected_response + # Check that headers were passed correctly with custom API key header + self.mock_session_manager.create_session.assert_called_once() + call_args = self.mock_session_manager.create_session.call_args + headers = call_args[1]["headers"] + assert headers == {"X-Service-API-Key": "test_service_key"} + + @pytest.mark.asyncio + async def test_run_async_impl_retry_decorator(self): + """Test that the retry decorator is applied correctly.""" + # This is more of an integration test to ensure the decorator is present + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + # Check that the method has the retry decorator + assert hasattr(tool._run_async_impl, "__wrapped__") + + @pytest.mark.asyncio + async def test_get_headers_http_custom_scheme(self): + """Test header generation for custom HTTP scheme.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + http_auth = HttpAuth( + scheme="custom", credentials=HttpCredentials(token="custom_token") + ) + credential = AuthCredential( + auth_type=AuthCredentialTypes.HTTP, http=http_auth + ) + + tool_context = Mock(spec=ToolContext) + headers = await tool._get_headers(tool_context, credential) + + assert headers == {"Authorization": "custom custom_token"} + + @pytest.mark.asyncio + async def test_get_headers_api_key_error_logging(self): + """Test that API key errors are logged correctly.""" + from fastapi.openapi.models import APIKey + from fastapi.openapi.models import APIKeyIn + from google.adk.auth.auth_schemes import AuthSchemeType + + # Create auth scheme for query-based API key (not supported) + auth_scheme = APIKey(**{ + "type": AuthSchemeType.apiKey, + "in": APIKeyIn.query, + "name": "api_key", + }) + auth_credential = AuthCredential( + auth_type=AuthCredentialTypes.API_KEY, api_key="my_api_key" + ) + + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + tool_context = Mock(spec=ToolContext) + + # Test with logging + with patch("google.adk.tools.mcp_tool.mcp_tool.logger") as mock_logger: + with pytest.raises(ValueError): + await tool._get_headers(tool_context, auth_credential) + + # Verify error was logged + mock_logger.error.assert_called_once() + logged_message = mock_logger.error.call_args[0][0] + assert ( + "MCPTool only supports header-based API key authentication" + in logged_message + ) + + def test_init_validation(self): + """Test that initialization validates required parameters.""" + # This test ensures that the MCPTool properly handles its dependencies + with pytest.raises(TypeError): + MCPTool() # Missing required parameters + + with pytest.raises(TypeError): + MCPTool(mcp_tool=self.mock_mcp_tool) # Missing session manager diff --git a/tests/unittests/tools/mcp_tool/test_mcp_toolset.py b/tests/unittests/tools/mcp_tool/test_mcp_toolset.py new file mode 100644 index 000000000..d5e6ae243 --- /dev/null +++ b/tests/unittests/tools/mcp_tool/test_mcp_toolset.py @@ -0,0 +1,286 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from io import StringIO +import sys +import unittest +from unittest.mock import AsyncMock +from unittest.mock import Mock +from unittest.mock import patch + +from google.adk.auth.auth_credential import AuthCredential +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), reason="MCP tool requires Python 3.10+" +) + +# Import dependencies with version checking +try: + from google.adk.tools.mcp_tool.mcp_session_manager import MCPSessionManager + from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams + from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams + from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams + from google.adk.tools.mcp_tool.mcp_tool import MCPTool + from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset + from mcp import StdioServerParameters +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyClass: + pass + + class StdioServerParameters: + + def __init__(self, command="test_command", args=None): + self.command = command + self.args = args or [] + + MCPSessionManager = DummyClass + SseConnectionParams = DummyClass + StdioConnectionParams = DummyClass + StreamableHTTPConnectionParams = DummyClass + MCPTool = DummyClass + MCPToolset = DummyClass + else: + raise e + + +class MockMCPTool: + """Mock MCP Tool for testing.""" + + def __init__(self, name, description="Test tool description"): + self.name = name + self.description = description + self.inputSchema = { + "type": "object", + "properties": {"param": {"type": "string"}}, + } + + +class MockListToolsResult: + """Mock ListToolsResult for testing.""" + + def __init__(self, tools): + self.tools = tools + + +class TestMCPToolset: + """Test suite for MCPToolset class.""" + + def setup_method(self): + """Set up test fixtures.""" + self.mock_stdio_params = StdioServerParameters( + command="test_command", args=[] + ) + self.mock_session_manager = Mock(spec=MCPSessionManager) + self.mock_session = AsyncMock() + self.mock_session_manager.create_session = AsyncMock( + return_value=self.mock_session + ) + + def test_init_basic(self): + """Test basic initialization with StdioServerParameters.""" + toolset = MCPToolset(connection_params=self.mock_stdio_params) + + # Note: StdioServerParameters gets converted to StdioConnectionParams internally + assert toolset._errlog == sys.stderr + assert toolset._auth_scheme is None + assert toolset._auth_credential is None + + def test_init_with_stdio_connection_params(self): + """Test initialization with StdioConnectionParams.""" + stdio_params = StdioConnectionParams( + server_params=self.mock_stdio_params, timeout=10.0 + ) + toolset = MCPToolset(connection_params=stdio_params) + + assert toolset._connection_params == stdio_params + + def test_init_with_sse_connection_params(self): + """Test initialization with SseConnectionParams.""" + sse_params = SseConnectionParams( + url="https://example.com/mcp", headers={"Authorization": "Bearer token"} + ) + toolset = MCPToolset(connection_params=sse_params) + + assert toolset._connection_params == sse_params + + def test_init_with_streamable_http_params(self): + """Test initialization with StreamableHTTPConnectionParams.""" + http_params = StreamableHTTPConnectionParams( + url="https://example.com/mcp", + headers={"Content-Type": "application/json"}, + ) + toolset = MCPToolset(connection_params=http_params) + + assert toolset._connection_params == http_params + + def test_init_with_tool_filter_list(self): + """Test initialization with tool filter as list.""" + tool_filter = ["tool1", "tool2"] + toolset = MCPToolset( + connection_params=self.mock_stdio_params, tool_filter=tool_filter + ) + + # The tool filter is stored in the parent BaseToolset class + # We can verify it by checking the filtering behavior in get_tools + assert toolset._is_tool_selected is not None + + def test_init_with_auth(self): + """Test initialization with authentication.""" + # Create real auth scheme instances + from fastapi.openapi.models import OAuth2 + + auth_scheme = OAuth2(flows={}) + from google.adk.auth.auth_credential import OAuth2Auth + + auth_credential = AuthCredential( + auth_type="oauth2", + oauth2=OAuth2Auth(client_id="test_id", client_secret="test_secret"), + ) + + toolset = MCPToolset( + connection_params=self.mock_stdio_params, + auth_scheme=auth_scheme, + auth_credential=auth_credential, + ) + + assert toolset._auth_scheme == auth_scheme + assert toolset._auth_credential == auth_credential + + def test_init_missing_connection_params(self): + """Test initialization with missing connection params raises error.""" + with pytest.raises(ValueError, match="Missing connection params"): + MCPToolset(connection_params=None) + + @pytest.mark.asyncio + async def test_get_tools_basic(self): + """Test getting tools without filtering.""" + # Mock tools from MCP server + mock_tools = [ + MockMCPTool("tool1"), + MockMCPTool("tool2"), + MockMCPTool("tool3"), + ] + self.mock_session.list_tools = AsyncMock( + return_value=MockListToolsResult(mock_tools) + ) + + toolset = MCPToolset(connection_params=self.mock_stdio_params) + toolset._mcp_session_manager = self.mock_session_manager + + tools = await toolset.get_tools() + + assert len(tools) == 3 + for tool in tools: + assert isinstance(tool, MCPTool) + assert tools[0].name == "tool1" + assert tools[1].name == "tool2" + assert tools[2].name == "tool3" + + @pytest.mark.asyncio + async def test_get_tools_with_list_filter(self): + """Test getting tools with list-based filtering.""" + # Mock tools from MCP server + mock_tools = [ + MockMCPTool("tool1"), + MockMCPTool("tool2"), + MockMCPTool("tool3"), + ] + self.mock_session.list_tools = AsyncMock( + return_value=MockListToolsResult(mock_tools) + ) + + tool_filter = ["tool1", "tool3"] + toolset = MCPToolset( + connection_params=self.mock_stdio_params, tool_filter=tool_filter + ) + toolset._mcp_session_manager = self.mock_session_manager + + tools = await toolset.get_tools() + + assert len(tools) == 2 + assert tools[0].name == "tool1" + assert tools[1].name == "tool3" + + @pytest.mark.asyncio + async def test_get_tools_with_function_filter(self): + """Test getting tools with function-based filtering.""" + # Mock tools from MCP server + mock_tools = [ + MockMCPTool("read_file"), + MockMCPTool("write_file"), + MockMCPTool("list_directory"), + ] + self.mock_session.list_tools = AsyncMock( + return_value=MockListToolsResult(mock_tools) + ) + + def file_tools_filter(tool, context): + """Filter for file-related tools only.""" + return "file" in tool.name + + toolset = MCPToolset( + connection_params=self.mock_stdio_params, tool_filter=file_tools_filter + ) + toolset._mcp_session_manager = self.mock_session_manager + + tools = await toolset.get_tools() + + assert len(tools) == 2 + assert tools[0].name == "read_file" + assert tools[1].name == "write_file" + + @pytest.mark.asyncio + async def test_close_success(self): + """Test successful cleanup.""" + toolset = MCPToolset(connection_params=self.mock_stdio_params) + toolset._mcp_session_manager = self.mock_session_manager + + await toolset.close() + + self.mock_session_manager.close.assert_called_once() + + @pytest.mark.asyncio + async def test_close_with_exception(self): + """Test cleanup when session manager raises exception.""" + toolset = MCPToolset(connection_params=self.mock_stdio_params) + toolset._mcp_session_manager = self.mock_session_manager + + # Mock close to raise an exception + self.mock_session_manager.close = AsyncMock( + side_effect=Exception("Cleanup error") + ) + + custom_errlog = StringIO() + toolset._errlog = custom_errlog + + # Should not raise exception + await toolset.close() + + # Should log the error + error_output = custom_errlog.getvalue() + assert "Warning: Error during MCPToolset cleanup" in error_output + assert "Cleanup error" in error_output + + @pytest.mark.asyncio + async def test_get_tools_retry_decorator(self): + """Test that get_tools has retry decorator applied.""" + toolset = MCPToolset(connection_params=self.mock_stdio_params) + + # Check that the method has the retry decorator + assert hasattr(toolset.get_tools, "__wrapped__") diff --git a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py index 303dda69d..c4cbea7b9 100644 --- a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py +++ b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py @@ -14,6 +14,7 @@ import json +from unittest.mock import AsyncMock from unittest.mock import MagicMock from unittest.mock import patch @@ -194,7 +195,8 @@ def test_get_declaration( @patch( "google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool.requests.request" ) - def test_call_success( + @pytest.mark.asyncio + async def test_call_success( self, mock_request, mock_tool_context, @@ -217,7 +219,7 @@ def test_call_success( ) # Call the method - result = tool.call(args={}, tool_context=mock_tool_context) + result = await tool.call(args={}, tool_context=mock_tool_context) # Check the result assert result == {"result": "success"} @@ -225,7 +227,8 @@ def test_call_success( @patch( "google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool.requests.request" ) - def test_call_auth_pending( + @pytest.mark.asyncio + async def test_call_auth_pending( self, mock_request, sample_endpoint, @@ -246,12 +249,14 @@ def test_call_auth_pending( "google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool.ToolAuthHandler.from_tool_context" ) as mock_from_tool_context: mock_tool_auth_handler_instance = MagicMock() - mock_tool_auth_handler_instance.prepare_auth_credentials.return_value.state = ( - "pending" + mock_prepare_result = MagicMock() + mock_prepare_result.state = "pending" + mock_tool_auth_handler_instance.prepare_auth_credentials = AsyncMock( + return_value=mock_prepare_result ) mock_from_tool_context.return_value = mock_tool_auth_handler_instance - response = tool.call(args={}, tool_context=None) + response = await tool.call(args={}, tool_context=None) assert response == { "pending": True, "message": "Needs your authorization to access your data.", diff --git a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py index 8db151fc8..e405ce5b8 100644 --- a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py +++ b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py @@ -116,7 +116,8 @@ def openid_connect_credential(): return credential -def test_openid_connect_no_auth_response( +@pytest.mark.asyncio +async def test_openid_connect_no_auth_response( openid_connect_scheme, openid_connect_credential ): # Setup Mock exchanger @@ -132,12 +133,13 @@ def test_openid_connect_no_auth_response( credential_exchanger=mock_exchanger, credential_store=credential_store, ) - result = handler.prepare_auth_credentials() + result = await handler.prepare_auth_credentials() assert result.state == 'pending' assert result.auth_credential == openid_connect_credential -def test_openid_connect_with_auth_response( +@pytest.mark.asyncio +async def test_openid_connect_with_auth_response( openid_connect_scheme, openid_connect_credential, monkeypatch ): mock_exchanger = MockOpenIdConnectCredentialExchanger( @@ -166,7 +168,7 @@ def test_openid_connect_with_auth_response( credential_exchanger=mock_exchanger, credential_store=credential_store, ) - result = handler.prepare_auth_credentials() + result = await handler.prepare_auth_credentials() assert result.state == 'done' assert result.auth_credential.auth_type == AuthCredentialTypes.HTTP assert 'test_access_token' in result.auth_credential.http.credentials.token @@ -178,7 +180,8 @@ def test_openid_connect_with_auth_response( mock_auth_handler.get_auth_response.assert_called_once() -def test_openid_connect_existing_token( +@pytest.mark.asyncio +async def test_openid_connect_existing_token( openid_connect_scheme, openid_connect_credential ): _, existing_credential = token_to_scheme_credential( @@ -198,16 +201,17 @@ def test_openid_connect_existing_token( openid_connect_credential, credential_store=credential_store, ) - result = handler.prepare_auth_credentials() + result = await handler.prepare_auth_credentials() assert result.state == 'done' assert result.auth_credential == existing_credential @patch( - 'google.adk.tools.openapi_tool.openapi_spec_parser.tool_auth_handler.OAuth2CredentialFetcher' + 'google.adk.tools.openapi_tool.openapi_spec_parser.tool_auth_handler.OAuth2CredentialRefresher' ) -def test_openid_connect_existing_oauth2_token_refresh( - mock_oauth2_fetcher, openid_connect_scheme, openid_connect_credential +@pytest.mark.asyncio +async def test_openid_connect_existing_oauth2_token_refresh( + mock_oauth2_refresher, openid_connect_scheme, openid_connect_credential ): """Test that OAuth2 tokens are refreshed when existing credentials are found.""" # Create existing OAuth2 credential @@ -232,10 +236,13 @@ def test_openid_connect_existing_oauth2_token_refresh( ), ) - # Setup mock OAuth2CredentialFetcher - mock_fetcher_instance = MagicMock() - mock_fetcher_instance.refresh.return_value = refreshed_credential - mock_oauth2_fetcher.return_value = mock_fetcher_instance + # Setup mock OAuth2CredentialRefresher + from unittest.mock import AsyncMock + + mock_refresher_instance = MagicMock() + mock_refresher_instance.is_refresh_needed = AsyncMock(return_value=True) + mock_refresher_instance.refresh = AsyncMock(return_value=refreshed_credential) + mock_oauth2_refresher.return_value = mock_refresher_instance tool_context = create_mock_tool_context() credential_store = ToolContextCredentialStore(tool_context=tool_context) @@ -253,13 +260,17 @@ def test_openid_connect_existing_oauth2_token_refresh( credential_store=credential_store, ) - result = handler.prepare_auth_credentials() + result = await handler.prepare_auth_credentials() + + # Verify OAuth2CredentialRefresher was called for refresh + mock_oauth2_refresher.assert_called_once() - # Verify OAuth2CredentialFetcher was called for refresh - mock_oauth2_fetcher.assert_called_once_with( - openid_connect_scheme, existing_credential + mock_refresher_instance.is_refresh_needed.assert_called_once_with( + existing_credential + ) + mock_refresher_instance.refresh.assert_called_once_with( + existing_credential, openid_connect_scheme ) - mock_fetcher_instance.refresh.assert_called_once() assert result.state == 'done' # The result should contain the refreshed credential after exchange diff --git a/tests/unittests/tools/test_authenticated_function_tool.py b/tests/unittests/tools/test_authenticated_function_tool.py new file mode 100644 index 000000000..88454032a --- /dev/null +++ b/tests/unittests/tools/test_authenticated_function_tool.py @@ -0,0 +1,541 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import inspect +from unittest.mock import AsyncMock +from unittest.mock import Mock + +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_schemes import AuthScheme +from google.adk.auth.auth_schemes import AuthSchemeType +from google.adk.auth.auth_tool import AuthConfig +from google.adk.tools.authenticated_function_tool import AuthenticatedFunctionTool +from google.adk.tools.tool_context import ToolContext +import pytest + +# Test functions for different scenarios + + +def sync_function_no_credential(arg1: str, arg2: int) -> str: + """Test sync function without credential parameter.""" + return f"sync_result_{arg1}_{arg2}" + + +async def async_function_no_credential(arg1: str, arg2: int) -> str: + """Test async function without credential parameter.""" + return f"async_result_{arg1}_{arg2}" + + +def sync_function_with_credential(arg1: str, credential: AuthCredential) -> str: + """Test sync function with credential parameter.""" + return f"sync_cred_result_{arg1}_{credential.auth_type.value}" + + +async def async_function_with_credential( + arg1: str, credential: AuthCredential +) -> str: + """Test async function with credential parameter.""" + return f"async_cred_result_{arg1}_{credential.auth_type.value}" + + +def sync_function_with_tool_context( + arg1: str, tool_context: ToolContext +) -> str: + """Test sync function with tool_context parameter.""" + return f"sync_context_result_{arg1}" + + +async def async_function_with_both( + arg1: str, tool_context: ToolContext, credential: AuthCredential +) -> str: + """Test async function with both tool_context and credential parameters.""" + return f"async_both_result_{arg1}_{credential.auth_type.value}" + + +def function_with_optional_args( + arg1: str, arg2: str = "default", credential: AuthCredential = None +) -> str: + """Test function with optional arguments.""" + cred_type = credential.auth_type.value if credential else "none" + return f"optional_result_{arg1}_{arg2}_{cred_type}" + + +class MockCallable: + """Test callable class for testing.""" + + def __init__(self): + self.__name__ = "MockCallable" + self.__doc__ = "Test callable documentation" + + def __call__(self, arg1: str, credential: AuthCredential) -> str: + return f"callable_result_{arg1}_{credential.auth_type.value}" + + +def _create_mock_auth_config(): + """Creates a mock AuthConfig with proper structure.""" + auth_scheme = Mock(spec=AuthScheme) + auth_scheme.type_ = AuthSchemeType.oauth2 + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + + return auth_config + + +def _create_mock_auth_credential(): + """Creates a mock AuthCredential.""" + credential = Mock(spec=AuthCredential) + # Create a mock auth_type that returns the expected value + mock_auth_type = Mock() + mock_auth_type.value = "oauth2" + credential.auth_type = mock_auth_type + return credential + + +class TestAuthenticatedFunctionTool: + """Test suite for AuthenticatedFunctionTool.""" + + def test_init_with_sync_function(self): + """Test initialization with synchronous function.""" + auth_config = _create_mock_auth_config() + + tool = AuthenticatedFunctionTool( + func=sync_function_no_credential, + auth_config=auth_config, + response_for_auth_required="Please authenticate", + ) + + assert tool.name == "sync_function_no_credential" + assert ( + tool.description == "Test sync function without credential parameter." + ) + assert tool.func == sync_function_no_credential + assert tool._credentials_manager is not None + assert tool._response_for_auth_required == "Please authenticate" + assert "credential" in tool._ignore_params + + def test_init_with_async_function(self): + """Test initialization with asynchronous function.""" + auth_config = _create_mock_auth_config() + + tool = AuthenticatedFunctionTool( + func=async_function_no_credential, auth_config=auth_config + ) + + assert tool.name == "async_function_no_credential" + assert ( + tool.description == "Test async function without credential parameter." + ) + assert tool.func == async_function_no_credential + assert tool._response_for_auth_required is None + + def test_init_with_callable(self): + """Test initialization with callable object.""" + auth_config = _create_mock_auth_config() + test_callable = MockCallable() + + tool = AuthenticatedFunctionTool( + func=test_callable, auth_config=auth_config + ) + + assert tool.name == "MockCallable" + assert tool.description == "Test callable documentation" + assert tool.func == test_callable + + def test_init_no_auth_config(self): + """Test initialization without auth_config.""" + tool = AuthenticatedFunctionTool(func=sync_function_no_credential) + + assert tool._credentials_manager is None + assert tool._response_for_auth_required is None + + def test_init_with_empty_auth_scheme(self): + """Test initialization with auth_config but no auth_scheme.""" + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = None + + tool = AuthenticatedFunctionTool( + func=sync_function_no_credential, auth_config=auth_config + ) + + assert tool._credentials_manager is None + + @pytest.mark.asyncio + async def test_run_async_sync_function_no_credential_manager(self): + """Test run_async with sync function when no credential manager is configured.""" + tool = AuthenticatedFunctionTool(func=sync_function_no_credential) + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test", "arg2": 42} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "sync_result_test_42" + + @pytest.mark.asyncio + async def test_run_async_async_function_no_credential_manager(self): + """Test run_async with async function when no credential manager is configured.""" + tool = AuthenticatedFunctionTool(func=async_function_no_credential) + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test", "arg2": 42} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "async_result_test_42" + + @pytest.mark.asyncio + async def test_run_async_with_valid_credential(self): + """Test run_async when valid credential is available.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=sync_function_with_credential, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == f"sync_cred_result_test_{credential.auth_type.value}" + mock_credentials_manager.get_auth_credential.assert_called_once_with( + tool_context + ) + + @pytest.mark.asyncio + async def test_run_async_async_function_with_credential(self): + """Test run_async with async function that expects credential.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=async_function_with_credential, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == f"async_cred_result_test_{credential.auth_type.value}" + + @pytest.mark.asyncio + async def test_run_async_no_credential_available(self): + """Test run_async when no credential is available.""" + auth_config = _create_mock_auth_config() + + # Mock the credentials manager to return None + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock(return_value=None) + mock_credentials_manager.request_credential = AsyncMock() + + tool = AuthenticatedFunctionTool( + func=sync_function_with_credential, + auth_config=auth_config, + response_for_auth_required="Custom auth required", + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "Custom auth required" + mock_credentials_manager.get_auth_credential.assert_called_once_with( + tool_context + ) + mock_credentials_manager.request_credential.assert_called_once_with( + tool_context + ) + + @pytest.mark.asyncio + async def test_run_async_no_credential_default_message(self): + """Test run_async when no credential is available with default message.""" + auth_config = _create_mock_auth_config() + + # Mock the credentials manager to return None + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock(return_value=None) + mock_credentials_manager.request_credential = AsyncMock() + + tool = AuthenticatedFunctionTool( + func=sync_function_with_credential, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "Pending User Authorization." + + @pytest.mark.asyncio + async def test_run_async_function_without_credential_param(self): + """Test run_async with function that doesn't have credential parameter.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=sync_function_no_credential, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test", "arg2": 42} + + result = await tool.run_async(args=args, tool_context=tool_context) + + # Credential should not be passed to function since it doesn't have the parameter + assert result == "sync_result_test_42" + + @pytest.mark.asyncio + async def test_run_async_function_with_tool_context(self): + """Test run_async with function that has tool_context parameter.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=sync_function_with_tool_context, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "sync_context_result_test" + + @pytest.mark.asyncio + async def test_run_async_function_with_both_params(self): + """Test run_async with function that has both tool_context and credential parameters.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=async_function_with_both, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == f"async_both_result_test_{credential.auth_type.value}" + + @pytest.mark.asyncio + async def test_run_async_function_with_optional_credential(self): + """Test run_async with function that has optional credential parameter.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=function_with_optional_args, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert ( + result == f"optional_result_test_default_{credential.auth_type.value}" + ) + + @pytest.mark.asyncio + async def test_run_async_callable_object(self): + """Test run_async with callable object.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + test_callable = MockCallable() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=test_callable, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == f"callable_result_test_{credential.auth_type.value}" + + @pytest.mark.asyncio + async def test_run_async_propagates_function_exception(self): + """Test that run_async propagates exceptions from the wrapped function.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + def failing_function(arg1: str, credential: AuthCredential) -> str: + raise ValueError("Function failed") + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = AuthenticatedFunctionTool( + func=failing_function, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + with pytest.raises(ValueError, match="Function failed"): + await tool.run_async(args=args, tool_context=tool_context) + + @pytest.mark.asyncio + async def test_run_async_missing_required_args(self): + """Test run_async with missing required arguments.""" + tool = AuthenticatedFunctionTool(func=sync_function_no_credential) + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} # Missing arg2 + + result = await tool.run_async(args=args, tool_context=tool_context) + + # Should return error dict indicating missing parameters + assert isinstance(result, dict) + assert "error" in result + assert "arg2" in result["error"] + + @pytest.mark.asyncio + async def test_run_async_credentials_manager_exception(self): + """Test run_async when credentials manager raises an exception.""" + auth_config = _create_mock_auth_config() + + # Mock the credentials manager to raise an exception + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + side_effect=RuntimeError("Credential service error") + ) + + tool = AuthenticatedFunctionTool( + func=sync_function_with_credential, auth_config=auth_config + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + with pytest.raises(RuntimeError, match="Credential service error"): + await tool.run_async(args=args, tool_context=tool_context) + + def test_credential_in_ignore_params(self): + """Test that 'credential' is added to ignore_params during initialization.""" + tool = AuthenticatedFunctionTool(func=sync_function_with_credential) + + assert "credential" in tool._ignore_params + + @pytest.mark.asyncio + async def test_run_async_with_none_credential(self): + """Test run_async when credential is None but function expects it.""" + tool = AuthenticatedFunctionTool(func=function_with_optional_args) + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "optional_result_test_default_none" + + def test_signature_inspection(self): + """Test that the tool correctly inspects function signatures.""" + tool = AuthenticatedFunctionTool(func=sync_function_with_credential) + + signature = inspect.signature(tool.func) + assert "credential" in signature.parameters + assert "arg1" in signature.parameters + + @pytest.mark.asyncio + async def test_args_to_call_modification(self): + """Test that args_to_call is properly modified with credential.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + # Create a spy function to check what arguments are passed + original_args = {} + + def spy_function(arg1: str, credential: AuthCredential) -> str: + nonlocal original_args + original_args = {"arg1": arg1, "credential": credential} + return "spy_result" + + tool = AuthenticatedFunctionTool(func=spy_function, auth_config=auth_config) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"arg1": "test"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "spy_result" + assert original_args is not None + assert original_args["arg1"] == "test" + assert original_args["credential"] == credential diff --git a/tests/unittests/tools/test_base_authenticated_tool.py b/tests/unittests/tools/test_base_authenticated_tool.py new file mode 100644 index 000000000..55454224d --- /dev/null +++ b/tests/unittests/tools/test_base_authenticated_tool.py @@ -0,0 +1,343 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest.mock import AsyncMock +from unittest.mock import Mock + +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_schemes import AuthScheme +from google.adk.auth.auth_schemes import AuthSchemeType +from google.adk.auth.auth_tool import AuthConfig +from google.adk.tools.base_authenticated_tool import BaseAuthenticatedTool +from google.adk.tools.tool_context import ToolContext +import pytest + + +class _TestAuthenticatedTool(BaseAuthenticatedTool): + """Test implementation of BaseAuthenticatedTool for testing purposes.""" + + def __init__( + self, + name="test_auth_tool", + description="Test authenticated tool", + auth_config=None, + unauthenticated_response=None, + ): + super().__init__( + name=name, + description=description, + auth_config=auth_config, + response_for_auth_required=unauthenticated_response, + ) + self.run_impl_called = False + self.run_impl_result = "test_result" + + async def _run_async_impl(self, *, args, tool_context, credential): + """Test implementation of the abstract method.""" + self.run_impl_called = True + self.last_args = args + self.last_tool_context = tool_context + self.last_credential = credential + return self.run_impl_result + + +def _create_mock_auth_config(): + """Creates a mock AuthConfig with proper structure.""" + auth_scheme = Mock(spec=AuthScheme) + auth_scheme.type_ = AuthSchemeType.oauth2 + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + + return auth_config + + +def _create_mock_auth_credential(): + """Creates a mock AuthCredential.""" + credential = Mock(spec=AuthCredential) + credential.auth_type = AuthCredentialTypes.OAUTH2 + return credential + + +class TestBaseAuthenticatedTool: + """Test suite for BaseAuthenticatedTool.""" + + def test_init_with_auth_config(self): + """Test initialization with auth_config.""" + auth_config = _create_mock_auth_config() + unauthenticated_response = {"error": "Not authenticated"} + + tool = _TestAuthenticatedTool( + name="test_tool", + description="Test description", + auth_config=auth_config, + unauthenticated_response=unauthenticated_response, + ) + + assert tool.name == "test_tool" + assert tool.description == "Test description" + assert tool._credentials_manager is not None + assert tool._response_for_auth_required == unauthenticated_response + + def test_init_with_no_auth_config(self): + """Test initialization without auth_config.""" + tool = _TestAuthenticatedTool() + + assert tool.name == "test_auth_tool" + assert tool.description == "Test authenticated tool" + assert tool._credentials_manager is None + assert tool._response_for_auth_required is None + + def test_init_with_empty_auth_scheme(self): + """Test initialization with auth_config but no auth_scheme.""" + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = None + + tool = _TestAuthenticatedTool(auth_config=auth_config) + + assert tool._credentials_manager is None + + def test_init_with_default_unauthenticated_response(self): + """Test initialization with default unauthenticated response.""" + auth_config = _create_mock_auth_config() + + tool = _TestAuthenticatedTool(auth_config=auth_config) + + assert tool._response_for_auth_required is None + + @pytest.mark.asyncio + async def test_run_async_no_credentials_manager(self): + """Test run_async when no credentials manager is configured.""" + tool = _TestAuthenticatedTool() + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "test_result" + assert tool.run_impl_called + assert tool.last_args == args + assert tool.last_tool_context == tool_context + assert tool.last_credential is None + + @pytest.mark.asyncio + async def test_run_async_with_valid_credential(self): + """Test run_async when valid credential is available.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = _TestAuthenticatedTool(auth_config=auth_config) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "test_result" + assert tool.run_impl_called + assert tool.last_args == args + assert tool.last_tool_context == tool_context + assert tool.last_credential == credential + mock_credentials_manager.get_auth_credential.assert_called_once_with( + tool_context + ) + + @pytest.mark.asyncio + async def test_run_async_no_credential_available(self): + """Test run_async when no credential is available.""" + auth_config = _create_mock_auth_config() + + # Mock the credentials manager to return None + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock(return_value=None) + mock_credentials_manager.request_credential = AsyncMock() + + tool = _TestAuthenticatedTool(auth_config=auth_config) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == "Pending User Authorization." + assert not tool.run_impl_called + mock_credentials_manager.get_auth_credential.assert_called_once_with( + tool_context + ) + mock_credentials_manager.request_credential.assert_called_once_with( + tool_context + ) + + @pytest.mark.asyncio + async def test_run_async_no_credential_with_custom_response(self): + """Test run_async when no credential is available with custom response.""" + auth_config = _create_mock_auth_config() + custom_response = { + "status": "authentication_required", + "message": "Please login", + } + + # Mock the credentials manager to return None + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock(return_value=None) + mock_credentials_manager.request_credential = AsyncMock() + + tool = _TestAuthenticatedTool( + auth_config=auth_config, unauthenticated_response=custom_response + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == custom_response + assert not tool.run_impl_called + mock_credentials_manager.get_auth_credential.assert_called_once_with( + tool_context + ) + mock_credentials_manager.request_credential.assert_called_once_with( + tool_context + ) + + @pytest.mark.asyncio + async def test_run_async_no_credential_with_string_response(self): + """Test run_async when no credential is available with string response.""" + auth_config = _create_mock_auth_config() + custom_response = "Custom authentication required message" + + # Mock the credentials manager to return None + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock(return_value=None) + mock_credentials_manager.request_credential = AsyncMock() + + tool = _TestAuthenticatedTool( + auth_config=auth_config, unauthenticated_response=custom_response + ) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == custom_response + assert not tool.run_impl_called + + @pytest.mark.asyncio + async def test_run_async_propagates_impl_exception(self): + """Test that run_async propagates exceptions from _run_async_impl.""" + auth_config = _create_mock_auth_config() + credential = _create_mock_auth_credential() + + # Mock the credentials manager + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + return_value=credential + ) + + tool = _TestAuthenticatedTool(auth_config=auth_config) + tool._credentials_manager = mock_credentials_manager + + # Make the implementation raise an exception + async def failing_impl(*, args, tool_context, credential): + raise ValueError("Implementation failed") + + tool._run_async_impl = failing_impl + + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + with pytest.raises(ValueError, match="Implementation failed"): + await tool.run_async(args=args, tool_context=tool_context) + + @pytest.mark.asyncio + async def test_run_async_with_different_args_types(self): + """Test run_async with different argument types.""" + tool = _TestAuthenticatedTool() + tool_context = Mock(spec=ToolContext) + + # Test with empty args + result = await tool.run_async(args={}, tool_context=tool_context) + assert result == "test_result" + assert tool.last_args == {} + + # Test with complex args + complex_args = { + "string_param": "test", + "number_param": 42, + "list_param": [1, 2, 3], + "dict_param": {"nested": "value"}, + } + result = await tool.run_async(args=complex_args, tool_context=tool_context) + assert result == "test_result" + assert tool.last_args == complex_args + + @pytest.mark.asyncio + async def test_run_async_credentials_manager_exception(self): + """Test run_async when credentials manager raises an exception.""" + auth_config = _create_mock_auth_config() + + # Mock the credentials manager to raise an exception + mock_credentials_manager = AsyncMock() + mock_credentials_manager.get_auth_credential = AsyncMock( + side_effect=RuntimeError("Credential service error") + ) + + tool = _TestAuthenticatedTool(auth_config=auth_config) + tool._credentials_manager = mock_credentials_manager + + tool_context = Mock(spec=ToolContext) + args = {"param1": "value1"} + + with pytest.raises(RuntimeError, match="Credential service error"): + await tool.run_async(args=args, tool_context=tool_context) + + def test_abstract_nature(self): + """Test that BaseAuthenticatedTool cannot be instantiated directly.""" + with pytest.raises(TypeError): + # This should fail because _run_async_impl is abstract + BaseAuthenticatedTool(name="test", description="test") + + @pytest.mark.asyncio + async def test_run_async_return_values(self): + """Test run_async with different return value types.""" + tool = _TestAuthenticatedTool() + tool_context = Mock(spec=ToolContext) + args = {} + + # Test with None return + tool.run_impl_result = None + result = await tool.run_async(args=args, tool_context=tool_context) + assert result is None + + # Test with dict return + tool.run_impl_result = {"key": "value"} + result = await tool.run_async(args=args, tool_context=tool_context) + assert result == {"key": "value"} + + # Test with list return + tool.run_impl_result = [1, 2, 3] + result = await tool.run_async(args=args, tool_context=tool_context) + assert result == [1, 2, 3]